Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >137. 只出现一次的数字 II

137. 只出现一次的数字 II

作者头像
程序员小航
发布于 2023-10-22 09:44:22
发布于 2023-10-22 09:44:22
17000
代码可运行
举报
文章被收录于专栏:程序员小航程序员小航
运行总次数:0
代码可运行

题目

题解

方法一
  • 直接用哈希表出现 3 次则从哈希表移除,最后剩下的就是结果
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
    public int singleNumber(int[] nums) {

        Map<Integer, Integer> map = new HashMap<>();
        for (int num : nums) {
            Integer integer = map.getOrDefault(num, 0);
            if (integer == 2) {
                map.remove(num);
            } else {
                map.put(num, integer + 1);
            }
        }
        for (Integer i : map.keySet()) {
            return i;
        }
        return 0;
    }
}

方法二

  • 其余元素都出现三次,其中某个元素只出现一次,将每个元素都转化为二进制,则可能的结果为 4 个数都相同或者 3 个数都相同
  • 同一位结果可能为 0000111100011110
  • 通过位运算得出所有该位的和,对 3 进行取模则得出结果数字该位的值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
    public int singleNumber(int[] nums) {
        int res = 0;
        for (int i = 0; i < 32; i++) {
            int sum = 0;
            for (int num : nums) {
                // 最后一位的值
                sum += num >> i & 1;
            }
            // 将不同的数补到 res 后面
            res |= sum % 3 << i;
        }
        return res;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小航 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode通关:求次数有妙招,位运算三连
大家好,我是刷题困难户老三,这一节我们来刷几道很有意思的求次数问题,它们都有同一类非常巧妙的解法。
三分恶
2021/08/06
3720
【Leetcode】137.只出现一次的数字 II
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。
Leetcode名企之路
2019/07/09
4900
LC 137. 只出现一次的数字 II(位运算)
遍历数组然后把每个数存到map里,然后再在map里找到values == 1的key就是答案。
SakuraTears
2022/01/13
4020
LC 137. 只出现一次的数字 II(位运算)
LeetCode-136. 只出现一次的数字(java)
       这题相对其他简答题还要简答,所以题目难度我给了一星,分析题意可得要求找出只出现一次的那个数字,那么通常能想到的实现方式有哪些呢?(除了双层循环嵌套暴力法啊)
bug菌
2023/05/27
2620
LeetCode-136. 只出现一次的数字(java)
哇噻!位运算还可以这么玩呢~
在面试的过程中,我使用了 hash 表来解决的(时间复杂度和空间复杂度都是O(n)),但是面试官不满意,当时也实在没想到别的解法。
Wu_Candy
2022/07/05
1760
哇噻!位运算还可以这么玩呢~
LeetCode 136:只出现一次的数字 Single Number
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
爱写bug
2019/10/12
4490
LeetCode 350: 两个数组的交集 II Intersection of Two Arrays II
Given two arrays, write a function to compute their intersection.
爱写bug
2019/10/30
4550
栈与队列——347. 前 K 个高频元素
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
向着百万年薪努力的小赵
2022/12/02
2550
☆打卡算法☆LeetCode 137. 只出现一次的数字 算法解析
“给定一个数组,除了某个元素只出现一次,其他元素都出现三次,找出那个只出现一次的元素。”
恬静的小魔龙
2022/08/07
2580
☆打卡算法☆LeetCode 137. 只出现一次的数字  算法解析
350. 两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 = [
编程张无忌
2021/06/10
2550
350. 两个数组的交集 II
【优选算法篇】计算机背后的秘密武器:位运算的超能力(下篇)
接上篇:【优选算法篇】探索位运算的宇宙:简单规则背后的复杂逻辑(中篇)-CSDN博客
熬夜学编程的小王
2024/12/24
1060
【优选算法篇】计算机背后的秘密武器:位运算的超能力(下篇)
leetcode哈希表之好数对的数目
这里先利用HashMap统计一下元素的个数,根据一个数出现了n次的话,这个数的好数对就是n*(n-1)/2来计算结果。
code4it
2020/10/13
3750
leetcode哈希表之好数对的数目
【算法千题案例】⚡️每日LeetCode打卡⚡️——53.两个数组的交集 II
使用Dictionary字典操作,先把第一个数组遍历进字典,然后再同第二个数组做判定即可!
呆呆敲代码的小Y
2021/10/15
3110
剑指Offer LeetCode 面试题56 - II. 数组中数字出现的次数 II
# 面试题56 - II. 数组中数字出现的次数 II 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
手撕代码八百里
2020/07/28
3600
LeetCode-169-多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
benym
2022/07/14
3070
Leetcode 137. 只出现一次的数字 II - 题解
https://leetcode.com/problems/single-number-ii/
imath66
2018/09/18
2.3K0
力扣438——找到字符串中所有字母异位词
给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。
健程之道
2020/02/19
4980
【LeetCode 137.只出现一次的数字II】三种解法:哈希表、数学技巧和位运算(JavaScript实现)
题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。
心谭博客
2020/04/21
7331
[LeetCode] 137. Single Number II
该文讲述了如何在一个整数数组中找到只出现一次的数字。首先,需要对数组中的所有数字进行二进制运算,统计每个数字在数组中出现的次数。然后,对于每个数字,如果它在数组中只出现一次,那么它的二进制表示中1的个数为奇数。因此,只需要统计所有数字的二进制表示中1的个数,并找到出现次数为奇数且不为3的倍数的数字即可。最后,返回这个只出现一次的数字。
用户1148830
2018/01/03
5820
【位运算】只出现一次的数字 II
​ 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 **三次 。**请你找出并返回那个只出现了一次的元素。
利刃大大
2025/04/13
890
【位运算】只出现一次的数字 II
推荐阅读
相关推荐
LeetCode通关:求次数有妙招,位运算三连
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验