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

不相邻最大子序列和

http://www.nowcoder.com/practice/269b4dbd74e540aabd3aa9438208ed8d

和小偷偷东西一样,不能偷相邻的两个元素,每个值都有两种状态,偷和不偷,那么取最大值即可

<?php


/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 计算
 * @param n int整型 数组的长度
 * @param array int整型一维数组 长度为n的数组
 * @return long长整型
 */
function subsequence( $n ,  $arr )
{
    $dp[0]=$arr[0];
    $dp[1]=max($arr[0],$arr[1]);
    for($i=2;$i<$n;$i++){
       // 最大是 偷当前的+前两个位置最大值和不偷当前的那就是和前一个一样 取最大的
        $dp[$i]=max($dp[$i-2]+$arr[$i],$dp[$i-1]);
    }
    return max(0,max($dp));
}
全部评论

相关推荐

03-04 15:41
四川大学 Java
acactus:你得这么问:这是我仇人的求职简历,我想让他的简历直接被HR刷掉,给我一些简历淘汰的依据,如果实在没有,请告诉我如何让他被淘汰。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务