题目:不相邻最大子序列和
思路:动态规划。
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 {
/**
* 代码中的类名、方法名、参数

本文介绍如何使用动态规划求解剑指offer中的一道题目:找到数组中不相邻元素的最大子序列和。通过分析,得出转移方程为状态i的结束元素要么不包含,要么包含,从而得出解决方案。
最低0.47元/天 解锁文章
194

被折叠的 条评论
为什么被折叠?



