LintCode 82. 落单的数
2017-11-21 16:42
393 查看
题目:落单的数
要求:
给出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 int a = 0; for(int i=0; i<A.size(); i++) a ^= A[i]; return a; } };
相关文章推荐
- LintCode_82_落单的数
- lintcode 82.落单的数
- LintCode 82. 落单的数
- [LintCode]82.落单的数
- LintCode【简单】82. 落单的数。代码及思路
- 【LintCode 简单】82. 落单的数
- LintCode-82.落单的数
- Lintcode 82.落单的数
- [Lintcode] #82 落单的数
- Lintcode(S)落单的数
- 【LintCode】 Single Number 落单的数
- 容易_82_落单的数(5)
- lintcode -- 落单的数III
- LintCode-剑指Offer-(82)落单的数
- LintCode 落单的数
- lintcode-83-落单的数 II
- lintcode-84-落单的数 III
- LintCode 落单的数
- 落单的数IV --- lintcode 824
- Lintcode 落单的数 II