与 53. Maximum Subarray类似。
https://blog.youkuaiyun.com/eclipse_c/article/details/88417065
Kadane算法算法的变形
// 121. Best Time to Buy and Sell Stock
// 对于原数组,如果我们将arr[i]-arr[i-1],也就是股票某日与前一日价格差,依次排列成一个数组,那么所求问题的答案就变成了求这个新数组的最大子列和。
int Solution::maxProfit(vector<int>& prices)
{
int cur = 0;
int res = 0; // 最小为0
for (int i = 1; i < prices.size(); ++i)
{
int cha = prices[i] - prices[i - 1];
cur = std::max(cha + cur, cha);
res = std::max(cur, res);
}
return res;
}
Runtime: 8 ms, faster than 99.57% of C++ online submissions for Best Time to Buy and Sell Stock.
Memory Usage: 9.6 MB, less than 18.90% of C++ online submissions for Best Time to Buy and Sell Stock.