目录
题目
思路
Code
题目
题目内容:
数据中心使用一个整数数组 scores,记录 N 小时内每小时的服务器得分(可正可负)。0 表示服务器故障(无效小时)。
你需要找到一个连续子数组作为维护窗口,满足以下条件:
- 子数组中不包含任何 0;
- 子数组长度 L 不能超过指定上限 W(1≤L≤W),且子数组元素之和最小;
- 如果存在多个满足上述条件的子数组,选择起始下标最小的那个。
输入描述:
N:总小时数(1≤N≤100000);
W:窗口长度(1≤W≤min(N,10000));
scores:长度为 N 的整数数组,表示每小时的得分。
输出描述:
一个包含两个整数的数组 [start_index, min_sum],其中 start_index 是子数组的起始下标(从 0 开始),min_sum 是最小和。
如果不存在满足条件的子数组(如数组全为 0),返回 [-1, 0]。
样例1
输入:
4 3 0,0,0,0输出:
[-1,0]说明:窗口大小最小为 1,最大为 3,且不能包含 0。
说明: