前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode145|数组中数字出现的次数II

LeetCode145|数组中数字出现的次数II

作者头像
码农王同学
发布2021-01-15 10:57:27
6680
发布2021-01-15 10:57:27
举报
文章被收录于专栏:后端Coder后端Coder

一,数组中数字出现的次数II

1,问题描述

在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。

2,示例描述

代码语言:javascript
复制
示例 1:

输入:nums = [3,4,3,3]
输出:4
示例 2:

输入:nums = [9,1,7,9,7,9,7]
输出:1
 

限制:

1 <= nums.length <= 10000
1 <= nums[i] < 2^31

 

3,题解思路

基于hashmap键值对集合

4,题解程序

代码语言:javascript
复制

import java.util.HashMap;
import java.util.Map;

public class SingleNumberTest5 {
    public static void main(String[] args) {
        int[] nums = {3, 4, 3, 3};
        int singleNumber = singleNumber(nums);
        System.out.println("singleNumber = " + singleNumber);
    }

    public static int singleNumber(int[] nums) {
        if (nums == null || nums.length == 0) {
            return 0;
        }
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            if (map.containsKey(nums[i])) {
                map.put(nums[i], map.get(nums[i]) + 1);
            } else {
                map.put(nums[i], 1);
            }
        }
        return map.entrySet()
                .stream()
                .filter(x -> x.getValue() == 1)
                .findFirst()
                .get()
                .getKey();
    }
}

5,总结一下

对于本题,整体最容易理解的思路就是基于键值对集合hashmap进行解决了

历史文章目录

数据结构:王同学下半年曾写过的JDK集合源码分析文章汇总

算法汇总:leetcode刷题汇总(非最终版)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,数组中数字出现的次数II
    • 1,问题描述
      • 2,示例描述
        • 3,题解思路
          • 4,题解程序
            • 5,总结一下
              • 历史文章目录
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档