A18810. 不定长滑动窗口
填空题
较难
知识点
题目描述
不定长滑动窗口
题目描述
给定正整数数组与数字s,找到和≥s的最短连续子数组长度,不存在输出0。
输入
第一行 n s
第二行 n 个正整数
输出:最短长度
样例输入
6 7
2 3 1 2 4 3样例输出
2参考答案
#include <iostream>
#include <vector>
#include <climits>
using namespace std;
int main()
{
int n, s;
cin >> n >> s;
vector<int> a(n);
for(int i = 0; i < n; i++)
cin >> a[i];
int l = 0, sum = 0;
int ans = INT_MAX;
for(int r = 0; r < n; r++)
{
sum += a[r];
while(sum >= s)
{
ans = min(ans, r - l + 1);
sum -= a[l];
l++;
}
}
if(ans == INT_MAX)
cout << 0;
else
cout << ans;
return 0;
}
上一题
下一题