题目
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
示例 1:
输入:nums = [3,4,3,3]
输出:4
示例 2:
输入:nums = [9,1,7,9,7,9,7]
输出:1
思路
- HashMap集合元素不重复,如果重复会进行覆盖,且是无序的
- LinkedMap集合元素不重复,是有序的
- map.keySet()方法可以遍历key
代码
public int singleNumber(int[] nums) {
HashMap<Integer,Integer> map = new HashMap<>();
for(int i = 0;i<nums.length;i++){
map.put(nums[i],map.getOrDefault(nums[i],0)+1);
}
//遍历key
for(int i:map.keySet()){
if(map.get(i)==1){
return i;
}
}
return 0;
}