一个数组中最大子数组的和并且加上测试用例

数组代码:
public class Maxsum {
public int Max(int Array[],int size){
int max=Array[0];
int num;
int sum=max;
for(num=1;num<size;num++)
{
if(sum<0)
sum=Array[num];
else
sum+=Array[num];
if(sum>max)
max=sum;
}
return max;
}
public static void main(String[] args){
Maxsum sum=new Maxsum();
Scanner in=new Scanner(System.in);
int size=in.nextInt();
int []Array=new int[size];
int num;
for(num=0;num<size;num++)
Array[num]=in.nextInt();
System.out.println(sum.Max(Array,size));
in.close();
}
}



测试用例代码:

public class MaxsumTest {
    Maxsum sum=new Maxsum();
@Before
public void setUp() throws Exception {

}

@After
public void tearDown() throws Exception {

}
@Test
public void testMax1() {
int []Array=new int[]{1,-2,4,-1,-5};
assertEquals(4, sum.Max(Array,5));
}
@Test
public void testMax2() {
int []Array=new int[]{1,-2,-4,1,5};
assertEquals(6, sum.Max(Array,5));
}
@Test
public void testMax3() {
int []Array=new int[]{1,2,3,1,1};
assertEquals(8, sum.Max(Array,5));
}
@Test
public void testMax4() {
int []Array=new int[]{-1,-2,-4,-1,-5};
assertEquals(-1, sum.Max(Array,5));
}
@Test
public void testMax5() {
int []Array=new int[]{0,0,0,0,0};
assertEquals(0, sum.Max(Array,5));
}
}

测试用例:

代码截图:

运行截图:

 
原文地址:https://www.cnblogs.com/xubaby0912/p/6542826.html