刷题笔记:滑动窗口
滑动窗口本质上是一个双指针。
如求解和大于目标值的最短子序列一题。
首先设置左指针 left 和右指针 right 都从零开始,随后 right 开始移动并累加和,当和大于目标值时停止。
随后左指针开始移动,并不断更新最短子序列长度,并从累计和中减去 left 位置的值。
由此遍历完整个数组。
while(right<len){ sum+=nums[right];//sum为累加和 while(sum>=target){//target为目标值 if(right-left+1//minlen为最小值 minlen=right-left+1; } sum-=nums[left++]; } right++;//当左指针移动完才能再次开始移动右指针 }