U33919.最大区间和 题解
2025-04-12 15:00:45
发布于:江苏
22阅读
0回复
0点赞
方法(1) 版本(1)
问题(1)如何保证计算包括全部情况。
解决问题(1)
可以从数字n的正数第1位一直遍历到倒数第5位,使用sum变量记录每一种情况的结果(问题(2)如何用sum记录每一种情况),与记录最大值的变量ans比较并保留最大值。这样计算包括了全部情况。
解决问题(2)
只需模拟一个只包括5个元素的队列,每次操作弹出队首元素并在队尾压入新元素并更新sum的值。
#include <iostream>
using namespace std;
string n;
int main()
{
cin >> n;
int ans = 0 , sum = 0;
for (int i = 0 ; i < 5 ; i ++)
sum += s[i] - '0';
for (int i = 4 ; i < n.size() ; i ++)
{
ans = max(ans , sum);
sum -= s[i - 4] - '0';
sum += s[i] - '0';
}
cout << ans;
return 0;
}
时间复杂度:O(n)。
全部评论 1
人机
2024-11-17 来自 江苏
0
有帮助,赞一个