核心认知
数组是一种线性数据结构,它最重要的特征不是“按顺序排好”,而是:- 元素通常连续存储
- 可以通过下标直接访问
- 下标
- 双指针
- 滑动窗口
- 前缀和
数组在内存中的样子
- 元素是连续存放的
- 下标本质上是在定位这段连续空间里的第几个位置
为什么数组题总是第一章
因为数组是最容易建立“下标思维”的结构。 你在数组里做的每一次移动、比较、覆盖,其实都在训练后面做题最重要的基本功:- 区间怎么表示
- 左右边界怎么维护
- 原地修改怎么实现
数组和链表有什么区别
数组最突出的优势是查询快。但如果你想在中间插入或删除一个元素,就往往要整体移动后面的内容。 所以通常可以这样记:
- 数组适合查
- 链表适合改
数组题为什么常出现双指针
因为数组有天然的“位置”概念。 你可以让两个指针分别表示:- 当前有效区间
- 左右边界
- 快慢指针
- 头尾夹逼
常见题型
数组题通常会反复出现这几类模型:- 二分查找
- 快慢指针
- 左右指针
- 滑动窗口
- 前缀和
- 模拟
一个最值得会写的 Python 例子
滑动窗口是数组题里非常高频的模型。right负责扩张区间left负责收缩区间- 中间不断维护答案
学习建议
如果你刚开始学数组,建议按这个顺序练:- 二分查找
- 删除元素
- 有序数组去重
- 长度最小的子数组
- 螺旋矩阵

