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

专题五:位运算~

位运算总结

  1. 基础位运算:>>、<<、~、&、|和^六个运算
  2. 给一个数n,确定它的二进制表示中的第x位是0还是1:(n >> x) & 1
  3. 将一个数n的二进制表示的第x位修改成1:n |= (1 << x)
  4. 将一个数n的二进制表示的第x位修改成0:n &=(~(1 << x))
  5. 提取一个数n二进制表示中最右端的1:n & (-n)
  6. 干掉一个数n二进制表示中最右端的1:n & (n - 1)
  7. 异或运算律:a ^ 0 = a 、a ^ a = 0、a ^ b ^c = a ^ (b ^ c)

一、位1的个数

链接: 191. 位1的个数
在这里插入图片描述

public int hammingWeight(int n) {int ret = 0;while (n != 0) {n &= (n - 1);ret++;}return ret;}

二、比特位计数

链接: 338. 比特位计数
在这里插入图片描述

public int[] countBits(int n) {int[] bites = new int[n + 1];for (int i= 0; i <= n; i++) {bites[i] = countOnes(i);}return bites;}public int countOnes(int x) {int ones = 0;while (x != 0) {x &= (x - 1);ones++;}return ones;}

三、汉明距离

链接: 461. 汉明距离
在这里插入图片描述

public int hammingDistance(int x, int y) {int s = x ^ y, ret = 0;while (s != 0) {s &= s - 1;ret++;}return ret;}

四、只出现一次的数字

链接: 136. 只出现一次的数字
在这里插入图片描述

public int singleNumber(int[] nums) {int ret = 0;for (int x : nums) {ret ^= x;}return ret;}

五、只出现一次的数字 III

链接: 260. 只出现一次的数字 III
在这里插入图片描述

public int[] singleNumber(int[] nums) {int ret = 0;int[] arr = new int[2];for (int x : nums) ret ^=x;int lsb = ret & (-ret);int type1 = 0, type2 = 0;for (int num : nums) {if ((num & lsb) != 0) {type1 ^= num;} else {type2 ^= num;}}return new int[]{type1, type2};}

六、4的幂

链接: 342. 4的幂
在这里插入图片描述

public boolean isPowerOfFour(int n) {return (n > 0) && (n & (n - 1)) == 0 && (n % 3) == 1;}

本期内容到此为止,喜欢的话请点个赞,谢谢观看!!!

http://www.dtcms.com/a/461787.html

相关文章:

  • C++语言编程规范-资源分配和释放
  • 影视广告网站重庆网站建设制作
  • Hadess入门到实战(9) - 如何管理Composer(PHP)制品
  • 如何设计公司官网站苏宁易购网站风格
  • wx小程序扫码入口方式
  • Agent 开发设计模式(Agentic Design Patterns )第 1 章:提示词链
  • asp美食网站源码天津网站推广
  • 图像处理踩坑:浮点数误差导致的缩放尺寸异常与解决办法
  • Android Studio Meerkat 打开flutter项目没有自动选中main.dart configuration
  • OpenTiny TinyEngine 基础知识
  • 大模型-旋转位置编码(Rotary Positional Embedding)
  • 如何减小ES和mysql的同步时间差
  • this.$router.push 与 this.$router.replace 跳转的区别
  • 网站域名到期时间查询网站建设蛋蛋28
  • 建设网站选题应遵循的规则网站网页打开的速度什么决定的
  • 【Servlet】使用idea2023创建Servlet JavaWeb
  • 异步串口通信和逻辑分析仪
  • 中微电力建设公司网站建设人行官方网站
  • crew AI笔记[9] - 运用crew AI框架构建实战级agent项目
  • 12.MySQL使用C连接和连接池
  • Spring前置准备(八)——ConfigurableApplicationContext和DefaultListableBeanFactory的区别
  • 鸿蒙开发5--鸿蒙页面导航(声明式导航Navigation组件)
  • sql题目练习——单表查询
  • html怎么做成网站多软件网站下载安装
  • 做网站服务销售wordpress user level
  • 【C++贪心】P10537 [APIO2024] 九月|普及+
  • 大模型问答原理解析
  • 【二叉树的递归算法与层序遍历算法】
  • 【STM32】I2C通信—软件模拟
  • 公司网站怎么修改内容wordpress 4.7.2 中文