第五周作业:Single Number III
2017-03-28 13:31
288 查看
题目:
Given an array of numbers
the other elements appear exactly twice. Find the two elements that appear only once.
For example:
Given
Note:
The order of the result is not important. So in the above example,
also correct.
Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?
题解:求数组中两个唯一出现一次的两个数,由于知道用0遍历异或数组一遍可得到所求两个数的异或值,则由求所得值位为1则表示要求的两个数在那一位值不一样,则可用这不一样的位将原数组分为两个部分,两个不一样的数必然在不同部分中,各自异或遍历则可得到。
代码:
Given an array of numbers
nums, in which exactly two elements appear only once and all
the other elements appear exactly twice. Find the two elements that appear only once.
For example:
Given
nums = [1, 2, 1, 3, 2, 5], return
[3, 5].
Note:
The order of the result is not important. So in the above example,
[5, 3]is
also correct.
Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?
题解:求数组中两个唯一出现一次的两个数,由于知道用0遍历异或数组一遍可得到所求两个数的异或值,则由求所得值位为1则表示要求的两个数在那一位值不一样,则可用这不一样的位将原数组分为两个部分,两个不一样的数必然在不同部分中,各自异或遍历则可得到。
代码:
class Solution { public: vector<int> singleNumber(vector<int>& nums) { vector<int>a(2,0); int res=0; int bit=0; for(int i=0;i<nums.size();i++) res^=nums[i]; bit=res&(~(res-1)); for(int j=0;j<nums.size();j++) { if((bit&nums[j])==0) a[0]^=nums[j]; else a[1]^=nums[j]; } return a; } };
相关文章推荐
- leetcode 260. Single Number III
- 位操作 leetcode 260. Single Number III
- 260. Single Number III----leetcode
- leetcode-Single Number III 找独数
- LCP260 LeetCode 260. Single Number III
- [LeetCode] Single Number III
- [leetcode-260]Single Number III(c++)
- Leetcode 260. Single Number III
- [LeetCode][JavaScript]Single Number III
- LeetCode--137. Single Number II && 260. Single Number III之暴力搜法
- leetcode-java-260. Single Number III
- Single Number III
- Single Number III
- leetcode260-single number iii
- leetcode——Single Number III
- 260. Single Number III
- leetCode---Single Number III
- leetcode 260. Single Number III
- 【LeetCode】136 & 137 & 260 - Single Number I & II &III
- LeetCode 260 Single Number III (位运算 推荐)