题目链接:1.美丽的区间 - 蓝桥云课 (lanqiao.cn)
解题思路:经典的滑动窗口,i指针在前,j指针在后,i指向末尾时,结束循环。
下面是c++代码:
#include <iostream>
using namespace std;
int main()
{
// 请在此输入您的代码
int n,s,arr[100000],sum = 0,j = 0,Min = 999999,num = 0;
cin >> n >> s;
for(int i = 0;i < n;i++){
cin >> arr[i];
num += arr[i];
}
if(num < s){
cout << 0;
return 0;
}
int i = 0;
while(i < n){
if(sum < s){
sum += arr[i];
i++;
}else{
Min = min(Min,i - j);
sum -= arr[j];
j++;
}
}
cout << Min;
return 0;
}