int maxNonAdjacentSum(vector& nums) { int n = nums.size(); vector dp(n, 0); // dp[i]表示以nums[i]结尾的最大累加和 dp[0] = nums[0]; dp[1] = max(nums[0], nums[1]);

for (int i = 2; i < n; i++) {
    dp[i] = max(dp[i-1], dp[i-2] + nums[i]); // 状态转移方程
}

return dp[n-1];

}


原文地址: https://www.cveoy.top/t/topic/qoLh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录