Description:
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:
[5, 3]
is also correct.在线性时间复杂度下,找到两个只出现一次的元素。结果没有先后顺序。
既然是只出现一次且不考虑顺序,那么就可以机智的使用set的无序不可重复的特性。
public class Solution { public int[] singleNumber(int[] nums) { Set<Integer> set = new HashSet<Integer>(); for(int i : nums) { if(!set.add(i)) { set.remove(i); } } int[] res = new int[2]; int i = 0; for(int e : set) { res[i++] = e; } return res; } }
原文:http://www.cnblogs.com/wxisme/p/4842896.html