题解 | #不相邻取数#

不相邻取数

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

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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