news 2026/7/1 22:13:44

异或运算符算法题应用总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
异或运算符算法题应用总结

目录

  • 性质
  • 一、高频应用场景
    • **场景1:寻找唯一不重复的元素**
    • **场景2:寻找两个不重复的元素**
    • **场景3:不用加减号做算术运算**
    • **场景4:状态切换与奇偶判断**
    • **场景5:交换两个变量**
  • 二、综合训练题单(按难度排序)
  • 三、高频误区提醒
  • 四、面试高频追问

性质

异或运算(^)在算法题中有四大核心性质,掌握后可以快速解决多类问题:

核心性质

  1. 自反性a ^ a = 0(相同数异或为0)
  2. 恒等性a ^ 0 = a(与0异或不变)
  3. 交换律a ^ b = b ^ a
  4. 结合律(a ^ b) ^ c = a ^ (b ^ c)

一、高频应用场景

场景1:寻找唯一不重复的元素

适用条件:数组中只有一个元素出现奇数次,其余都出现偶数次
原理:所有元素异或后,成对的自动抵消为0,最终剩下目标值

入门题目

  • LeetCode 136. 只出现一次的数字- 最经典入门题
  • LeetCode 268. 丢失的数字- 索引和值的巧妙对应
  • LeetCode 1486. 数组异或操作- 直接模拟异或过程

场景2:寻找两个不重复的元素

适用条件:数组中有两个元素只出现一次,其余都出现两次
思路:先全体异或得到x = a ^ b,找到x中任意为1的位(表示a,b在该位不同),按此位将数组分为两组分别异或

进阶题目

  • LeetCode 260. 只出现一次的数字 III- 分组建异或技巧
  • 剑指 Offer II 070. 只出现一次的数字- 同上题

场景3:不用加减号做算术运算

原理:利用异或实现无进位加法,与运算实现进位
典型应用

  • LeetCode 371. 两整数之和- 用位运算实现加法
  • LeetCode 面试题 17.01. 不用加号的加法- 同上

场景4:状态切换与奇偶判断

小技巧

  • x ^= 1可在0和1之间切换(等价于!x
  • x ^ 1可判断奇偶(比%2更快)

场景5:交换两个变量

经典三行代码,无需临时变量:

a^=b;b^=a;a^=b;

二、综合训练题单(按难度排序)

序号题目难度核心考点链接
1只出现一次的数字★☆☆☆☆基础异或LeetCode 136
2丢失的数字★☆☆☆☆索引异或LeetCode 268
3数组异或操作★☆☆☆☆模拟异或LeetCode 1486
4两整数之和★★☆☆☆位运算加法LeetCode 371
5只出现一次的数字 III★★★☆☆分组异或LeetCode 260
6使数组异或和为零★★★☆☆动态规划+异或LeetCode 1787
7黑板异或游戏★★★★☆博弈论+异或LeetCode 810
8子数组异或查询★★☆☆☆前缀异或LeetCode 1310

三、高频误区提醒

  • ❌ 初始值设为1(必须为0)
  • ❌ 用加法替代异或(无法消除成对元素)
  • ❌ 忽略"出现偶数次"的前提条件

四、面试高频追问

  1. 如果只出现一次的数字有两个,怎么办?→ 参考LeetCode 260的分组策略
  2. 如果其他数字出现三次呢?→ 需要结合位计数或状态机(如LeetCode 137)
  3. 异或和哈希表哪个更好?→ 异或空间O(1)更优,但哈希表更通用
  4. 证明异或满足交换律? → 可从真值表或二进制位角度说明

建议从LeetCode 136开始,配合题解区的高赞分析,逐步建立位运算思维!

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

物流路线智能规划:多目标优化算法在TensorRT上求解

物流路线智能规划:多目标优化算法在TensorRT上求解 在大型物流中心的调度大厅里,每秒都有成百上千个订单涌入系统。一辆配送车刚出发,客户又临时追加了三个新地址;城市主干道突发拥堵,原定路线瞬间失效——面对这种高频…

作者头像 李华
网站建设 2026/6/26 10:22:13

STM32下I2C中断方式通信实现深度剖析

深入STM32的I2C中断通信:从原理到实战的完整工程实践在嵌入式系统开发中,我们常常面临这样的窘境:主控芯片已经跑得飞快,但只要一接上几个传感器,整个系统就像被“卡住”了一样——按键不灵、界面卡顿、数据延迟。问题…

作者头像 李华
网站建设 2026/6/26 8:37:28

组织架构优化建议:协同效率评估由TensorRT数据驱动

组织架构优化建议:协同效率评估由TensorRT数据驱动 在AI系统日益复杂的今天,一个看似无关组织管理的技术工具——NVIDIA TensorRT,正悄然成为企业提升研发协同效率的“隐形标尺”。我们常认为组织架构优化依赖于流程再造或绩效考核&#xff…

作者头像 李华
网站建设 2026/6/29 17:31:03

培训课程内容生成:专业知识拆解通过TensorRT智能组织

培训课程内容生成:专业知识拆解通过TensorRT智能组织 在AI模型越来越复杂、部署场景越来越多元的今天,一个训练好的深度学习模型从实验室走向生产线,往往要经历一场“性能炼狱”——推理延迟高、吞吐量低、显存占用大。特别是在边缘设备上跑大…

作者头像 李华
网站建设 2026/6/26 8:37:29

并购尽职调查助手:风险点排查借助TensorRT全面覆盖

并购尽职调查助手:风险点排查借助TensorRT全面覆盖 在一场百亿级企业并购案中,法务团队需要在72小时内审阅超过两万页的合同、协议与合规文件。传统方式下,这几乎是一项不可能完成的任务——人工阅读不仅效率低下,还极易因疲劳导致…

作者头像 李华
网站建设 2026/6/26 8:37:38

跨平台CubeMX安装对比:Windows/Linux/IDE配置差异解析

深入解析 STM32CubeMX 跨平台安装:从 Windows 到 Linux,再到多 IDE 协同实战你有没有遇到过这样的情况?在公司用 Windows Keil 开发得好好的项目,回家想在自己的 Linux 笔记本上继续调试,结果 CubeMX 启动失败、生成代…

作者头像 李华