与 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.
本文介绍了一种基于Kadane算法的变形,用于解决股票交易中寻找最佳买入和卖出时机的问题。通过将每日股价变动转化为数组,利用最大子列和算法高效地找到最大利润。此算法在在线提交中表现优异,运行速度超过99.57%的C++提交。
676

被折叠的 条评论
为什么被折叠?



