当前位置:   article > 正文

动态规划经典题目:最大连续子序列和、最大不连续子序列和_dp[i]=max(dp[i-1],sum[i]+f[s[i]]);

dp[i]=max(dp[i-1],sum[i]+f[s[i]]);

1.最大连续子序列和:  记数组为nums

思路: 记录dp[i]为i位置结尾的最大连续子序列和

则有dp[i]=dp[i-1]>0?(dp[i-1]+nums[i]):nums[i];

然后求dp数组的max即为最终结果

 

1.最大不连续子序列和:  记数组为nums

思路: 记录dp[i]为i位置的最大不连续子序列和

 

则有两种情况dp[i]=dp[i-1]  或者dp[i]=dp[i-2]+nums[i]           即不选或者选择当前位置

那么整理为dp[i]=max(dp[i-1],dp[i-2]+nums[i])

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/805011
推荐阅读
相关标签
  

闽ICP备14008679号