描述

一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

示例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;
    }
};