1、题目
给定一个数组,选择数字组成组合,请问哪个组合的累加和最大。
要求:相邻的数不能同时选。
例子:
输入:[3, 7, 9]
输出:12。选择 3 和 9
2、思路
定义dp[i]
,表示在 arr 的 0 ~ i i i 范围上按照选择数组成组合,累加和最大的结果,即所有可能性的最优。
dp[0]
就是在 arr 的 [0,0] 范围上选组合,因为只有一个数,所以 dp[0] = arr[0]
;
dp[1]
就是在 arr 的 [0, 1] 范围上选组合,但是因为不能选相邻,所以 dp[1] = max(arr[0], arr[1])
;文章来源:https://www.toymoban.com/news/detail-619224.html
普遍情况dp[i]
,在 arr 的 [0, i] 范围上选择ÿ文章来源地址https://www.toymoban.com/news/detail-619224.html
到了这里,关于累加和最大的组合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!