当前位置: 首页 > article >正文

leetcode——只出现一次的数字(java)

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

示例 1 :

输入:nums = [2,2,1]

输出:1

示例 2 :

输入:nums = [4,1,2,1,2]

输出:4

示例 3 :

输入:nums = [1]

输出:1

解题方法:(哈希表)

1.经过对题目的分析,可以使用哈希表来进行解题。

2.创建哈希表,遍历数组,并且使用哈希表来计数,然后第二次循环来检查哈希表选出次数为1的键即可。

class Solution {
    public int singleNumber(int[] nums) {
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            map.merge(nums[i], 1, Integer::sum);
        }
        for (Integer key : map.keySet()) {
            if (map.get(key) == 1) {
                return key;
            }
        }
        return -1;
    }
}


http://www.kler.cn/a/535841.html

相关文章:

  • 第16章 Single Thread Execution设计模式(Java高并发编程详解:多线程与系统设计)
  • 2.Python基础知识:注释、变量以及数据类型、标识符和关键字、输入函数、输出函数、运算符、程序类型转换
  • HTML 复习
  • CSS(三)less一篇搞定
  • Javascript 日期计算如何实现当前日期加一天或者减去一天
  • PostgreSQL证书什么样子的?
  • 阿里云与腾讯云 DDoS 防御价格大比拼
  • vue组件和插件的区别与联系
  • 【前端】【面试】【经典一道题】前端 Vue、React 采用单向数据流的原因
  • 基于离散浣熊优化算法(Discrete Coati Optimization Algorithm,DCOA)的骑手配送路径规划研究,MATLAB代码
  • Java 面试之结束问答
  • .net知识点4
  • 【Linux】冯诺依曼体系结构和操作系统概念理解
  • 如果$nextTick内部抛出错误,如何处理?
  • 发布:大彩科技DB系列1.6寸圆形UI串口屏发布!
  • 树莓派卷积神经网络实战车牌检测与识别
  • Linux 内核源码can相关配置项
  • 每日Attention学习21——Cascade Multi-Receptive Fields
  • 华为od 勾股数元组
  • 如何在 FastAPI 中使用本地资源自定义 Swagger UI
  • ElasticSearch 学习课程入门(二)
  • 【2024华为OD-E卷-100分-箱子之字形摆放】((题目+思路+JavaC++Python解析)
  • maxun爬虫机器人介绍与部署
  • vue文档01
  • Linux系统安装Nginx详解(适用于CentOS 7)
  • C#元组和Unity Vector3