会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员后可解锁完整内容。
解题思路
本题是固定长度滑动窗口 + 无效点过滤,可用双指针/滑动窗口在 O(n) 时间内求最小合法窗口和。
- 合法性:长度为 w 的窗口内任意
scores[i]==0 则该窗口非法,必须跳过。
- 滑动维护:对起点
start 从 0 到 n−w,维护窗口和 window_sum 与窗口内 0 的个数 zero_count;右移一步时减去离开元素、加入进入元素并同步更新 zero_count。
- 最优与平局:仅当
zero_count==0 时参与比较;若 window_sum 严格小于当前最小和则更新答案。按 start 递增扫描,相等和时不更新,自然得到最早起始下标。
- 无解:扫描结束仍无合法窗口,返回
[-1, 0]。