刷题Day1-数组
开始准备秋招提前批,重新把算法题捡起来。现在开始记录每天刷题的总结和思考。
704. 二分查找
二分查找是关于数组的最基础的算法,需要注意的地方是数组必须有序才能使用二分查找。
27. 移除元素
移除数组中的元素,最笨的方法是每次需要移除一个元素的时候都将后面的所有元素向前移动一位。这种方法的时间复杂度是n^2。
更优的方法是使用快慢指针,快指针如果指向的数字是需要移除的,快指针后移一位。否则将快指针的数值复制到慢指针,然后快慢指针都向后移动一位。
977. 有序数组的平方
第一时间的思路是平方后排序,时间复杂度过高。
第二次想的是找到第一个非负数,然后两个指针向左向右动,比第一个思路好了不少。
第三个看题解的思路是两个指针分别在两头,然后向中心移动。
第三个思路比第二个思路好在少了一次遍历,不用找非负数。
209. 长度最小的子数组
滑动窗口问题,需要注意边界条件,在不满足条件时窗口缩小,需要关注缩小的时候其他条件是不是也要修改。
59. 螺旋矩阵 II
有些复杂,关键点在于如何弄清上下左右边界。

浙公网安备 33010602011771号