(LeetCode)Best Time to Buy and Sell Stock -- 求股票买卖的最大利润
2016-08-10 09:59
549 查看
Say you have an array for which the ith element is the price of a given stock on day i.
If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.
Example 1:
Example 2:
Subscribe to see which companies asked this question
解题分析:
主要思路就是,可以买一次,再卖一次,求出最大的买卖利润,
注意的是需要先买,再卖。不能先卖,再买。这个就是example给出的原因。
# -*- coding:utf-8 -*-
__author__ = 'jiuzhang'
class Solution(object):
def maxProfit(self, prices):
if len(prices) < 2:
return 0
maxProfit = 0
curMin = prices[0]
for i in xrange(len(prices)):
curMin = min(curMin, prices[i])
maxProfit = max(maxProfit, prices[i] - curMin)
return maxProfit
'''
测试部分
p = [7,1,5,3,6,4]
a = Solution()
print a.maxProfit(p)
'''
If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.
Example 1:
Input: [7, 1, 5, 3, 6, 4] Output: 5 max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)
Example 2:
Input: [7, 6, 4, 3, 1] Output: 0 In this case, no transaction is done, i.e. max profit = 0.
Subscribe to see which companies asked this question
解题分析:
主要思路就是,可以买一次,再卖一次,求出最大的买卖利润,
注意的是需要先买,再卖。不能先卖,再买。这个就是example给出的原因。
# -*- coding:utf-8 -*-
__author__ = 'jiuzhang'
class Solution(object):
def maxProfit(self, prices):
if len(prices) < 2:
return 0
maxProfit = 0
curMin = prices[0]
for i in xrange(len(prices)):
curMin = min(curMin, prices[i])
maxProfit = max(maxProfit, prices[i] - curMin)
return maxProfit
'''
测试部分
p = [7,1,5,3,6,4]
a = Solution()
print a.maxProfit(p)
'''
相关文章推荐
- Leetcode 188 Best Time to Buy and Sell Stock IV 至多k次买卖股票最大收益
- Leetcode 123 Best Time to Buy and Sell Stock III 至多两次买卖股票最大收益
- leetcode——Best Time to Buy and Sell Stock III 买卖股票最大收益(AC)
- [leetcode 121] Best Time to Buy and Sell Stock---只能买卖股票一次的最大收益
- LeetCode-714:Best Time to Buy and Sell Stock with Transaction Fee (带有抛售费用的股票最大利润) -- medium
- Leetcode 122 Best Time to Buy and Sell Stock II 不限次数买卖股票最大收益
- Leetcode 121 Best Time to Buy and Sell Stock 单次买卖股票最大收益
- Best Time to Buy and Sell Stock II 最佳时间买入卖出股票(多次买卖)@LeetCode
- 【LeetCode-面试算法经典-Java实现】【121-Best Time to Buy and Sell Stock(最佳买卖股票的时间)】
- Leetcode121 Best Time to Buy and Sell Stock(买卖股票的最佳时机1)
- LeetCode——Best Time to Buy and Sell Stock II (股票买卖时机问题2)
- [LeetCode] Best Time to Buy and Sell Stock IV 买卖股票的最佳时间之四
- [Java语言] [Leetcode] Best Time to Buy and Sell Stock 买卖股票的最佳时机
- 【LeetCode-面试算法经典-Java实现】【121-Best Time to Buy and Sell Stock(最佳买卖股票的时间)】
- LeetCode-121-Best Time to Buy and Sell Stock(最佳买卖股票的时间)
- LeetCode 121. Best Time to Buy and Sell Stock (买卖股票的最好时机)
- Leetcode 123. Best Time to Buy and Sell Stock III 股票买卖3 解题报告
- [Leetcode] Best time to buy and sell stock ii 买卖股票的最佳时机
- [LeetCode] Best Time to Buy and Sell Stock I II III IV 股票买卖
- LeetCode:Best Time to Buy and Sell Stock(买卖股票)系列