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

(leetcode算法题)137. 只出现一次的数字 II

处理这种数据集中只有一个数出现的频次为1,其他数出现的频次均为k的题目

往往都是使用位运算的进行求解

假设 target在数据集中只出现了1次,其他数据n1, ... nj都出现了 k 次,

考虑数据集中所有数据的第 i 位的取值,那么将会有j + 1个比特位,其中如果n1 到 nj中有且仅有 x个数字在第 i 位取1,其他的数字在第 i 位取0

那么将这 j 个数全部相加,得到的结果为α,α一定是 k 的倍数,

那么((target >> i ) & 1 + α) % k一定等于(target >> i ) & 1

所以将这j + 1个比特位相加之后对k 取模,得到的一定是 target在第 k位的取值

class Solution {
public:int singleNumber(vector<int>& nums) {int ret = 0;for(int i = 0; i < 32; i++){int tmp = 0;for(auto & num : nums){tmp += (num >> i) & 1;}ret += ((tmp % 3) << i);}return ret;}
};

http://www.lryc.cn/news/516866.html

相关文章:

  • 在大数据环境下高效运用NoSQL与关系型数据库的结合策略
  • C语言——分支与循环语句
  • 下载b站高清视频
  • 常见 JVM垃圾回收器、内存分配策略、JVM调优
  • 【HarmonyOS应用开发——ArkTS语言】欢迎界面(启动加载页)的实现【合集】
  • 【MySQL】:Linux 环境下 MySQL 使用全攻略
  • Linux驱动开发 gpio_get_value读取输出io的电平返回值一直为0的问题
  • 【数据结构】栈与队列(FIFO)
  • vue.js -ref和$refs获取dom和组件
  • unity学习5:创建一个自己的3D项目
  • IEEE PDF eXpress遇到Font TimesNewRomanPSMT is not embedded的解决方案
  • 计算机网络 (21)网络层的几个重要概念
  • 企业网络性能监控
  • halcon三维点云数据处理(五)创建代表工具和机器人底座的3D模型
  • 容器技术思想 Docker K8S
  • 25年1月更新。Windows 上搭建 Python 开发环境:PyCharm 安装全攻略(文中有安装包不用官网下载)
  • Oracle job(定时任务)
  • [python3]Excel解析库-xlwt
  • 【Rust自学】10.3. trait Pt.1:trait的定义、约束与实现
  • 大数据高级ACP学习笔记(2)
  • K8s高可用集群之Kubernetes集群管理平台、命令补全工具、资源监控工具部署及常用命令
  • 【ArcGIS Pro二次开发实例教程】(2):BSM字段赋值
  • OpenCV轮廓相关操作API (C++)
  • [开源]自动化定位建图系统
  • linux ansible部署
  • 《Rust权威指南》学习笔记(二)
  • Redis内存碎片
  • Express 加 sqlite3 写一个简单博客
  • 正则表达式进阶学习(一):环视、捕获分组与后向引用
  • 《Vue3 七》插槽 Slot