[剑指 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,最后返回即可;

Last modification:October 16th, 2022 at 10:20 am
如果觉得我的文章对你有用,请随意赞赏