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实现)的主要内容,如果未能解决你的问题,请参考以下文章
[JavaScript 刷题] DP - 买卖股票的最佳时机,leetcode 121