LeetCode 260
Single Number III
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?
1 public class Solution { 2 public int[] singleNumber(int[] nums) { 3 4 Set<Integer> set = new HashSet<Integer>(); 5 for(int i:nums){ 6 if(set.add(i) == false){ 7 set.remove(i); 8 } 9 } 10 int a[] = new int [set.size()]; 11 int b = 0; 12 for(int c:set){ 13 a[b] = c; 14 b++; 15 } 16 17 return a; 18 } 19 }