977.有序数组的平方
这里题目有一些毛病,应该说是按照非递减非乱序排序!
这道题的思路非常清晰,比方说 -4,-1,0,2,7 , 我们既然要从小到大排序,就要先看看元数组的排列是否有规律,而元数组经过平方后,左右两侧的数字是最大的,依次向内递减,故我们指定两个指针,从两侧开始,从新数组的末尾开始插入。
这道题一开始我的想法是,创建新数组,然后每次在开头处insert
但是每次都要调用insert函数然后顺便对函数进行扩容,因此耗时剧增。 解决办法就是一开始复制一个nums数组,然后设立 i 指针对nums进行修改,耗时回到20ms,完美
209.长度最小的字数组
这道题的核心思想不是双指针是滑动窗口!每次移动left要减去原先left位置的值,left和right,先用INT_MAX设立一个最小值,每次right向前移动,添加新数字之后,若这几项数字的累加小于这个值,就把这个值设为新的最小值,这样我们就能遍历一遍数组得到每个数字开头的子数组目标值中的最小值了。
59.螺旋矩阵II
坚持左闭右开不动摇!