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

算法:只出现一次的数字II

题目

在这里插入图片描述

链接:leetcode链接


思路分析

这道题目其实是一个观察题,比较考察观察能力。

数组中只有一个元素只出现一次,其他的元素都出现三次

我们假设有n个元素出现三次

那么所有的元素的第i位的和加起来只有下面的四种情况

3n * 0 + 0
3n * 0 + 1
3n * 1 + 0
3n * 1 + 1

我们将其%3 会发现
结果与仅出现一次的元素在该位上的数字一样。

3n * 0 + 0 %3 = 0
3n * 0 + 1 %3 = 1
3n * 1 + 0 %3 = 0
3n * 1 + 1 %3 = 1

所以,我们的思路就出来了
我们只需要去获取这个只出现一次的元素在每一个bit位上的数字即可。

代码

int singleNumber(vector<int>& nums) {
        int n = nums.size();
        int ans = 0;

        for(int i = 0;i < 32;++i)
        {
            int bit = 0;
            for(auto& e:nums)
            {
                bit += ((e >> i) & 1);
                bit %= 3;
            }

            if(bit == 1)
            {
                ans |= (1 << i);
            }
        }

        return ans;
    }

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

相关文章:

  • conda迁移虚拟环境路径
  • 408——计算机网络(持续更新)
  • 【P2-9】ESP8266 WIFI模块在STA模式下作为TCP客户端上电自动进入透传数据模式
  • Template Method(模板方法)
  • MySQL45讲 第十四讲 count(*)这么慢,我该怎么办?
  • IPC机制总结笔记
  • 数据结构 -AVL Tree
  • 【HarmonyOS】鸿蒙系统
  • 彻底解决idea不识别java项目
  • Java8 新特性 —— Optional API 详解
  • 《GAN 的基本原理》
  • 【Nextcloud】在 Ubuntu 22.04.3 LTS 上的 Nextcloud Hub 8 (29.0.0) 优化
  • Copilot功能
  • 在.net下后台设置前台UEditor编辑器不可编辑
  • WordPress网站添加嵌入B站视频,自适应屏幕大小,取消自动播放
  • Spring Boot框架:校园社团信息管理的现代化解决方案
  • SQL 数据结构查询
  • Python网络爬虫:入门与实战
  • GHuNeRF: Generalizable Human NeRF from a Monocular Video
  • ubunu安装官方微信 解决安装后更新系统变为atzlinux的问题 卸载微信
  • 基于python flask的知乎问答文本分析与情感预测系统
  • 让Erupt框架支持.vue文件做自定义页面模版
  • QT中QML例程-学习笔记-语法
  • N-155基于springboot,vue宿舍管理系统
  • 【docker compose】docker compose的hello world
  • 第100+31步 ChatGPT学习:概率校准 Quantile Calibration