news 2026/2/19 16:43:49

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

作者头像

张小明

前端开发工程师

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/2/19 15:07:10

【钓鱼攻防】浅谈制作免杀word文档钓鱼

当你跌入深渊退无可退的时候,眼前就只剩下向上这一条路了 前言 网络安全技术学习,承认⾃⼰的弱点不是丑事,只有对原理了然于⼼,才能突破更多的限制。 拥有快速学习能力的安全研究员,是不能有短板的,有的只能…

作者头像 李华
网站建设 2026/2/5 2:39:00

嘉立创PCB布线工业EMC设计:系统学习与实践

嘉立创PCB布线工业EMC设计:从“能用”到“可靠”的实战跃迁在一次轨道交通信号采集项目的调试现场,工程师小李的设备总是在变频电机启动时死机。示波器抓取的数据显示,MCU的复位引脚上出现了高达2.3V的瞬态干扰脉冲——而这一切,竟…

作者头像 李华
网站建设 2026/2/7 20:51:21

Keil5新建工程图解说明:每一步清晰呈现

Keil5新建工程实战指南:从零开始搭建一个STM32项目你是不是刚接触嵌入式开发,打开Keil uVision5时一脸茫然?“怎么新建工程?选什么芯片?启动文件要不要加?RTE是啥?宏定义怎么填?”—…

作者头像 李华
网站建设 2026/2/18 3:47:55

机器人路径规划AI:决策网络通过TensorRT实现动态响应

机器人路径规划AI:决策网络通过TensorRT实现动态响应 在智能仓储的无人叉车系统中,一个毫秒级的延迟就可能导致碰撞或任务中断。这类设备每秒需处理来自激光雷达、摄像头和IMU的多源数据,并在20ms内完成环境建模与路径重规划——这正是传统控…

作者头像 李华
网站建设 2026/2/19 15:28:29

计算机二级中ms和wps的区别

核心结论:两者均为计算机二级高级应用与设计科目,证书效力等同,核心差异在软件版本、难度、题库、适用场景,快速对比如下 :一、核心基础信息- 科目代码:MS为65,WPS为67;考试时长均12…

作者头像 李华
网站建设 2026/2/14 8:06:29

考古遗址识别系统:航拍图像分割模型在TensorRT上运行

考古遗址识别系统:航拍图像分割模型在TensorRT上运行 在广袤的黄土高原或密林深处,考古学家常常面临一个现实困境:如何从数百平方公里的遥感影像中,精准锁定那些可能埋藏千年文明的蛛丝马迹?传统人工目视解译不仅效率低…

作者头像 李华