描述
一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
示例1
输入:
[1,4,1,6]
复制返回值:
[4,6]
复制说明:
返回的结果中较小的数排在前面
思路:这题我没有用哈希和位运算,用了一个最简单的思想,首先对数组进行排序,然后判断每一个元素和他后一个元素的关系,只要不相等就把当前的值加到一个新的数组后面,这里用C++里的push.back()非常方便,新建一个vector 后,只需要把出现一次的分别加到这个vector后就行,最后返回vector.
class Solution {
public:
vector<int> FindNumsAppearOnce(vector<int>& array) {
sort(array.begin(),array.end());
vector<int> result;
for(int i=0;i<array.size();i++)
{
if(array[i]==array[i+1])
i++;
else
result.push_back(array[i]);
}
return result;
}
};