码迷,mamicode.com
首页 > 编程语言 > 详细

leetcode_121——买卖股票的最好时机(java实现)

时间:2020-03-20 13:02:12      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:ssi   tco   转移   实现   mat   tar   alt   链接   mission   

题目链接:

https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/submissions/

 

思路:使用dp,保存上一步的状态,然后递推

状态转移方程:last  = Math.max(0, last + prices[i+1] - prices[i])//意思就是算出首指针到末指针的差,如果小于0则不保存(因为题意不需要小于零的数)

然后用res = Math.max(last,res)来记录最大利润

状态转移方程原理如下图:

技术图片

 

 中间数抵消以达到求出区间端点之差

 

source code:

package leetcode;

public class MaxProfit {
    /**
     * dp解法
     * @param prices
     * @return
     */
    public int maxProfit(int[] prices) {
        int last = 0;
        int res = 0;
        for(int i = 0;i<prices.length;++i){
            last = Math.max(0,last + prices[i+1] - prices[i]);
            res = Math.max(res,last);
        }
        return res;
    }
}

 

 

代码已ac

希望对大家有所帮助

以上

 

leetcode_121——买卖股票的最好时机(java实现)

标签:ssi   tco   转移   实现   mat   tar   alt   链接   mission   

原文地址:https://www.cnblogs.com/lavender-pansy/p/12530635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!