news 2026/9/28 4:46:15

DeepSeek LeetCode 122. 买卖股票的最佳时机 II Rust实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepSeek LeetCode 122. 买卖股票的最佳时机 II Rust实现

LeetCode 122. 买卖股票的最佳时机 II(Rust 实现)

思路

由于可以无限次交易,且任意时刻最多持有一股,所以只要后一天价格比前一天高,就可以在前一天买入、后一天卖出,赚取差价。将所有相邻两天的正收益累加即为最大利润。

也可以用动态规划:维护两个状态——不持股的最大利润 cash 和持股的最大利润 hold。

Rust 实现(贪心法)

implSolution{pubfnmax_profit(prices:Vec<i32>)->i32{letmutprofit=0;foriin1..prices.len(){ifprices[i]>prices[i-1]{profit+=prices[i]-prices[i-1];}}profit}}

Rust 实现(动态规划)

implSolution{pubfnmax_profit(prices:Vec<i32>)->i32{ifprices.is_empty(){return0;}// cash: 不持股的最大利润,hold: 持股的最大利润letmutcash=0;letmuthold=-prices[0];foriin1..prices.len(){letnew_cash=cash.max(hold+prices[i]);letnew_hold=hold.max(cash-prices[i]);cash=new_cash;hold=new_hold;}cash}}

关键点

  1. 贪心法:每一段上涨都拆成每天的正收益,累加即可,时间复杂度 O(n),空间 O(1)。
  2. 动态规划:
    · cash 表示当天不持股的最大利润,hold 表示当天持股的最大利润。
    · 状态转移:
    · cash = max(cash, hold + prices[i])(今天卖出)
    · hold = max(hold, cash - prices[i])(今天买入,注意这里用的是前一天的 cash,因为当天只能操作一次,但代码中先计算 new_cash 再计算 new_hold,使用旧 cash 是正确的)
    · 最终返回 cash。
  3. Rust 注意:使用 i32::max 或 .max() 方法;prices 为空时直接返回 0。

复杂度

· 时间:O(n),遍历一次。
· 空间:O(1),只用了常数个变量。

测试用例

#[test]fntest_max_profit(){assert_eq!(Solution::max_profit(vec![7,1,5,3,6,4]),7);assert_eq!(Solution::max_profit(vec![1,2,3,4,5]),4);assert_eq!(Solution::max_profit(vec![7,6,4,3,1]),0);}

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

第八章 组网技术

第八章 组网技术 8-1 交换机 交换机分类 ■ 1.根据交换方式分存储转发式交换&#xff08;Store and Forward&#xff09;&#xff1a;完整接收数据帧&#xff0c;缓存、验证、碎片过滤&#xff0c;然后转发。优点&#xff1a;可以提供差错校验和非对称交换。缺点&#xff1a;延…

作者头像 李华
网站建设 2026/9/28 4:46:08

玻尔兹曼机:深度学习的「前世」,从统计力学到 RBM

从统计力学到受限玻尔兹曼机&#xff0c;理解深度学习的历史脉络开头&#xff1a;统计力学和机器学习有什么关系&#xff1f; 上一篇我们学习了信息论&#xff0c;用熵度量不确定性。 今天我们学习玻尔兹曼机——深度学习的「前世」。 统计力学&#xff1a; 研究大量粒子的宏观…

作者头像 李华
网站建设 2026/9/28 4:45:52

JVM 应用度量框架 Micrometer 实战详解

1. 为什么需要 Micrometer在微服务和云原生时代&#xff0c;应用的运行状态已经不能只靠「服务是否在线」来判断。接口有没有变慢、线程池是否被打满、缓存命中率是否下降、GC 是否频繁、下游依赖是否抖动&#xff0c;这些问题都需要通过可量化的指标来持续观测。传统的日志只能…

作者头像 李华
网站建设 2026/9/28 4:45:34

House of pig

我们要聊的 House of Pig 不是什么枯燥的代码段&#xff0c;而是一场极其优雅、环环相扣的“内存抢劫案”。这个技术由中国安全研究员 pig 在 2021 年的 XCTF 总决赛中首次提出&#xff0c;主要用来对付 glibc 2.31 及以上版本 的高难度 Linux 堆漏洞利用&#xff08;Pwn&#…

作者头像 李华