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

Posted 醉生梦死_0423

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode_121——买卖股票的最好时机(java实现)相关的知识,希望对你有一定的参考价值。

题目链接:

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实现)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 121. 买卖股票的最佳时机

LeetCode 121. 买卖股票的最佳时机

[JavaScript 刷题] DP - 买卖股票的最佳时机,leetcode 121

leetcode121 买卖股票的最佳时机(Easy)

[JavaScript 刷题] DP - 买卖股票的最佳时机,leetcode 121

Leetcode 121.买卖股票的最佳时机