[剑指 Offer II 004. 只出现一次的数字 ](https://leetcode.cn/problems/WGki4K/)
难度中等107收藏分享切换为英文接收动态反馈
给你一个整数数组 nums
,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
示例 1:
输入:nums = [2,2,3,2]
输出:3
示例 2:
输入:nums = [0,1,0,1,0,1,100]
输出:100
提示:
1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
nums
中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次
题解
import java.util.HashMap;
import java.util.Map;
public class Solution {
public int singleNumber(int[] nums) {
Map<Integer,Integer> freq=new HashMap<Integer,Integer>();
for(int num:nums){
freq.put(num,freq.getOrDefault(num,0)+1);
}
int ans=0;
for(Map.Entry<Integer,Integer> entry: freq.entrySet()){
int num=entry.getKey();
int occ=entry.getValue();
if(occ==1){
ans=num;
break;
}
}
return ans;
}
}
思路
用hashmap记录键值,最后统计出现一次的value对应的key,最后返回即可;
想想你的文章写的特别好https://www.ea55.com/