先说这道题最简单的方法,也就是二重循环不断判断就行,遇见更大的就换起点和终点,小技巧是,如果遍历的第一个数是负数就可以直接跳过此次循环开始下一次。
//二重循环一直判断
#include <stdio.h>
int main(void){
int N;
int a[100000];
int sum = -9999999;
int start = 0;
int end = 0;
scanf("%d", &N);
for(int i=0;i<N;i++){
scanf("%d", &a[i]);
}
for(int i=0;i<N;i++){
int temp = a[i];
if(temp < 0)
continue;
for(int j=i<