LintCode :落单的数
2017-03-18 15:50
239 查看
LintCode :落单的数
题目给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
给出 [1,2,2,1,3,4,3],返回 4
思路
我们知道两个相同的数异或为零,在给出的数据中除了落单的之外其他的数都有两个,所以把所有的数异或之后就能得到落单的那个数了。
代码
int singleNumber(vector<int> &A) { if(A.size() == 0) return 0; int result = 0; for(vector<int>::iterator it = A.begin(); it < A.end(); it++) result = result xor *it; return result; }
相关文章推荐
- lintcode:落单的数
- lintcode 中等题:Single number III 落单的数III
- lintcode ----落单的数
- lintcode-落单的数 II
- LintCode Single Number、落单的数
- LintCode-落单的数 III
- lintcode,落单的数
- LintCode 84. 落单的数III
- LintCode-剑指Offer-(82)落单的数
- lintcode落单的数
- LintCode:落单的数 III
- lintcode&九章算法——Lintcode No.82 落单的数 ? 待解决
- Lintcode-递归-97 二叉树的最大深度
- Lintcode: Interleaving Positive and Negative Numbers
- lintcode 中等题:Print Numbers by recursion 用递归打印数字
- LintCode 通配符匹配
- lintcode最长公共子串
- LintCode 510: Maximal Rectangle
- Lintcode爬楼梯
- LINTCODE---排序列表转换为二分查找树