为什么在发现sum>=s的时候,还有滑动左边界l?
来源:3-7 滑动窗口 Minimum Size Subarray Sum
阿阳2017
2024-01-19
老师好。这节课的滑动窗口判断逻辑中,有个疑问:
在进入到else的时候,已经发现sum>=s了,说明找到满足条件的滑动窗口了,此时应该是记录 r-l+1 的值,和当前的res做比较,取最小值。示例的代码是,还要往左移一位,缩小窗口,并且减少sum,此时有没有可能sum又小于s了,又不满足条件了。
写回答
1回答
-
这个逻辑是:
每次如果 sum < s 且右边还有元素 (r + 1 < nums.size()),就向右扩展,然后,在 if(sum >= s) 中记录这个结果。到下一次循环,这个结果已经在上一次循环的时候记录了,所以滑动左边界。
你的想法也可以实现,自己实现以下试试看?然后比较一下,两个代码,哪个风格你更喜欢?
继续加油!:)
012024-01-21
相似问题