新闻详情

新闻详情

首页 / 资讯中心 / 详情

元宝 LeetCode 137.不出现一次的数字|| Rust实现

发布时间:2026/10/1 10:28:34来源:尧图网络
元宝    LeetCode 137.不出现一次的数字|| Rust实现
题目简述数组中除一个数只出现 1 次外其余都出现 3 次找出这个单数。要求 O(n) 时间 / O(1) 空间不能用哈希计数。思路和 Python 版完全一致用模 3 状态机对每一位做计数。✅ 推荐实现位运算状态机O(1) 空间最标准Rust 的“i32” 是补码表示位运算天然支持负数直接返回“one” 即可不用手动处理符号位。impl Solution {pub fn single_number(nums: Vec) - i32 {let mut one 0i32; // 该位出现次数 ≡ 1 (mod 3)let mut two 0i32; // 该位出现次数 ≡ 2 (mod 3)for x in nums { one (one ^ x) !two; two (two ^ x) !one; } one }}状态转移含义和 Python 同构第1次见到某位: one1, two0第2次见到某位: one0, two1第3次见到某位: one0, two0 ← 归零完成模3“!two” 是 Rust 的按位取反对应 Python 的“~two”。 备选逐位统计法更好理解处理符号位显式impl Solution {pub fn single_number(nums: Vec) - i32 {let mut res 0i32;for bit in 0…32 {let mask 1u32 bit;let mut cnt 0u32;for x in nums {if (x as u32) mask ! 0 {cnt 1;}}if cnt % 3 1 {res | 1i32 bit;}}res}}这里把“i32” cast 成“u32” 看位最后直接当补码返回负数也正确。复杂度维度 状态机版 逐位版时间 O(n) O(32n) ≈ O(n)空间 O(1) O(1)三语言对照136/137 系列语言 核心代码Python“one(one^x)~two; two(two^x)~one”Rust“one(one^x)!two; two(two^x)!one”TS“one(one^x)~two; two(two^x)~one”Rust 用“!” 按位取反Python/JS 用“~”语义完全一样。为什么不用 HashMap“HashMap” 计数是 O(n) 时间但 O(n) 空间违反题目隐藏约束面试会被追问“能不能 O(1) 空间”。小验证// LeetCode 样例Solution::single_number(vec![2,2,3,2]); // 3Solution::single_number(vec![0,1,0,1,0,1,99]); // 99Solution::single_number(vec![-2,-2,-2,5]); // 5 负数补码也正确要不要我把 “出现 k 次只留 1 次”的通解用 k 位状态机 / 数字逻辑 也整理一下或者顺手把 260 两个单数 Rust 版补上做成 Single Number 套题速查表
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

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

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

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

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

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

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

阅读更多 →
Linux下进程管理实验:从fork到僵尸进程的完整解析 2026/10/1 11:08:16

Linux下进程管理实验:从fork到僵尸进程的完整解析

1. 实验述求与环境准备 1.1 这个实验到底在验证什么 操作系统进程管理实验,几乎每个计算机专业的学生都会碰到。表面上看,实验要求无非是“编写程序模拟进程创建、撤销、阻塞、唤醒”或者“观察父子进程关系”,但很多同学做完了只觉得代码跑…

阅读更多 →
位置指纹定位算法详解:从RSSI原理到多源融合实践 2026/10/1 11:08:10

位置指纹定位算法详解:从RSSI原理到多源融合实践

你有没有遇到过这种情况:在商场地下停车场绕了三圈找不到车,导航地图上那个代表你的蓝点却还在马路上乱飘;或者走进一家大型医院,明明指示牌写着“检验科往右”,你走了五分钟还是没找到。室外有GPS、北斗,定…

阅读更多 →
WPF+MVVM下ModbusRTU高可靠通讯链路设计 2026/10/1 11:08:10

WPF+MVVM下ModbusRTU高可靠通讯链路设计

1. 这不是又一个“ModbusRTU封装”,而是上位机通讯链路的底层缝合术我第一次在产线调试时,用自己写的ModbusRTU类库读取PLC寄存器,连续三天没找出为什么每小时必丢一帧——不是超时,不是校验错,也不是串口缓冲区溢出。…

阅读更多 →
Vue cron表达式组件选型:通用编辑器与Element Plus自组合 2026/10/1 11:08:09

Vue cron表达式组件选型:通用编辑器与Element Plus自组合

前几天帮一个做数据采集平台的朋友改需求,后台要给每个采集任务配一个执行周期,产品经理的原话是“要能让不懂技术的运营自己点着选,别让他们手写 cron 表达式”。当时我第一反应就是找一个现成的 vue cron 表达式组件嵌进去,结果…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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