文字讲解:代码随想录(programmercarl.com)
题目链接:977.有序数组的平方 209.长度最小的子数组
一、有序数组的平方
数组的平方最大值就在数组的两端,使用双指针法。
二、长度最小的子数组
滑动窗口
窗口内是满足和大于等于s的连续子数组
当窗口内的和大于等于s时,窗口就该缩短了,即起始位置向右移动。
一段子数组,还是由起始位置和终止位置决定的,只是通过和维系终止位置和起始位置的关系,进而可以减少一次遍历。
先在和中减去起始位置的值,再左移。
滑动窗口的精髓:不断变更子数组的起始位置
三、螺旋矩阵
一圈要画四条边,以圈数为循环条件,每条边坚持左闭右开,每一圈每一条边画的终点为n-当前圈数,内圈的起点缩进。
循环条件为 while(loop++<n/2),使得比较大小后,loop从1开始。为了满足赋值需要,另维护一个start变量从0开始,表明每一圈的起始位置。
针对n为奇数的情况,需单独对中心点赋值。