56
给出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) {
// write your code here
if(A.size()==0)
return 0;
sort(A.begin(),A.end());
int n=1;
int ans=A[0];
int m=A.size();
for(int i=0;i<m;i++)
{
if(ans==A[i])
{ n=n+1;}
if(n==3)
{ ans=A[i+1];
n=1;
}
}
return ans;
}
};
我在网上看到了一个很厉害的解法,只要俩行。用的是^符号。感觉特简单。
给出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) {
// write your code here
if(A.size()==0)
return 0;
sort(A.begin(),A.end());
int n=1;
int ans=A[0];
int m=A.size();
for(int i=0;i<m;i++)
{
if(ans==A[i])
{ n=n+1;}
if(n==3)
{ ans=A[i+1];
n=1;
}
}
return ans;
}
};
我在网上看到了一个很厉害的解法,只要俩行。用的是^符号。感觉特简单。