最大连续子数组和(最大子段和)
package com.example.administrator.myapplication; import java.util.Scanner; /** * Created by Administrator on 2018/4/24. */ public class MaxSubArray { int maxSum; int left; int right; public int getMaxSubArray1(int[] arr) { maxSum = -2147483648; int sum; int len = arr.length; for (int i = 0; i <len; i++) { sum = 0; for (int j = i; j<len; j++) { sum += arr[j]; if (sum > maxSum) { maxSum = sum; left = i; right = j; } } } return maxSum; } }
测试
package com.example.administrator.myapplication; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; /** * Created by Administrator on 2018/4/24. */ public class MaxSubArrayTest { private MaxSubArray maxSubArray; int[] MaxSubArray = {-1,2,5,3,-4}; @Before public void setUp() throws Exception { maxSubArray =new MaxSubArray(); } @Test public void getMaxSubArray1() throws Exception { assertEquals(8,maxSubArray.getMaxSubArray1(MaxSubArray),2); }
}
测试结果