因只有一个元素只出现一次,其他元素均是两次。所以排序后,对相邻两元素不重复的进行比较,如果有不相等的,则相邻两元素中的前一个元素为落单的数。

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];
  }
};