题解 | #不相邻最大子序列和#

不相邻最大子序列和

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
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务