news 2026/8/5 13:20:47

刷题笔记:力扣第122题-买卖股票的最佳时机Ⅱ

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
刷题笔记:力扣第122题-买卖股票的最佳时机Ⅱ

1.为了利益最大化,将股票的每日价格看成一个折线图,在低点买入高位卖出就一定能赚钱,实际上就是寻找数组的极值点。使用贪心算法,完整代码如下:

1. int maxProfit(int* prices, int pricesSize) { 2. // 只有一天股价,无法完成买卖,利润为0 3. if (pricesSize == 1) return 0; 4. 5. // res 累计总利润 6. int res = 0; 7. // buy 记录买入价格,-1代表当前无持仓 8. int buy = -1; 9. // 从第二天股价开始遍历 10. for (int i = 1; i < pricesSize; i++){ 11. // 当前无持仓,且当天股价高于前一天,在前一天买入 12. if (buy == -1 && prices[i] > prices[i - 1]){ 13. buy = prices[i - 1]; 14. } 15. // 当前持有股票 16. if (buy >= 0){ 17. // 当天股价低于前一天,前一天卖出,结算利润,清空持仓 18. if (prices[i] < prices[i - 1]){ 19. res += prices[i - 1] - buy; 20. buy = -1; 21. } else if (i == pricesSize - 1){ 22. // 遍历到最后一天仍持有股票,当天卖出结算利润 23. res += prices[i] - buy; 24. buy = -1; 25. } 26. } 27. } 28. 29. return res; 30. }

该算法时间复杂度为O(n),空间复杂度为O(1)。

2.官方的贪心算法代码写的极其简单,如果第二天比第一天的股票价格贵就买入并卖出。因为题目上强调了可以当天同时买入与卖出,行为上复杂化且等价于寻找波峰波谷,但代码就会变得非常简单:

1. int maxProfit(int* prices, int pricesSize) { 2. // res 存放累计的最大利润 3. int res = 0; 4. // 只有一天价格,无法进行买卖,利润为0 5. if (pricesSize == 1) return 0; 6. // 从第二天开始遍历所有价格 7. for (int i = 1; i < pricesSize; i++){ 8. // 相邻两天差价为正就累加利润,差价为0或负数不加 9. res += fmax(0, prices[i] - prices[i - 1]); 10. } 11. 12. return res; 13. }

3.官方答案还有动态规划算法,看起来比贪心算法要复杂,当下就不再尝试了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/5 13:18:43

3台电脑1套键鼠:Input Leap让你的数字工作空间无缝连接

3台电脑1套键鼠&#xff1a;Input Leap让你的数字工作空间无缝连接 【免费下载链接】input-leap Open-source KVM software 项目地址: https://gitcode.com/gh_mirrors/in/input-leap 想象一下这样的工作场景&#xff1a;你的左边是Windows台式机&#xff0c;右边是MacB…

作者头像 李华
网站建设 2026/8/5 13:18:09

基于QClaw框架开发AI Agent技能:从环境搭建到风格化对话实战

1. 项目缘起&#xff1a;从“江南第一深情”到AI Agent的落地尝试 最近在AI圈子里&#xff0c;一个叫QClaw的工具讨论度挺高&#xff0c;尤其是在一些开发者社群里&#xff0c;经常能看到关于用它来跑各种“skill”的分享。所谓“skill”&#xff0c;你可以把它理解成一个封装好…

作者头像 李华
网站建设 2026/8/5 13:15:51

从被裁员到带团队,6个月逆袭!小白程序员必看:AI时代如何转型全栈并收藏这份路线图?

本文讲述了作者从被裁员前端转型为全栈技术负责人的经历&#xff0c;分析了前端困境及AI时代程序员面临的挑战。作者提出通过学习后端、数据库、DevOps等技能&#xff0c;结合AI工具提升效率&#xff0c;实现职业突破。文章还提供了从建立后端认知到部署上线的转型路线图&#…

作者头像 李华
网站建设 2026/8/5 13:15:50

Glass Browser:Windows上实现终极多任务处理的透明悬浮浏览器指南

Glass Browser&#xff1a;Windows上实现终极多任务处理的透明悬浮浏览器指南 【免费下载链接】glass-browser A floating, always-on-top, transparent browser for Windows. 项目地址: https://gitcode.com/gh_mirrors/gl/glass-browser 你是否厌倦了在多个窗口之间不…

作者头像 李华
网站建设 2026/8/5 13:15:41

三步掌握QQ空间历史数据恢复:构建个人数字记忆档案馆的全新方案

三步掌握QQ空间历史数据恢复&#xff1a;构建个人数字记忆档案馆的全新方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 当你的QQ空间里那些承载青春记忆的说说随着时间流逝逐渐模糊…

作者头像 李华