数组中只出现一次的数字

题目描述

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
 
复制代码
 1 class Solution {
 2 public:
 3     void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
 4         map<int,int> mm;
 5         int len = data.size();
 6         if (len <=1)
 7         {
 8                 *num1 = 0;
 9                 *num2 = 0;
10                 return ;
11         }
12         for (int i = 0 ;i < len ; ++i)
13         {
14             if(mm.count(data[i]) == 0)
15             {
16                 mm[data[i]] = 1;
17             }
18             else
19             {
20                 ++mm[data[i]];
21             }
22         }
23         int cnt = 1;
24         for (map<int,int>::iterator it = mm.begin() ; it != mm.end() ; ++it)
25         {
26             if(it->second == 1)
27             {
28                 if(cnt == 1)
29                 {
30                     *num1 = it->first;
31                     --cnt;
32                 }
33                 else
34                 {
35                     *num2 = it->first;
36                     break;
37                 }
38             }
39         }
40     }
41 };
复制代码

 

posted @   小爷  阅读(178)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
历史上的今天:
2015-01-26 认知实习(杭钢、杭州中萃)
2015-01-26 Head of a Gang (map+邻接表+DFS)
2015-01-26 Sharing
2015-01-26 Hello World for U (20)
点击右上角即可分享
微信分享提示