260. Single Number III
2016-12-24 13:43
169 查看
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?
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?
public class Solution { public int[] singleNumber(int[] nums) { int[] res=new int[2]; Set<Integer> set=new TreeSet<>(); for(int i=0;i<nums.length;i++){ if(set.contains(nums[i])) set.remove(nums[i]); else set.add(nums[i]); } Iterator<Integer> s = set.iterator(); res[0]=s.next(); res[1]=s.next(); return res; } }
public class Solution { public int[] singleNumber(int[] nums) { // Pass 1 : // Get the XOR of the two numbers we need to find int diff = 0; for (int num : nums) { diff ^= num; } // Get its last set bit diff &= -diff; // Pass 2 : int[] rets = {0, 0}; // this array stores the two numbers we will return for (int num : nums) { if ((num & diff) == 0) // the bit is not set { rets[0] ^= num; } else // the bit is set { rets[1] ^= num; } } return rets; } }
相关文章推荐
- 260. Single Number III
- 260. Single Number III [medium] (Python)
- 260. Single Number III----leetcode
- LeetCode 260. Single Number III Python Solution
- 260. Single Number III 难度:medium
- 260. Single Number III
- 260. Single Number III
- leetcode 260. Single Number III
- 260. Single Number III
- LeetCode:260. Single Number III
- [LeetCode]260. Single Number III
- 260. Single Number III
- 260. Single Number III
- Leetcode 260. Single Number III
- 【leetcode】260. Single Number III
- LeetCode 260. Single Number III (数组查重)
- 260. Single Number III
- [leetcode] 260. Single Number III
- 260. Single Number III
- LeetCode 260. Single Number III