Leetcode213(力扣213):打家劫舍II

    技术2023-04-04  76

    两次动态规划,1-n-1一次,2-n一次 注意:dp数组要比原来数组多一位,用来记录第几次第几个,动态规划问题下标一定要搞清楚

    class Solution { public: int rob(vector<int>& nums) { int n=nums.size(); if(n==1||n==0) return 0; vector<int> dp(n,0); dp[0]=0; dp[1]=nums[0]; for(int i=2;i<n;i++) { dp[i]=max(dp[i-1],dp[i-2]+nums[i-1]); } int res=dp[n-1]; dp[0]=0; dp[1]=nums[1]; for(int i=2;i<n;i++) { dp[i]=max(dp[i-1],dp[i-2]+nums[i]); } return max(res,dp[n-1]); };
    Processed: 0.015, SQL: 10