✨ 技巧
位运算、排序 + 计数等巧妙手法,往往能将复杂问题化为一行解法。
5 题 · 简单 ×2 中等 ×3
| # | 题目 | 难度 |
|---|---|---|
| 136 | 只出现一次的数字 | 简单 |
| 169 | 多数元素 | 简单 |
| 75 | 颜色分类 | 中等 |
| 31 | 下一个排列 | 中等 |
| 287 | 寻找重复数 | 中等 |
核心思路
- 只出现一次的数字:所有数异或,相同的数两两抵消,最终剩下只出现一次的数。
- 多数元素:Boyer-Moore 投票算法,维护候选数和计数;遇到相同则加一,不同则减一,减到 0 更换候选。
- 颜色分类:荷兰国旗问题,三指针(low、mid、high)一次遍历原地分类。
- 下一个排列:从右找第一个下降点
i,再从右找第一个大于
nums[i]的数交换,最后翻转i+1到末尾。 - 寻找重复数:将数组视为链表(
i → nums[i]),用快慢指针找环入口(Floyd 判环),O(1) 空间且不修改数组。