1. 程式人生 > >JS求最大子序列的和

JS求最大子序列的和

這是一道筆試題,給定一個數組,求出這個陣列中最大連續子序列的和。例如:在陣列[-2, 6, -1, 5, 4, -7, 2, 3]中,和最大的子序列是[6, -1, 5, 4],它們的和是14。

function search(arr) {
	var maxSum = arr[0],
		sum = arr[0];
	for(var i = 0, l = arr.length; i < l; i++) {
		if(sum < 0) {
			sum = arr[i];
		} else {
			sum += arr[i];
		}

		if(sum > maxSum) {
			maxSum = sum;
		}
	}
	return maxSum;
}

var arr = [-2, 6, -1, 5, 4, -7, 2, 3];
console.log(search(arr));  // 14