
输入:
20
11 19 9 12 5 20 1 18 4 16 6 10 15 2 17 3 14 7 13 8
输出:
51
1
代码实现:
#include <bits/stdc++.h>
using namespace std;
int main(){
int i,n,x=INT_MIN,t=0,r;
int a[21];
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
}
for(i=0;i<n;i++){
//连续四个下标的和
t=a[i]+a[(i+1)%n]+a[(i+2)%n]+a[(i+3)%n];
if(t>x){//打擂台比大小
x=t;
r=i+1;
}
}
cout<<x<<endl<<r;
}
本文介绍了一种通过遍历数组并计算每四个连续元素之和来找出最大和的方法。利用这种方法可以找到使得连续四个元素之和最大的起始位置及该最大和值。此算法适用于固定长度的窗口滑动问题。
5万+

被折叠的 条评论
为什么被折叠?



