一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字(简单易懂)
题目介绍
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
题目分析
这种题目可以通过建立map来进行键和值的查找,以数字为key,以出现的次数为value。详细操作请见源代码。
源代码
class Solution {
public:void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {map<int,int> mp;int flag1=0,flag2=0;map<int,int>::iterator it;for(int i=0;i<data.size();i++){mp[data[i]]++;}for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){if(it->second==1){if(flag1==0){*num1=it->first;flag1=1;}else{*num2=it->first;}}}}
};