167,两数之和: 解法,相向双指针,原因:1.提供的是递减排序的数组。2.从最左与最右两端出发信息量大。两数之和的大小可以去判断左右指针的行进方向。
15,三数之和:解法,也是用相向双指针,不过此处需要将一个数字给定住。我们选择将最小的数给定住。然后构造双向指针。不过题目有一个条件:就是不可以相同的数字构成所以我们需要去跳过相同的数字
11.盛水最多的容器:利用左右指针谁短谁动的原则去移动
42.接雨水,左右双指针,利用谁短谁动的原理,循环条件为两个指针相遇相等,因为可以指向同一个位置进行最后的计算。因为谁短的话水必然可以被另外一边接住。
209.长度最小的子数组:要点:1.利用滑动窗口去解决这个问题。原因:单调性,全部的内容都是大于0的。2.利用枚举的方法去设置左右指针从而完成右边的移动。
713.乘积小于k的子数组:要点:1.也是利用滑动窗口去解决这个问题,原因:单调性。右端点的滑动,为枚举滑动。左端点为判断滑动,然后子数组数为右端点减去左端点的数量。每个for中都可以加一次。
3.无重复的最长子串:需要清楚1.Counter()工具,可以用来去实现计数的作用。利用enumeratre去做枚举,然后将枚举的字母去计数,如果枚举出来的字母正好大于1个了,那就去移动左窗口,直到只有一个,然后循环外需要去比较不同的for循环下面的最大无重复子串。