因只有一个元素只出现一次,其他元素均是两次。所以排序后,对相邻两元素不重复的进行比较,如果有不相等的,则相邻两元素中的前一个元素为落单的数。
class Solution {
public:
/*
* @param A: An integer array
* @return: An integer
*/
int singleNumber(vector<int> &A) {
// write your code here
if(A.size()==0)
return 0;
if (A.size() == 1)
return A[0];
sort(A.begin(),A.end());
int i,flag=0;
for (i=0;i<A.size();i=i+2) {
if (A[i]!=A[i+1]) {
flag=1;
return A[i];
break;
}
}
if(flag==0) return A[A.size()-1];
}
};