122.Best Time to Buy and Sell Stock II---dp

题目链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/description/

题目大意:基本定义与121类似,不同点:121买卖股票只能有一次,且在这所有的一次买卖中找出最大利润值;122买卖股票不限次数,要求在这所有次数中的最大利润值(这里题目描述不准确,其实不是求某一次买卖得到的最大利润值,而是求所有次买卖所获得的总利润值)。

题解(借鉴):这里不用利用121的贪心思想,直接计算每一天中,只要比前一天贵,就卖出当前股票获取利润。(但是我觉得这里题目漏洞太大了,也就是说1,2,3这组数据,得到的最大值是2,由(2-1)+(3-2)得到)。代码如下(耗时1ms):

1     public int maxProfit(int[] prices) {
2         int profit = 0;
3         for(int i = 1;i < prices.length; i++) {
4             if(prices[i] > prices[i - 1]) {
5                 profit += prices[i] - prices[i - 1];
6             }
7         }
8         return profit;
9     }
View Code

 

posted on 2017-10-22 15:59  二十年后20  阅读(195)  评论(0编辑  收藏  举报

导航