题目:不相邻最大子序列和
思路:动态规划。
dp[i]
为数组中以下标i结尾的最大子序列和,很显然,dp[i]
要么是array[i]
本身,要么是dp[i - 1]
,要么是array[i] + dp[i - 2]
。
所以转移方程:
dp[i] = Math.max(Math.max(array[i], dp[i - 1]), dp[i - 2] + array[i])
代码:
import java.util.*;
public class Solution
题目:不相邻最大子序列和
思路:动态规划。
dp[i]
为数组中以下标i结尾的最大子序列和,很显然,dp[i]
要么是array[i]
本身,要么是dp[i - 1]
,要么是array[i] + dp[i - 2]
。
所以转移方程:
dp[i] = Math.max(Math.max(array[i], dp[i - 1]), dp[i - 2] + array[i])
代码:
import java.util.*;
public class Solution