【Leetcode】【简单】136.只出现一次的数字

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/single-number/description/

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

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

示例 1 :

复制代码
输入:nums = [2,2,1]
输出:1

示例 2 :

复制代码
输入:nums = [4,1,2,1,2]
输出:4

示例 3 :

复制代码
输入:nums = [1]
输出:1

自己的思路

遍历目标数组nums,使用Map存储<key, value>,其中key是nums的元素,value是元素出现的次数。

元素出现分两种情况讨论

1、元素第一次出现:初始化value为1

2、元素不是第一次出现,获取value的值,然后+1

代码实现

java 复制代码
class Solution {
    public int singleNumber(int[] nums) {
        int len = nums.length;
        Map<Integer, Integer> hashMap = new HashMap<>();
        for (int i = 0; i < len; i++) {
            if (hashMap.containsKey(nums[i])) {
                hashMap.put(nums[i], hashMap.get(nums[i]) + 1);
            } else {
                hashMap.put(nums[i], 1);
            }
        }
        for (Map.Entry<Integer, Integer> entry : hashMap.entrySet()) {
            if (entry.getValue() == 1) {
                return entry.getKey();
            }
        }
        return -1;
    }
}

力扣官方题解(待更新)

相关推荐
文丑颜不良啊6 分钟前
LeetCode1261~1280题目解析
java·leetcode
not coder11 分钟前
一文讲通--从树到红黑树
数据结构·算法
octopus_c13 分钟前
C++ 入门
开发语言·c++·算法
ZhengEnCi27 分钟前
2026年10月30日AI早报:Gemini 4 Carbon登顶、DeepSeek融资1055亿、智元机器人上岗实测
人工智能·算法
强哥聊算力40 分钟前
《算力江湖·Intel帝国往事》第三集:安迪·格鲁夫的铁血时代:Intel为什么能把对手逼到墙角?
运维·人工智能·科技·算法·ai·gpu算力
Shaoshing1 小时前
LeetCode100 11. 盛最多水的容器
算法·leetcode
CoderYanger1 小时前
Java EE 进阶:5. Spring IoC&DI(第二弹):Spring IoC
java·开发语言·spring boot·spring·面试·职场和发展·java-ee
骑着蜗牛撵大象3271 小时前
558 万美元训出 671B 模型:DeepSeek-V3 算法与系统的协同拆解
分布式·算法·moe·deepseek-v3·mla·fp8训练
Eyfcom1 小时前
〖阶段性回顾〗物流系统架构与算法的 Day 1-5 知识图谱与实战答疑
算法·系统架构·知识图谱·物流管理系统·快递管理系统
xunberg2 小时前
【Agent 生产化手记-02】Agent 怎么向人提问
人工智能·算法·架构