新闻详情

新闻详情

首页 / 资讯中心 / 详情

元宝 LeetCode 134. 加油站 Rust实现

发布时间:2026/10/1 10:28:27来源:尧图网络
元宝    LeetCode 134. 加油站 Rust实现
Rust 实现贪心O(n) / O(1)和 Python 版逻辑完全一致用 Rust 切片写法符合 LeetCode Rust 模板。impl Solution {pub fn can_complete_circuit(gas: Vec, cost: Vec) - i32 {let n gas.len();let mut total 0i32; // 全局油差累计let mut cur 0i32; // 从候选起点出发的累计油差let mut start 0usize; // 候选起点下标for i in 0..n { let diff gas[i] - cost[i]; total diff; cur diff; // 到不了当前站 i起点后移到 i1 if cur 0 { start i 1; cur 0; } } // 总油量够才返回起点否则 -1 if total 0 { (start % n) as i32 } else { -1 } }}LeetCode 提交说明函数签名固定为“pub fn can_complete_circuit(gas: Vec, cost: Vec) - i32”返回值是“i32”所以“usize” 的“start” 最后转成“i32” 即可“start % n” 是为了防止“start n”循环结束时刚好越界到末尾后一位的情况实际“total0” 时“start” 不会超过“n”写上也安全更“Rust 风格”的迭代器写法可选如果想秀一下迭代器也可以这样写逻辑等价可读性看团队习惯impl Solution {pub fn can_complete_circuit(gas: Vec, cost: Vec) - i32 {let total: i32 gas.iter().zip(cost.iter()).map(|(g, c)| g - c).sum();if total 0 {return -1;}let mut cur 0; let mut start 0; for i in 0..gas.len() { cur gas[i] - cost[i]; if cur 0 { start i 1; cur 0; } } (start % gas.len()) as i32 }}⚠️ 上面这个版本先算“total”提前返回“-1”后面不用再判一次分支更清晰。复杂度维度 值时间 O(n) 单次遍历或两次若先算 total空间 O(1) 无额外分配和 Python 版对照记忆Python Rust“total diff”“total gas[i]-cost[i]”“start i 1”“start i 1”usize“return start if total0 else -1”“(start%n) as i32” /“-1”需要我再补一个带单元测试“#[test]” 的 cargo 工程版或者对比下 Rust vs Python 在边界用例如 n1的行为吗
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

实时流处理架构实战:Flume+Kafka+Flink+Structured Streaming方案详解 2026/10/1 11:08:43

实时流处理架构实战:Flume+Kafka+Flink+Structured Streaming方案详解

1. 从业务痛点聊起:为什么实时流处理成了刚需过去几年,我参与过不少数据平台类的项目,发现一个共性现象:几乎所有团队在建设数据中台或BI体系时,都会先做离线数仓,稳定跑通后再考虑实时链路。可一旦业务方尝…

阅读更多 →
C语言结构体大小计算:内存对齐规则与工程实践详解 2026/10/1 11:08:37

C语言结构体大小计算:内存对齐规则与工程实践详解

结构体大小这个问题,几乎是每个学C语言的人都会撞上的墙。学完基本语法,写了个结构体,一sizeof算出来,怎么跟想象中“成员大小加起来”不一样?多出来的那几个字节去哪了?我之前带过的不少新人,项…

阅读更多 →
纯前端JS实现本地文件拆分与合并:File、Blob与Stream实战 2026/10/1 11:08:37

纯前端JS实现本地文件拆分与合并:File、Blob与Stream实战

我刚做完一个挺有意思的小项目:一个纯前端、基于JS实现的文件合并拆分在线工具。起因很简单——经常要把几十个TXT日志按日期拆开,或者反过来把一堆分片合成一个大压缩包。市面上那些在线工具大部分得先把文件上传到服务器,一个是慢&#xff…

阅读更多 →
多空动能背离指标详解:识别趋势力竭的技术分析工具 2026/10/1 11:08:30

多空动能背离指标详解:识别趋势力竭的技术分析工具

1. 这个指标到底在说什么做交易的人,大概都遇到过这种场景:价格明明还在往上冲,自己刚追进去,结果立刻被套在高点;或者是跌了很久觉得到底了,抄进去之后发现下面还有地下室。事后复盘一看,很多次…

阅读更多 →
如何用认知去开发认知商品,再去迭代认知本身实证案例:矩规评级定位定级定价三定合一硬科技体系 2026/10/1 11:08:23

如何用认知去开发认知商品,再去迭代认知本身实证案例:矩规评级定位定级定价三定合一硬科技体系

中国终于跑出一套「定位定级定价三定合一」的硬科技体系|技术领域的穆迪,正在合肥诞生今天我们拆解一套国内几乎没有人做、也极少有人看懂的底层范式—— 一套完全源自中国产业实战、全流程标准化、全链路可复现、可审计、可联邦分布式部署、可全球通用的…

阅读更多 →
Java驯服自动化立库:WMS/WCS设备调度实战与核心机制解析 2026/10/1 11:08:17

Java驯服自动化立库:WMS/WCS设备调度实战与核心机制解析

凌晨两点,值班电话把我吵醒。电话那头仓管员声音很急:3号库堆垛机停了,任务卡在待回令,二十多个出库单全堵在路上。我一边翻身下床,一边回想这个场景——做WMS的我太熟悉了,仓库里轰隆作响的堆垛机、机械臂…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉