力扣-122-买卖股票的最佳时机Ⅱ
你也可以先购买,然后在 同一天 出售
这句有什么意义?逻辑上说跟不买没区别,但是可能跟算法实现有关系感觉
很明显是动态规划,二维的吗?
单笔交易我们是这么做的:
维护一个最低购入价格,并计算每天最大获利=当前价格-最低购入
最后如果最大获利>0就直接返回,否则返回0
这个数组的最大值位置是不确定的,至少还需要一个变量保存最大利润
dp数组也是不必要的,两个变量就够了
没什么思路,然后评论提醒
你也可以先购买,然后在 同一天 出售
这个意思其实是你也可以先出售,然后在同一天购买
所以最终就变成了,只要昨天价格比今天便宜那就卖,反正如果明天更贵今天还能买回来
想到评论区开玩笑说就按这个买股票,但是很明显——你不会知道每天股票的价格
但是参考意义也有,你只要在足够低的时候买入,任何时候卖多少度都赚(好像是废话)
int maxProfit(vector<int>& prices) { int max = 0; for (int i = 1; i < prices.size(); i++) if (prices[i] > prices[i - 1]) max += prices[i] - prices[i - 1]; return max; }
绝对想不到可以写得这么简单
本文作者:YaosGHC
本文链接:https://www.cnblogs.com/yaocy/p/16879640.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步