题解 | #连续子数组最大和#每次做不出来的时候,我都会回想起研一逃了算法分析与设计课程的懊悔
连续子数组最大和
http://www.nowcoder.com/practice/1718131e719746e9a56fb29c40cc8f95
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args)throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int len=Integer.parseInt(br.readLine());
String[] str=br.readLine().split(" ");
int[] arr=new int[len];
for(int i=0;i<len;i++){
arr[i]=Integer.parseInt(str[i]);
}
System.out.print(helper(arr));
}
public static int helper(int[] num){
int[] dp=new int[num.length];
int max=num[0];
int cur=num[0];
for(int i=1;i<num.length;i++){
cur=Math.max(num[i],num[i]+cur);
max=Math.max(cur,max);
}
return max;
}
}
import java.io.*;
public class Main{
public static void main(String[] args)throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int len=Integer.parseInt(br.readLine());
String[] str=br.readLine().split(" ");
int[] arr=new int[len];
for(int i=0;i<len;i++){
arr[i]=Integer.parseInt(str[i]);
}
System.out.print(helper(arr));
}
public static int helper(int[] num){
int[] dp=new int[num.length];
int max=num[0];
int cur=num[0];
for(int i=1;i<num.length;i++){
cur=Math.max(num[i],num[i]+cur);
max=Math.max(cur,max);
}
return max;
}
}