最大连续子序列


/*
思路:一个元素一个元素向后加和,并与当前元素对比,找到最大值,如果当前元素较大,那么从当前元素开始向后加和
*/

 

 

源代码:

let arr = [1, 2, 25, -12, -55, 103, -250, 100, 120, 130]

/*
思路:一个元素一个元素向后加和,并与当前元素对比,找到最大值,如果当前元素较大,那么从当前元素开始向后加和
*/

function maxSubArray(arr) {
let dp = []
let max


dp[0] = arr[0]
max = arr[0]
 
// dp中元素代表从0开始以i下标为结尾的最大子序列的值

for (let i = 1; i < arr.length; i++) {
dp[i] = Math.max(dp[i - 1] + arr[i], arr[i])
if (dp[i] > max) {
max = dp[i]
}
}

return max
}

const r = maxSubSequence(arr)
console.log(r);
 
posted @ 2020-06-19 12:11  hh9515  阅读(122)  评论(0)    收藏  举报