题目(1):最大连续子数组和(最大子段和)
背景
问题: 给定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。--引用自《百度百科》
这是一道整数求最大连续子序列的题目,从网上找了找算法,有动态规划和分治法两种,我选取的是动态规划。代码:类定义,实现 ,测试方法 。以下是测试过程。
测试前:
添加测试单元
左键点击菜单栏文件->添加->新建项目->创建本机单元测试
配置
1.右键新建测试工程的引用->左键添加引用->选择要测试单元所在的工程
2.右键测试工程->选择属性->链接器->左键点击输入->选择附加依赖项->添加需要测试单元的目标文件
3.右键测试工程->选择属性->链接器->左键点击常规->选择附加目录库->添加需测试单元所在工程的路径
4.打开测试方法文件->包含测试的类的头文件(需带路径)->编写测试方法
..代表测试单元的路径,路径直接写绝对路径也行。
测试:
测试方法及用例
由于自身能力有限>>- _-<<,不能对代码中的循环语句进行高难度测试,本次测试选用最简单的语句覆盖方法。测试用例如下:
个数 n 数组 结果
0 1,2,3,4 0
10 NULL 0
6 -2, 11, -4, 13, -5, -20 20
6 5, -8, 3, 2, 5, 0 10