1. 数组基础知识
(1)定义:数组是存放在连续内存空间相同数据类型的集合。
(2)即数组内存空间的地址是连续的。
(3)即数组元素的增添删除需要移动其他元素的地址。
(4)数组的下标从0开始。
2. 数组类题目总结
(1)区间:如模拟/二分法/滑动窗口。
这类题目的重点是循环不变量,确定好区间的范围,以及变化的条件。
- 进行模拟的题目,会给出数值规律/填充形状。#59
- 使用二分法的题目,往往出现时间复杂度要求(O(logn) / 有序数组。#704 #34
- 使用滑动窗口的题目,往往要求求满足条件的子数组的最大长度或最小长度。#209
(2)元素顺序:如有序数组的平方排序/删除元素。#977 #27
这类题目的重点是理解对空间复杂度的要求,如果没有要求,可以开辟新的空间进行按顺序填充满足要求的数字。否则,则需要覆盖原有的地址。
这类题目常常是有大小顺序的数组,要求获得新的数组,因此能够按顺序填充或覆盖。所以解题步骤是:
- 找到填充正确的顺序
- 表达填充的条件