问题描述:
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
解题思路:
给出 [1,2,2,1,3,4,3],返回 4
对给定集合内元素先进行排序,相邻两个数为一组,进行比较,若不同,则找到该数。
代码:
class Solution {
public:
/*
* @param A: An integer array
* @return: An integer
*/
int singleNumber(vector<int> &A) {
int n=A.size();
sort(A.begin(),A.end());
for(int i=0;i<n;i=i+2)
{ if(A[i]!=A[i+1])
{ return A[i];
break;
}
}
// write your code here
}
};
感悟:
public:
/*
* @param A: An integer array
* @return: An integer
*/
int singleNumber(vector<int> &A) {
int n=A.size();
sort(A.begin(),A.end());
for(int i=0;i<n;i=i+2)
{ if(A[i]!=A[i+1])
{ return A[i];
break;
}
}
// write your code here
}
};
注意for循环是有间隔的,每次加二。