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

常见位运算总结

目录

常见位运算总结

191:位1的个数

338:比特位计数

461:汉明距离

136:只出现一次的数字

260:只出现一次的数字III


常见位运算总结

191:位1的个数

链接:191. 位1的个数 - 力扣(LeetCode)

class Solution {
public:int hammingWeight(int n) {int cont = 0;while(n){cont++;n &=(n-1);//将最右侧的1变为0}return cont;}
};

338:比特位计数

题目链接:338. 比特位计数 - 力扣(LeetCode)

class Solution {
public:vector<int> countBits(int n) {vector<int> ret;for(int i = 0; i <= n; i++){int num = i;int cont = 0;while(num){cont++;num &= num-1;}ret.push_back(cont);}   return ret;}
};

461:汉明距离

题目链接:461. 汉明距离 - 力扣(LeetCode)

class Solution {
public:int hammingDistance(int x, int y) {int num = x ^y ;//相同为0,相异为1int cont = 0;while(num){cont++;num &= num-1;}return cont;}
};

136:只出现一次的数字

题目链接:136. 只出现一次的数字 - 力扣(LeetCode)

class Solution {
public:int singleNumber(vector<int>& nums) {int val  =0;for(int x : nums){val ^= x;}return val;}
};

260:只出现一次的数字III

题目链接:260. 只出现一次的数字 III - 力扣(LeetCode)

class Solution {
public:vector<int> singleNumber(vector<int>& nums) {int sum = 0;//两个不同的数字,这两个数字肯定有相异的地方//相异为1,所以sum二进制中会有两个地方有1//可以把这两个不同的数字分开for(auto& e : nums)sum ^= e;//考虑[-1,0][0,1]的情况,可能结果只有一个1int n = (sum == INT_MIN) ? sum : (sum &(-sum));int sum1 = 0,sum2 = 0;for(auto& e : nums){if(e & n)sum1 ^= e;elsesum2 ^= e;}return {sum1,sum2};}
};

http://www.xdnf.cn/news/2911.html

相关文章:

  • 塑料材料工程师简历模板
  • C#进阶学习(十七)PriorityQueue<TElement, TPriority>优先级队列的介绍
  • 阿里云服务器 篇十二:加入 Project Honey Pot 和使用 http:BL
  • 万象生鲜配送系统代码2025年4月29日更新日志
  • Java练习3
  • c语言的常用的预处理指令和条件编译
  • __proto__与prototype
  • 误在非开发分支上开发解决方案
  • LabVIEW实验室项目中使用类模块与仿真
  • Linux 怎么安装 Oracle Java 8
  • 通过logrotate和cronolog对日志进行切割
  • 什么是DNS缓存?怎么清理DNS缓存?
  • 网络安全攻防演练实训室建设方案
  • 9.idea中创建springboot项目
  • Next框架学习篇 ✅
  • Nginx部署与源码编译构建LAMP
  • Java基础 4.29
  • OpenJDK 1.8中-Xloggc参数下GC日志覆盖与追加模式深度解析
  • 软文发稿:媒体发稿的关键策略及实战价值
  • Android Studio中OpenCV应用详解:图像处理、颜色对比与OCR识别
  • 水污染检测数据集VOC+YOLO格式2487张4类别
  • mangodb的数据库与集合命令,文档命令
  • 字节跳动社招面经 —— BSP驱动工程师(4)
  • 【计算机网络】DHCP——动态配置ip地址
  • 仿真干货|云端CAE实战——OpenRadioss物品碰撞模拟分析
  • day006
  • FPGA 39 ,FPGA 网络通信协议栈进阶,RGMII、ARP 与 UDP 协议与模块设计( RGMII、ARP、UDP原理与模块设计 )
  • 基于STM32的中点圆算法,画空心圆的函数
  • 【MongoDB篇】MongoDB的数据库操作!
  • 通义千问最新一代大语言模型Qwen3发布了