数组的遍历方式
🌟 数组遍历的通用方法
🎯 核心问题
👉 无论多少种遍历,最核心的动作都是:
下标怎么走?(i, j)
所以,所有遍历本质上是:
- 起点
- 终点
- 移动方向 / 步长
- 层次 / 循环结构
- 什么时候停止
抽象成“路径” + “层次结构”
这些就是你能推导所有遍历方式的 通用要素。
✅ 通用思路 - 坐标推导法
遍历维度
找到轨迹的统一性
类型 | 对应方式 |
---|---|
行遍历 | i 变 j 固定 |
列遍历 | j 变 i 固定 |
层次遍历 | 外层固定,内层变化 |
主副对角线 | i + j 固定 / i - j 固定 |
螺旋 | 分圈,分层 |
反射 | ··· |
之字 | ··· |
蛇形 | ··· |
L形 | ··· |
🚀轨迹描述(公式化 i, j)
例:
- 顺时针螺旋 ➡ 4个方向:右、下、左、上 ➡
dx, dy
数组 - 主对角线 ➡
i == j
- 副对角线 ➡
i + j == n - 1
- Z字形 ➡
奇偶判断
决定正向 or 反向
📚 思考方法总结
思考步骤 | 做什么 |
---|---|
1. 维度 | 遍历结构大致是怎么样的? |
2. 起点 | 从哪里开始? |
3. 方向 | 每一步怎么走?(dx, dy) |
4. 边界 | 什么时候结束? |
5. 变化 | 奇偶/层数/方向/何时变化? |
✅ 记忆建议
记思维,而非记代码
思路固定 ➡️ 推导公式 ➡️ 写出遍历!