数组中常见的问题
排序: 选择排序;插入排序;归并排序;快速排序
查找:二分查找法
数据结构:栈;队列;堆
…
二分查找法:
1964年提出,没有bug的二分查找法是在1962年出现
对于有序的排列,才能使用二分查找法
1查找中间的元素是否和目标元素相等
2小于,在左边找
3大于,在右边找
4关键点:边界问题
区间为闭区间[l…r]

区间为前闭后开:[l…r)

如果存在整型溢出


leetcode 283 Move Zeros

给定一个数组nums,写一个函数,将数组中所有的0挪到数组的末尾,而维持其他非0元素的相对位置。


1 思考题:删除元素


2 删除重复的元素


扩展题:最多保留两个重复元素

3-5 基础算法思路的应用


扩展题:归并排序

leetcode 215 利用快排的思路,在一个整数序列中寻找第k大的元素


leetcode 167

1 两个不同的元素
2 返回索引(索引是0开始,还是1开始)

167的解决方法就是对撞指针
125 有效回文串

空字符串如何看?
字符的定义?
大小写问题?

解决方案:对撞指针
扩展题345:对元音字母进行翻转


容器水最多,思考仍然用对撞指针去解决
3-7 双索引技术(对撞指针等)
1 滑动窗口:
ep1: leetcode 209

什么叫子数组?子数组分连续喝不连续梁总中情况
如果没有接怎么办?返回0?、
如果有多个解怎么样?应该怎么返回?按照什么规则?

练习题:sum求解是否可以使复杂度降为o(n*n)


窗口的长度把那个不是保持不变,同时由i和j控制;

3-8





如何记录重复字符:


练习题1:(利用滑动窗口解决)

注意问题: 字符集范围?英文小写字母
返回的解的顺序?任意
练习题2:leetcode76

注意问题:
