图解算法通识讲义经典套路

位运算与原地数值哈希技巧

核心心智模型:二进制的上帝视角;异或自反消除成双数,数值符号借位实现 O(1) 原地哈希。

核心交互式算法图解演练沙盒
位运算技巧模型

只出现一次的数字与异或 (XOR) 对冲消消乐演练

步骤 1 / 5
当前累积异或和:4(二进制: 0100)
律则:a ^ a = 0,a ^ 0 = a
4
目标值
1
成对数字 1
2
成对数字 2
1
成对数字 1
2
成对数字 2

初值异或:0 ^ 4 = 4 (二进制 0100)。

关键操作与时空复杂度速查对照表
操作 / 算法阶段平均时间最坏时间空间复杂度核心底层机制
全量异或消除O(N)O(N)O(1)单次按位计算,无需任何辅助哈希表。
原地符号标记O(N)O(N)O(1)常数级读写原数组正负号。
template.java
int single = 0;
for (int num : nums) {
    single ^= num;
}
return single;
解题核心心法提炼
  • n & (n - 1) 能够瞬间将二进制表示中最低位的 1 抹成 0(汉明重量与 2 的幂判定)。
  • 摩尔投票法(多数元素):同族抱团加票,异族同归于尽,最终存活的候选人必为超过半数的绝对多数。
  • 原地哈希利用数组自身作为天然存储,是压榨空间复杂度到 O(1) 的终极利器。
常见踩坑警示与避坑指南
  • 原地符号翻转时在后续读取没有加上 Math.abs() 导致数组负数越界。

对应 Hot 100 实战题目突围

原理已掌握!立即进入沉浸式工作台开始实战演练,强化代码肌肉记忆

查看全部题目