为什么在发现sum>=s的时候,还有滑动左边界l?

来源:3-7 滑动窗口 Minimum Size Subarray Sum

阿阳2017

2024-01-19

老师好。这节课的滑动窗口判断逻辑中,有个疑问:
图片描述
在进入到else的时候,已经发现sum>=s了,说明找到满足条件的滑动窗口了,此时应该是记录 r-l+1 的值,和当前的res做比较,取最小值。示例的代码是,还要往左移一位,缩小窗口,并且减少sum,此时有没有可能sum又小于s了,又不满足条件了。

写回答

1回答

liuyubobobo

2024-01-20

这个逻辑是:

每次如果 sum < s 且右边还有元素 (r + 1 < nums.size()),就向右扩展,然后,在 if(sum >= s) 中记录这个结果。到下一次循环,这个结果已经在上一次循环的时候记录了,所以滑动左边界。


你的想法也可以实现,自己实现以下试试看?然后比较一下,两个代码,哪个风格你更喜欢?


继续加油!:)



0
1
阿阳2017
非常感谢!
2024-01-21
共1条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程