二分查找
搜索插入位置
在排序数组中查找元素的第一个和最后一个位置
x的平方根
有效的完全平方数
移除元素
删除有序数组中的重复项
移动零
比较含退格的字符串
有序数组的平方
长度最小的子数组
水果成篮
最小覆盖子串
螺旋矩阵 II
螺旋矩阵
重点: 把握区间不变量,每次考虑区间时,保证[left, right),以此考虑循环条件和端点改变;
循环条件: left < right
左端点改变: left = mid+1 (mid不符合条件时,下一个需要考虑的元素为mid+1)
右端点改变:right = mid (mid不符合条件,直接赋给right,不再考虑)
重点:还是把握不变量,这里的不变量体现在理解指针的作用和含义。
前指针——用于对数组进行遍历;
后指针——指向合法结果数组的后一个元素/下一个插入符合条件的数据;
根据题目的条件,指针可以是同向而行,也可能是相向而行。
重点:把握滑动窗口中窗口的含义;
窗口前沿的滑动——用于找到可行解;
窗口后沿的滑动——用于找到局部最优解;
一般是求子串、子序列之类的问题,两层循环,外层循环找符合条件的可行解,内层循环找到局部最优解,并更新全局最优解。
重点:找到不随规模改变而改变的模拟规律,并正确处理边界条件;
螺旋矩阵处理思想:
1 按圈处理,每圈处理四条边,边界条件是中间点,单独讨论;
2 递归处理,每次处理外围一圈,边界条件是递归终止条件;
3 按边处理,每次按顺序处理一条边,边界条件是上下边界(或左右边界)相交;
1 数组:
栈中开辟需要指明数组大小(常数);
堆中开辟(malloc/free、new/delete);
STL数组容器vector:
创建/初始化方法;
常用方法;
2 字符串:
C风格字符串(以’ ’结尾的字符数组);
C风格字符串的创建、初始化
标准库中对C风格字符串的处理函数
C++ STL String类(字符类型容器);
String类的创建、初始化
String类中的常用方法
3 unordered_map
C++ STL 哈希表容器,不允许重复key;
常用方法;



