这个题目其实就是求最大子区间和的问题
原理 一天的股票的增长相对于前一天来说是固定的,我们把第一天的增长定义为0,其实就是求增长和最大,即maxRes=max(maxRes.thisRes)套用最大子区间和的模板就可以,时间复杂度O(n),空间复杂度O(1)
class Solution { public: /** * * @param prices int整型vector * @return int整型 */ int maxProfit(vector<int>& prices) { int maxvalue = 0; int cur = 0; for (int i = 1; i < prices.size(); i++) { int p=prices[i]-prices[i-1]; cur += p; maxvalue = max(maxvalue, cur); cur = cur < 0 ? 0 : cur; } return maxvalue; } };