只出现一次的数字 II

题目链接

只出现一次的数字 II

题目描述

注意点

  • nums中,除某个元素仅出现一次外,其余每个元素都恰出现三次
  • 设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题

解答思路

  • 本题与只出现一次的数字的数字类似,区别是重复的数字会重复出现三次,仍然是通过位运算找到只出现一次的数字
  • 对nums数组中的每个数字第i位进行加运算,加起来得到count,因为重复的数字会重复出现三次,所以需要对count模3取余,出现三次的数字该位为0,出现一次的数字该位为1,将每一位都做相同的运算后最终对每一位相加得到的就是只出现一次的数字

代码

class Solution {
    public int singleNumber(int[] nums) {
        int res = 0;
        for (int i = 0; i < 32; i++) {
            // 统计第i位为1的数量
            int count = 0;
            for (int num : nums) {
                count += num >> i & 1;
            }
            res |= count % 3 << i;
        }
        return res;
    }
}

关键点

  • 位运算的思想

相关推荐

  1. 力扣-137. 出现数字 II

    2024-03-30 22:10:09       41 阅读
  2. (52)出现数字III

    2024-03-30 22:10:09       32 阅读
  3. 力扣-260. 出现数字 III

    2024-03-30 22:10:09       26 阅读
  4. 出现数字

    2024-03-30 22:10:09       19 阅读
  5. 136.出现数字

    2024-03-30 22:10:09       8 阅读
  6. 每日OJ题_位运算⑥_力扣137. 出现数字 II

    2024-03-30 22:10:09       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 22:10:09       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 22:10:09       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 22:10:09       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 22:10:09       20 阅读

热门阅读

  1. 2434. 使用机器人打印字典序最小的字符串

    2024-03-30 22:10:09       20 阅读
  2. 数据可视化之极坐标

    2024-03-30 22:10:09       17 阅读
  3. 安卓APP开发中的重要环节:数据和文件存储概述

    2024-03-30 22:10:09       20 阅读
  4. Golang- 邮件服务,发送邮件

    2024-03-30 22:10:09       21 阅读
  5. 【Docker】常用命令 docker compose

    2024-03-30 22:10:09       16 阅读
  6. C语言- %i 读取不同进制的数

    2024-03-30 22:10:09       14 阅读
  7. 2023春秋杯冬季赛wp

    2024-03-30 22:10:09       21 阅读
  8. uniapp 未配置appkey或配置错误的解决

    2024-03-30 22:10:09       16 阅读
  9. Doris案例篇—Doris 在思必驰的应用实践

    2024-03-30 22:10:09       19 阅读
  10. kubelet源码阅读

    2024-03-30 22:10:09       20 阅读
  11. 【软考---系统结构设计师】IPv6

    2024-03-30 22:10:09       21 阅读