思路及代码
暴力的遍历做法
#include<iostream>
#include<vector>
using namespace std;
//多组输入,int N, int L1, int L2,0<N<=20, 0<L1<=L1<=N;
//number 存入 int[] |each number|<= 100
int main(){
int N, L1, L2;
while (cin >> N >> L1 >> L2){
vector<int> list(N);
for (int i = 0; i < N; i++){
cin >> list[i];
}
//solution
//normal case
int max = 0;
//max初值
for (int i = 0; i <= L1-1; i++){
max += list[i];
}
for (int left = 0; left <= (int) list.size()-L1; left++){
int sum = 0;
//L1个数的最大值
for (int j = left; j <= left+L1-1; j++){
sum += list[j];
}
if (sum > max){
max = sum;
}
for (int right = left+L1; right <= left+L2-1; right++){
//right out of rage
if (right >= (int) list.size()){
break;
}
sum += list[right];
//find max
if(sum > max){
max = sum;
}
}
}
//output ans
cout << max << endl;
}
return 0;
}
参考:1️⃣C++ 如何获取数组/容器的长度?_c++数组长度-CSDN博客
收获:1️⃣读题不清,奖励自己一个推翻重做(狗头)
2️⃣复习 vector 容器的长度 #include<vector> name.sizeof(),而且疑似返回 long 类型?需手动转 int
菜菜,不是教程,做题和学习记录