剑指 Offer 56 - I. 数组中数字出现的次数

 

思路#

方法:分组异或#

复制代码
 1 class Solution {
 2 public:
 3     vector<int> singleNumbers(vector<int>& nums) {
 4         int res = 0;
 5         for(int &num: nums) {
 6             res ^= num;
 7         }
 8 
 9         int a = 0, b = 0;
10         int k = 1;
11         while((k & res) == 0) { 
12             k = k << 1;
13         }
14 
15         for(int &num: nums) {
16             if((k & num) == 0) {
17                 a ^= num;
18             } else {
19                 b ^= num;
20             }
21         }
22 
23         return vector<int>({a, b});
24     }
25 };
复制代码

 

参考#

力扣官方题解 - 数组中数字出现的次数

posted @   拾月凄辰  阅读(88)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示
主题色彩