题解 | #不相邻取数#

不相邻取数

http://www.nowcoder.com/practice/a2be806a0e5747a088670f5dc62cfa1e

不相邻

  • dp数组存储当前位置的最大和
  • 由于不相邻,则当前位置的最大和
  • i>2时 只能由前i-2位置或i-3的位置累加得到,从而判断i-2和i-3位置与当前i位置之和取较大者即可
  • i<3时 最大值就是本身
		cost[0] = 0;
        int maxdp = 0;
        for (int i = 1; i <= n; i++) {
          //边输入边判断
            cost[i] = sc.nextInt();
            if (i>2){
                dp[i] = Math.max(dp[i-2]+cost[i],dp[i-3]+cost[i]);
            }else {
                dp[i] = cost[i];
            }

            maxdp = Math.max(dp[i],maxdp);
        }

        System.out.println(maxdp);
全部评论

相关推荐

合不合适,我自己说了才算
码农索隆:hr:“真执着啊,来我公司当法人吧”
点赞 评论 收藏
分享
07-07 12:25
门头沟学院 Java
程序员牛肉:你这个智邮公司做的就是那个乐山市税务系统的服务吗?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 14:10
啊啊啊啊好幸福,妈妈是我找工作发疯前的一束光
榕城小榕树:你是我见过最幸福的牛客男孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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