博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最大连续子数组和--dp
阅读量:4635 次
发布时间:2019-06-09

本文共 1587 字,大约阅读时间需要 5 分钟。

最大连续子数组和

  问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n;例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。

题意:

  含有N个数的数组,求最大的连续子段的和,动态规划:递推公式是dp[i] = max{dp[i-1] + arr[i],arr[i]}

参考代码:

  Github地址:

1 public class dp { 2     public int max_string(int arr[]){ 3         if(arr == null || arr.length <= 0){ 4             return 0; 5         } 6         int len = arr.length; 7         int Max=0x8000000; 8         int this_max=0; 9         for(int i=0; i
0?this_max+arr[i]:0);11 }12 return Max;13 }

单元测试

1.覆盖标准

  条件组合覆盖:使得每个判定中条件的各种可能组合都至少出现一次。

2.流程图:

   

3.测试代码:

1 public class dp_test { 2     dp d = null; 3     @Before 4     public void set_up(){ 5         d = new dp(); 6     } 7     @Test 8     public void test_1() { 9         int arr[]={-1,-1,-1,-1,-1};10         Assert.assertEquals(d.max_string(arr), 0);11     }12     @Test13     public void test_2() {14         int arr[]={0,0,0,0,0};15         Assert.assertEquals(d.max_string(arr), 0);16     }17     @Test18     public void test_3() {19         int arr[]={1,2,3,4,5};20         Assert.assertEquals(d.max_string(arr), 15);21     }22     @Test23     public void test_4() {24         int arr[]={-2,11,-4,13,-5,-2};25         Assert.assertEquals(d.max_string(arr), 20);26     }27     @Test28     public void test_5() {29         int arr[]={1,2,-4,8,-1};30         Assert.assertEquals(d.max_string(arr), 8);31     }32 33 }

 4.测试结果

 

转载于:https://www.cnblogs.com/mxj961116/p/10707274.html

你可能感兴趣的文章
jsp 环境配置记录
查看>>
本地视频播放黑屏,有声音
查看>>
Python3-Cookbook总结 - 第一章:数据结构和算法
查看>>
Python03
查看>>
LOJ 2537 「PKUWC2018」Minimax
查看>>
使用java中replaceAll方法替换字符串中的反斜杠
查看>>
Android初学第36天
查看>>
Some configure
查看>>
.net core 中的[FromBody]
查看>>
json_encode时中文编码转正常状态
查看>>
流量调整和限流技术 【转载】
查看>>
Axure 全局辅助线(转)
查看>>
正由另一进程使用,因此该进程无法访问此文件。
查看>>
1 线性空间
查看>>
VS不显示最近打开的项目
查看>>
MyEclipse安装Freemarker插件
查看>>
计算多项式的值
查看>>
DP(动态规划)
查看>>
chkconfig
查看>>
TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总
查看>>