码迷,mamicode.com
首页 > 编程语言 > 详细

Java:(代码)动态规划:求一串序列数中子序列和最大的数

时间:2018-09-06 19:49:22      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:rgs   sum   static   return   system   stat   int   子序列和最大   class   

 1 package DP;
 2 //求子序列和最大值
 3 public class MinNum {
 4     public static void main(String[] args){
 5         int[] num = {-6, 2, 4, -7, 5, 3, 2, -1, 6, -9, 10, -2};
 6         int max = maxSum(num);
 7         System.out.println(max);
 8         int min = minSum(num);
 9         System.out.print(min);
10     }
11     public static int maxSum(int[] num){
12         int[] maxdp = new int[num.length];
13         int max = -9999;
14         maxdp[0] = num[0];
15         for(int i=1;i<num.length;i++){
16             maxdp[i] = maxdp[i-1]>0?maxdp[i-1]+num[i]:num[i];
17             if(maxdp[i] > max){
18                 max = maxdp[i];
19             }
20         }
21         for(int i=0;i<num.length;i++){
22             System.out.print(maxdp[i]+" ");
23         }
24         System.out.print("\n");
25         return max;
26     }
27     public static int minSum(int[] num){
28         int[] mindp = new int[num.length];
29         int min = 9999;
30         mindp[0] = num[0];
31         for(int i=1;i<num.length;i++){
32             mindp[i] = mindp[i-1]<0?mindp[i-1]+num[i]:num[i];
33             if(mindp[i] < min){
34                 min = mindp[i];
35             }
36         }
37         for(int i=0;i<num.length;i++){
38             System.out.print(mindp[i]+" ");
39         }
40         System.out.print("\n");
41         return min;
42     }
43 }

 

Java:(代码)动态规划:求一串序列数中子序列和最大的数

标签:rgs   sum   static   return   system   stat   int   子序列和最大   class   

原文地址:https://www.cnblogs.com/fanghuiplus/p/9600084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!