classSolution{publicint[]singleNumbers(int[] nums){int x =0, y =0, n =0, m =1;for(int num : nums)
n ^= num;while((n & m)==0)
m <<=1;for(int num: nums){if((num & m)!=0) x ^= num;else y ^= num;}returnnewint[]{x, y};}
第二题:剑指 Offer 56 - II. 数组中数字出现的次数 II
问题描述
思路
代码
classSolution{publicintsingleNumber(int[] nums){Map<Integer,Integer> map =newHashMap();for(int i =0; i < nums.length; i++){int a = map.getOrDefault(nums[i],0);
map.put(nums[i], a +1);}for(Integer a : map.keySet()){if(map.get(a)==1)return a;}return-1;}}