JS求最大子序列的和

版权声明:本文为博主原创文章,转载时请注明出处。 https://blog.csdn.net/i_dont_know_a/article/details/82902587

这是一道笔试题,给定一个数组,求出这个数组中最大连续子序列的和。例如:在数组[-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

猜你喜欢

转载自blog.csdn.net/i_dont_know_a/article/details/82902587
今日推荐