[LintCode]82.落单的数
来源:互联网 发布:美白牙齿知乎 编辑:程序博客网 时间:2024/06/01 07:34
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
给出 [1,2,2,1,3,4,3],返回 4
异或运算:
首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数!
参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0
按位异或的3个特点:
(1) 0^0=0,0^1=1 0异或任何数=任何数
(2) 1^0=1,1^1=0 1异或任何数-任何数取反
(3) 任何数异或自己=把自己置0
思路:通过异或,相同的数结果为0,那么最后的结果一定是落单的数字。
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; }};
阅读全文
0 0
- [LintCode]82.落单的数
- lintcode 82.落单的数
- LintCode 82. 落单的数
- lintcode ----落单的数
- LintCode 落单的数
- lintcode-落单的数
- lintcode,落单的数
- lintcode->落单的数
- LintCode :落单的数
- 落单的数-LintCode
- lintcode:落单的数
- lintcode落单的数
- LintCode 落单的数
- Lintcode落单的数
- LintCode-落单的数 II
- LintCode-落单的数 III
- Lintcode—落单的数
- LintCode:落单的数 III
- 五(1)、JSP的——Javabean
- 2018网易内推笔试-交错01串(python)
- 【leetcode】第32题 Longest Valid Parentheses 题目+解析+代码
- 图片Gaussian pyramid(二)
- 线段覆盖2 CODEVS
- [LintCode]82.落单的数
- C语言--内存操作与管理
- HDU 6152 Friend-Graph
- 每日英语阅读(三十五)
- Java 定义数组 学习笔记
- 逆元 【简单的知识点】
- POJ 3525/LA 3890 二分+半平面交
- 如何搭建本地服务器?
- Android5.0,6.0,7.0新特性整理