哈希表,暴力.
1 class Solution { 2 public int singleNumber(int[] nums) { 3 Set<Integer> map=new HashSet<>(); 4 for(int num:nums){ 5 if(map.contains(num)){ 6 map.remove(num); 7 } 8 else { 9 map.add(num); 10 } 11 } 12 return map.iterator().next(); 13 } 14 }
异或操作满足交换律,可以想象将每个元素全部异或操作一遍,相同元素在异或后结果为0,最后得到的就是那个唯一的元素
1 class Solution { 2 public int singleNumber(int[] nums) { //nums为非空数组 3 int res=0; //数组为空则输出0 4 for(int num:nums){ 5 res^=num; 6 } 7 return res; 8 } 9 }