数组中只出现一次的数字

题目描述

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
 
解题:数组快排之后扫描一遍就出结果了。
时间复杂度:n+nlogn
c++代码如下:
class Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
    sort(data.begin(),data.end());
    int f1=0;
        for(int i=0;i<data.size();i++)
        {
        if(i==0&&data[i]!=data[i+1])
        {
             num1[0]=data[i];f1=1;   
        }
         else if(i>0&&i<=data.size()-2){
             if(data[i]!=data[i+1]&&data[i]!=data[i-1])
             {
                  if(f1==1)
                  {
                      num2[0]=data[i];break;
                 }
                 else
                 {
                     num1[0]=data[i];f1=1;    
                 }
                 
             }
         }
        else if(i==data.size()-1&&data[i]!=data[i-1])  num2[0]=data[i];
    }    
    }
};
不一样的烟火
原文地址:https://www.cnblogs.com/cstdio1/p/11239970.html