leetcode-121 Best Time to Buy and Sell Stock
2015-04-26 21:50
501 查看
只有一次交易的情况比较简单,就是最大减去最小,但是最小的值一定要出现在最大之前
也有人用下面的方法:
用类似动态规划的思想,到第i天买入,那么我能赚到的最大利润是多少呢?就是i + 1 ~ n天中最大的股价减去第i天的。找最大股价的问题可以在找第i+1~n天的最大利润时顺便记录,
这样就得出了一个线性方法。
<span style="font-family:Microsoft YaHei;font-size:14px;">class Solution { public: int maxProfit(vector<int>& prices) { int len = prices.size(); if(len == 0) return 0; int min = prices[0]; int maxProfit = 0; for(int i = 1; i < len; i++){ int tmp = prices[i] - min; if(tmp > maxProfit) maxProfit = tmp; if(prices[i] < min) min = prices[i]; } return maxProfit; } };</span>
也有人用下面的方法:
用类似动态规划的思想,到第i天买入,那么我能赚到的最大利润是多少呢?就是i + 1 ~ n天中最大的股价减去第i天的。找最大股价的问题可以在找第i+1~n天的最大利润时顺便记录,
这样就得出了一个线性方法。
<span style="font-family:Microsoft YaHei;font-size:14px;">class Solution { public: int maxProfit(vector<int> &prices) { // Start typing your C/C++ solution below // DO NOT write int main() function if (prices.size() == 0) return 0; int maxPrice = prices[prices.size()-1]; int ans = 0; for(int i = prices.size() - 1; i >= 0; i--) { maxPrice = max(maxPrice, prices[i]); ans = max(ans, maxPrice - prices[i]); } return ans; } };</span>
相关文章推荐
- leetcode 121 Best Time to Buy and Sell Stock C++
- LeetCode 121 Best Time to Buy and Sell Stock
- 【Leetcode-Easy-121】Best Time to Buy and Sell Stock
- 121. Best Time to Buy and Sell Stock--LeetCode Record
- LeetCode(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 121 -- Best Time to Buy and Sell Stock I
- LeetCode 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 37] 121 Best Time to Buy and Sell Stock
- [leetcode] 121. Best Time to Buy and Sell Stock 解题报告
- leetcode_[python/C++]_121/122/123/188.Best Time to Buy and Sell Stock I/II/III/IV
- [LeetCode]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 121 Best Time to Buy and Sell Stock
- LeetCode 121 -Best Time to Buy and Sell Stock ( JAVA )
- LeetCode 121 Best Time to Buy and Sell Stock