题解 | #不相邻最大子序列和#
不相邻最大子序列和
http://www.nowcoder.com/practice/269b4dbd74e540aabd3aa9438208ed8d
function subsequence( n , array ) {
// write code here
let max=0
let res=new Array()
for(let i=0;i<array.length;i++){
if(array[i]>max){max=array[i]}
}
if(array.length>2){
res[0]=array[0]
res[1]=array[1]
}
let maxx=res[0]//题目中说数据范围大与1 所以多比没有好
for(let i=2;i<array.length;i++){
//maxx存放可以与array[i]相加的不相邻子序列最大和
//maxx随着i的增大,范围增大
if(res[i-2]>maxx){maxx=res[i-2]}
//dp数组为array以i结尾的不相邻,最大和
res[i]=array[i]+maxx
if(res[i]>max){max=res[i]}
}
return max
}
module.exports = {
subsequence : subsequence
};