A105171.学习计划
2026-08-31 17:42:40
发布于:辽宁
8阅读
0回复
0点赞
居然没人发题解吗
这题解法就是一个滑动窗口
解法见下
#include <bits/stdc++.h>
using namespace std;
const int MAXN=100005;
int a[MAXN];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n;
long long t;
cin >> n >> t;
for(int i=1; i<=n; i++) cin >> a[i];
long long sum=0; //窗口内的书读完所需的总时长
int l=1;
int ans=0;
for(int r=1; r<=n; r++){
sum+=a[r];
while(sum>t){ //超时
sum-=a[l]; //扔书
l++; //左指针右移
}
ans=max(ans, r-l+1); //存储最优解
}
cout << ans;
return 0;
}
时间复杂度O(n)
这里空空如也








有帮助,赞一个