标签:logs ati rgs star 包含 while bsp out 连续
1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 int[] dp=new int[10005];//最大连续子序列最大和 8 int[] arrays=new int[10005];//整数序列 9 10 Scanner input=new Scanner(System.in); 11 int n=input.nextInt(); 12 13 while(n!=0) { 14 15 /* 16 * start表示最大连续子序列 的第一个元素;end表示最大连续子序列的最后一个元素;submax表示以arrays[i]为右边界的最大连续子序列;left表示以submax的左边界; 17 */ 18 int start,end,left,submax,i; 19 20 for(i=0;i<n;i++) { 21 22 arrays[i]=input.nextInt(); 23 24 } 25 26 left=start=end=arrays[0]; 27 dp[0]=submax=arrays[0]; 28 29 for(i=1;i<n;i++) { 30 31 if(arrays[i]>arrays[i]+submax) { 32 33 submax=arrays[i]; 34 left=arrays[i]; 35 36 }else { 37 38 submax=arrays[i]+submax; 39 40 } 41 42 if(dp[i-1]>=submax) { 43 44 dp[i]=dp[i-1]; 45 46 }else { 47 48 dp[i]=submax; 49 start=left; 50 end=arrays[i]; 51 52 } 53 54 } 55 56 if(dp[n-1]<0) { 57 58 dp[n-1]=0; 59 start=arrays[0]; 60 end=arrays[n-1]; 61 62 } 63 64 System.out.println(dp[n-1]+" "+start+" "+end); 65 66 n=input.nextInt(); 67 68 } 69 70 } 71 72 }
标签:logs ati rgs star 包含 while bsp out 连续
原文地址:http://www.cnblogs.com/xuzhiyuan/p/7815362.html