136. 只出现一次的数字(异或/哈希表)
Posted niboss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了136. 只出现一次的数字(异或/哈希表)相关的知识,希望对你有一定的参考价值。
哈希表,暴力.
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 }
以上是关于136. 只出现一次的数字(异或/哈希表)的主要内容,如果未能解决你的问题,请参考以下文章