您的位置:首页 > 其它

LintCode 82. 落单的数

2018-01-29 21:45 232 查看

LintCode 82. 落单的数

问题描述

给出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
for (int i = 0; i < A.size(); i++) {
if (count(A,A[i]) == 1) {
return A[i];
}
}
}
int count(vector<int> &A,int num) {
int count = 0;
for(int i = 0; i < A.size(); i++) {
if (A[i] == num)
count++;
}
return count;
}
};


代码改进

class Solution {
public:
/*
* @param A: An integer array
* @return: An integer
*/
int singleNumber(vector<int> A) {
int ans = 0;
for(int i=0; i<A.size(); ++i)
ans ^= A[i];
return ans;
}
};


参考链接 http://blog.csdn.net/zwy1258432405/article/details/77415799
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: