题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
注意赋值 和一些边界条件判断就可以
class Solution { public: void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) { if(data.size()==2){ num1=(int*)data[0]; *num2=*num2^data[1]; return ; } vector<int> ans ; for(int i = 0 ; i<data.size() ; ++i){ int now_val = data[i]; for(int j = 0 ; j<data.size() ; ++j){ if(i==data.size()-1 && j==data.size()-2 && data[j]!=now_val){ //针对最后一个元素 只用比较到倒数第二个元素就截止 ans.push_back(now_val); break ; } if(j!=i && data[j]==now_val)break; //找到最后一个数字了 都不重复 if(j==data.size()-1 && data[j]!=now_val)ans.push_back(now_val); } } *num1=*num1^ans[0]; *num2=*num2^ans[1]; return ; } };