买卖股票的最佳时机
来源:互联网 发布:工业设计所需软件 编辑:程序博客网 时间:2024/06/10 05:24
题目描述:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。
样例:给出一个数组样例 [3,2,3,1,2], 返回 1
换一个角度来思考这个问题,最大利润实际上就是每天的交易价格,减去上一天的价格所构成的这个数组的最大子数组。
有关最大子数组的解法已经讲过(详见:点击打开链接),不明白的请回看。
所以,是一样的东西了,只不过需要求取一个差值。
代码如下:
class Solution: """ @param prices: Given an integer array @return: Maximum profit """ def maxProfit(self, prices): if len(prices) <= 1: return 0 n = len(prices) sum_value = 0 max_value = 0 for i in range(1, n): sum_value += prices[i] - prices[i - 1] max_value = max(max_value, sum_value) sum_value = max(0, sum_value) return max_value # write your code here
0 0
- 买卖股票的最佳时机
- 买卖股票的最佳时机
- 买卖股票的最佳时机
- LintCode-买卖股票的最佳时机
- 题目:买卖股票的最佳时机
- LintCode--买卖股票的最佳时机
- LintCode_149_买卖股票的最佳时机
- Lintcode:买卖股票的最佳时机
- 买卖股票的最佳时机 II
- 买卖股票的最佳时机 III
- 买卖股票的最佳时机|_1
- 买卖股票的最佳时机||_1
- 买卖股票的最佳时机,lintcode
- 【LintCode】买卖股票的最佳时机
- lintcode--买卖股票的最佳时机
- Lintcode 买卖股票的最佳时机
- 买卖股票的最佳时机-LintCode
- LintCode_149_买卖股票的最佳时机
- 网站渗透思路(一)
- HTTP协议的特点
- Flink Runtime 1.0 Notes: Plan 2 Task
- maven镜像配置
- chrome浏览器ctrl+f5强刷仍然显示from cache的实现
- 买卖股票的最佳时机
- linux字符cdev和inode的联系
- SQL行转列汇总
- android 注解完成广播事件
- poj 2594 Treasure Exploration (最小路径覆盖+Floyd缩点)
- NYOJ 47 过河问题
- warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for re
- java学习个人笔记---构造器的陷阱
- Codeforces Round #353 (Div. 2) A,B,C,D