[LeetCode] - Single Number
来源:互联网 发布:免费域名com申请 编辑:程序博客网 时间:2024/06/16 10:53
Description: Given an array of integers, every element appears twice except for one. Find that single one.
Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
这是整个LeetCode上面做的第一道题。没啥好说的,XOR即可。
public class Solution { public int singleNumber(int[] A) { int single = 0; for(int i=0; i < A.length; i++) { single ^= A[i]; } return single; }}
http://stackoverflow.com/questions/1089987/given-an-array-of-numbers-except-for-one-number-all-the-others-occur-twice-gi
Assuming you can XOR
the numbers, that is the key here, I believe, because of the following properties:
XOR
is commutative and associative (so the order in which it's done is irrelevant).- a number
XOR
ed with itself will always be zero. - zero
XOR
ed with a number will be that number.
So, if you simply XOR
all the values together, all of the ones that occur twice will cancel each other out (giving 0) and the one remaining number (n
) will XOR
with that result (0) to give n
.
0 0
- leetcode Single Number & Single Number ||
- [LeetCode] Single Number
- Leetcode: Single Number
- Leetcode Single Number
- Single Number - leetcode
- Single Number II - leetcode
- Leetcode: Single Number II
- 【LeetCode】Single Number
- [LeetCode] Single Number II
- LeetCode: Single Number II
- LeetCode: Single Number
- leetcode -- Single Number II
- [leetcode]Single Number II
- [LeetCode] Single Number II
- [LeetCode]Single Number
- Leetcode Single Number
- 【leetcode】Single Number
- 【leetcode】Single Number II
- 黑马程序员——多线程之卖票问题
- 1387:斐波那契数列 @jobdu
- 枚举类型实例
- 从oracle表中随机取记录,产生随机数和随机字符串
- 1388:跳台阶 @jobdu
- [LeetCode] - Single Number
- 1389:变态跳台阶 @jobdu
- 1390:矩形覆盖 @jobdu
- JW Player6.7Pro专业版(网页视频播放器),自定义Logo和右键菜单,支持MP4、FLV等,支持直播
- Maximum Depth of Binary Tree
- 写给程序员:我们这一代不是汽车工人
- 黑马程序员-Java面向对象4
- 如何向 Oracle 表中的 Date 字段插入日期及时间
- [LeetCode] - Same Tree