自学内容网 自学内容网

代码随想录Leetcode213. 打家劫舍 II

题目:


代码(首刷看解析 2024年2月29日):

class Solution {
public:
    int robRange(vector<int>& nums, int start, int end) {
    if (start == end) return nums[start];
    vector<int> dp(nums.size(), 0); 
    // 遍历
    dp[start] = nums[start];
    dp[start + 1] = max(nums[start], nums[start + 1]);
    for (int i = 2 + start; i <= end; ++i) {
        dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
    }
    return dp[end];
    }
    // 动态规划
    int rob(vector<int>& nums) {
    // 条件
    int n = nums.size();
    if (n == 0) return 0;
    if (n == 1) return nums[0];
    int res1 = robRange(nums, 0, n - 2);
    int res2 = robRange(nums, 1, n - 1);
    return max(res1, res2);
    }
};


原文地址:https://blog.csdn.net/qq_52313711/article/details/136363321

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!