【Leetcode题解】136.Single Number
2017-03-02 19:49
302 查看
题目意思为找出数组中唯一一个出现1次的元素,且该数组中其他元素均出现2次。
此处需要运用异或的性质,巧妙地进行解题:
异或性质:
a ^ 0 = a
a ^ a = 0
a ^ b ^ c = a ^ c ^ b
所以可以推出:a ^ b ^ a = a ^ a ^ b = 0 ^ b = b
所以对数组中所有的元素进行异或处理,出现偶数次的元素会被消去,结合题意,可知最后得到的结果为唯一一个出现1次的元素
附上关键代码:
elem = 0;
for(int i=0; i<n; i++)
{
elem = elem ^ array[i];
}
return elem;
此处需要运用异或的性质,巧妙地进行解题:
异或性质:
a ^ 0 = a
a ^ a = 0
a ^ b ^ c = a ^ c ^ b
所以可以推出:a ^ b ^ a = a ^ a ^ b = 0 ^ b = b
所以对数组中所有的元素进行异或处理,出现偶数次的元素会被消去,结合题意,可知最后得到的结果为唯一一个出现1次的元素
附上关键代码:
elem = 0;
for(int i=0; i<n; i++)
{
elem = elem ^ array[i];
}
return elem;
相关文章推荐
- LeetCode 136 Single Number题解
- Leetcode题解14 136. Single Number
- [LeetCode]题解(python):136-Single Number
- Leetcode题解 136. Single Number
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(仅仅出现一次的数字)】
- LeetCode 136 Single Number
- Leetcode-136:Single Number
- LeetCode136—Single Number
- LeetCode 136. Single Number
- leetcode-136. Single Number
- LeetCode(136)Single Number
- LeetCode——136. Single Number
- leetcode 136. Single Number
- leetcode 136. Single Number
- LeetCode(136) Single Number
- leetcode#136 Single Number
- LeetCode每日一题——136. Single Number
- [LeetCode]136. Single Number
- [LeetCode136]Single Number寻找一个数组里只出现一次的数
- LeetCode 136. Single Number