news 2026/7/15 15:24:26

Java 位运算算法题目练习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 位运算算法题目练习

好,这一块非常适合刷算法 + 面试装硬核😄
我给你一套由浅入深的 Java 位运算算法练习清单每题都配思路 + 关键位运算点,不啰嗦但管用。


Java 位运算算法题目练习(从入门到进阶)

目标
一看到题目,就能条件反射想到「位运算能不能干」


一、位运算基础热身(必刷)

1️⃣ 判断奇偶

题目:判断一个整数是奇数还是偶数

booleanisOdd(intn){return(n&1)==1;}

📌 原理:最低位为 1 → 奇数


2️⃣ 交换两个数(不使用第三个变量)

voidswap(inta,intb){a=a^b;b=a^b;a=a^b;}

⚠ 面试点:

  • a、b 指向同一变量会出错

3️⃣判断是否是 2 的幂

booleanisPowerOfTwo(intn){returnn>0&&(n&(n-1))==0;}

二、位运算经典算法题(高频)

4️⃣ 统计二进制中 1 的个数

题目:Hamming Weight

intcountOnes(intn){intcount=0;while(n!=0){n&=(n-1);count++;}returncount;}

📌 技巧:

n & (n - 1)每次消掉最右边的 1


5️⃣ 找出数组中只出现一次的数字(其余出现两次)

intsingleNumber(int[]nums){intres=0;for(intn:nums){res^=n;}returnres;}

📌 核心:


6️⃣ 找出两个只出现一次的数字

int[]singleNumberTwo(int[]nums){intxor=0;for(intn:nums)xor^=n;intlowbit=xor&(-xor);inta=0,b=0;for(intn:nums){if((n&lowbit)==0)a^=n;elseb^=n;}returnnewint[]{a,b};}

📌 面试杀点:


三、位运算 + 数学技巧

7️⃣ 加法(不使用 + -)

intadd(inta,intb){while(b!=0){intcarry=(a&b)<<1;a=a^b;b=carry;}returna;}

📌 理解:


8️⃣ 取绝对值(不使用 if)

intabs(intx){intmask=x>>31;return(x^mask)-mask;}

四、位运算 + 状态压缩(进阶)

9️⃣ 子集枚举

voidsubsets(intn){for(intmask=0;mask<(1<<n);mask++){// mask 表示一个子集}}

📌 应用:


🔟 判断两个数是否符号相同

booleansameSign(inta,intb){return(a^b)>=0;}

五、位运算面试必背 7 大技巧

1️⃣n & (n - 1)消除最低位 1
2️⃣n & (-n)提取最低位 1
3️⃣x ^ x = 0
4️⃣x ^ 0 = x
5️⃣ 左移相当于乘 2
6️⃣ 右移相当于除 2
7️⃣ 位运算常用于状态压缩


六、刷题路线建议(收藏)

奇偶 / 2 的幂 ↓ 统计 1 ↓ 异或找单数 ↓ 不使用运算符 ↓ 状态压缩 / 位 DP

七、一句话终极总结

位运算 = 用二进制思考问题


如果你愿意,我可以下一步帮你:

你是偏刷题拿 offer,还是算法内功修炼

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 10:05:21

usblyzer工业调试入门必看:零基础掌握数据抓包

以下是对您提供的博文《USBlyzer工业调试入门必看:零基础掌握数据抓包——专业级技术分析指南》的 深度润色与结构重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹 :语言自然、有节奏、带工程师口吻,杜绝模板化表达; ✅ 打破章节割裂感 :取消“引言…

作者头像 李华
网站建设 2026/7/7 9:29:07

STRING.JOIN在数据处理中的5个实际应用场景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个Python脚本&#xff0c;实现以下功能&#xff1a;1. 读取一个包含多行文本的日志文件&#xff1b;2. 使用STRING.JOIN函数将所有日志行拼接成单个字符串&#xff0c;每行用…

作者头像 李华
网站建设 2026/7/1 10:07:25

CISSP持证专家分享:企业安全架构实战案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个企业安全架构案例库应用&#xff0c;包含&#xff1a;1) 交互式案例展示界面&#xff0c;可筛选不同行业和风险等级&#xff1b;2) CISSP知识域映射功能&#xff0c;显示案…

作者头像 李华
网站建设 2026/7/1 10:05:27

AI如何帮你快速掌握TELNET命令?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个基于AI的TELNET命令生成器&#xff0c;能够根据用户输入的网络设备类型&#xff08;如路由器、交换机&#xff09;和操作需求&#xff08;如配置IP、查看状态&#xff09;…

作者头像 李华
网站建设 2026/7/15 1:18:59

I2S音频接口多通道传输:深度剖析同步机制与实现原理

以下是对您提供的博文《I2S音频接口多通道传输:同步机制与实现原理深度解析》的 全面润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有“人味”——像一位在车载音频一线调试过上百块PCB、踩过所有坑的资深嵌入式音频工程师在和…

作者头像 李华