Best Time to Buy and Sell Stock II
2015-02-01 04:47
134 查看
非常straightforward的方法,只要后项比前向大,就把差值加进maxP。但是逻辑上违背了题目要求的不能在同一天又买又卖,只是数值是对的。
换一种逻辑上也正确的思路,找到递增的开始和递减的开始,prices[dec] - prices[inc] 就是买卖获利了,把所有这样的区间找出来相加就是max profit.
public int maxProfit(int[] prices) { if(prices == null || prices.length == 0) return 0; int i = 0; int maxP = 0; while(i < prices.length - 1) { maxP = Math.max(prices[i+1] - prices[i] + maxP, maxP); i++; } return maxP; }
换一种逻辑上也正确的思路,找到递增的开始和递减的开始,prices[dec] - prices[inc] 就是买卖获利了,把所有这样的区间找出来相加就是max profit.
public static int maxProfit(int[] prices) { if(prices == null || prices.length < 2) return 0; int i = 0; int maxP = 0; while(i < prices.length - 1){ int buy=0; int sell=0; while(i < prices.length-1 && prices[i+1] < prices[i]) i++; buy = i; while(i < prices.length-1 && prices[i+1] >= prices[i]) i++; sell = i; maxP += prices[sell] - prices[buy]; } return maxP; }
相关文章推荐
- LeetCode: Best Time to Buy and Sell Stock II
- Leetcode: Best Time to Buy and Sell Stock II
- Best Time to Buy and Sell Stock II
- LeetCode之Best Time to Buy and Sell Stock II
- LeetCode : Best Time to Buy and Sell Stock II
- Best Time to Buy and Sell Stock II
- [LeetCode]Best Time to Buy and Sell Stock II
- [leetcode]Best Time to Buy and Sell Stock II
- [LeetCode] Best Time to Buy and Sell Stock II Solution
- leetcode 61: Best Time to Buy and Sell Stock II
- leetcode 61: Best Time to Buy and Sell Stock II
- Leetcode: Best Time to Buy and Sell Stock I II III
- Best Time to Buy and Sell Stock II
- [LeetCode]Best Time to Buy and Sell Stock II
- Best Time to Buy and Sell Stock II
- [Leetcode] Best Time to Buy and Sell Stock II
- LeetCode - Best Time to Buy and Sell Stock II
- LeetCode Best Time to Buy and Sell Stock II
- [LeetCode] Best time to buy and sell a stock II
- Best Time to Buy and Sell Stock II