【牛客题霸题解】不相邻最大子序列和

不相邻最大子序列和

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

表示区间 的不相邻最大子序列和,
就是我们要找的答案了。
如果取 的话, 就不能取了,这个情况下 的不相邻最大子序列和 为
如果不取 的话 , 的不相邻最大子序列和 为
所以
c++

class Solution {
public:
    long long subsequence(int n, vector<int>& array) {
        vector<long long> dp(n);
        dp[0] = max(0,array[0]);
        dp[1] = max(dp[0],(long long)array[1]);
        for(int i = 2 ; i < n ; i++)
        {
            dp[i] = max(array[i]+dp[i-2],dp[i-1]);
        }
        return dp[n-1];
    }
};

java

import java.util.*;
public class Solution {
    public long subsequence (int n, int[] array) {
        long dp[] = new long[n];
        dp[0] = Math.max(0,array[0]);
        dp[1] = Math.max(dp[0],Long.valueOf(array[1]));
        for(int i = 2 ; i < n ; i++)
        {
            dp[i] = Math.max(array[i]+dp[i-2],dp[i-1]);
        }
        return dp[n-1];
    }
}

python

class Solution:
    def subsequence(self , n , array ):
        # write code here
        dp = [0]*n
        dp[0] = max(0,array[0])
        dp[1] = max(dp[0],array[1])
        for i in range(2,n):
            dp[i] = max(array[i]+dp[i-2],dp[i-1]);
        return dp[n-1];
牛客题霸题解 文章被收录于专栏

QAQ

全部评论

相关推荐

评论
6
收藏
分享

创作者周榜

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