程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 最大子序列和問題,子序列問題

最大子序列和問題,子序列問題

編輯:JAVA綜合教程

最大子序列和問題,子序列問題


問題描述:

    輸入一組整數,求出這組數字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那個序列。例如:

序列:-2 11 -4 13 -5 -2,則最大子序列和為20。

序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,則最大子序列和為16。

 O(n)解法:

public static int maxSubSum(int[] a) {
		int maxSum = a[0];
		int thisSum = 0;
		for (int j = 0; j < a.length; j++) {
			thisSum += a[j];
			if (thisSum > maxSum) {
				maxSum = thisSum;
			} else if (thisSum < 0) {
				thisSum = 0;
			}
		}
		return maxSum;
	}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved