题解 | #不相邻取数#

不相邻取数

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

import java.util.*;

public class Main{
    public  static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            int len = scan.nextInt();
            long[] arr = new long[len];
            for (int i = 0; i < len; i++) {
                arr[i] = scan.nextLong();
            }
            long[] dp = new long[len];
            dp[0] = arr[0];
            if (len >= 2) {
                dp[1] =  arr[1];
                if (len >=3){

                    dp[2] = arr[2]+arr[0];
                }
            }

            for (int i = 3; i < len; i++) {
                dp[i] = Math.max(dp[i - 2] + arr[i], dp[i - 3] + arr[i]);
            }
            Arrays.sort(dp);
            System.out.print(dp[len - 1]);
        }
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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