java之連續子陣列的最大和
阿新 • • 發佈:2019-01-10
題目:輸入一個整型陣列,數組裡有正數也有負數。陣列中一個或連續的多個整陣列成一個子陣列,求所有子陣列的和的最大值。要求時間複雜度為O(n).
這個解法可以用動態規劃來解。
其程式碼為:
package LinkList; public class FindMaxSumofSubArrayMain { public static int maxSubSum(int[] a) { int maxSum = 0, thisSum = 0; if (a == null || a.length <= 0) return 0; for (int i = 0; i < a.length; i++) { thisSum += a[i]; if (thisSum > maxSum) maxSum = thisSum; else if (thisSum < 0) thisSum = 0; } return maxSum; } public static void main(String[] args) { int a[] = { 1, -2, 3, 10, -4, 7, 2, -5 }; System.out.println(maxSubSum(a)); } }