# Leetcode 213. House Robber II ###### tags: `Leetcode(C++)` 題目 : https://leetcode.com/problems/house-robber-ii/submissions/ 。 想法 : * 跟上一題(198)很像,只是變成圓形的環,也就是頭尾不能一起選。 * 改成頭到尾-1做一次,再加上尾到頭+1做一次DP,兩個取大為答案。 時間複雜度 : 程式碼 : ``` class Solution { public: int rob(vector<int>& nums) { int house[410]={0},house2[410]={0},l=nums.size(); house[0]=nums[0]; if(l == 1) return nums[0]; if(l >= 2) house[1]=max(nums[0],nums[1]); for(int i=2 ; i<l-1 ; i++){ house[i]=max(house[i-1],house[i-2]+nums[i]); } house2[l-1]=nums[l-1]; if(l >= 2) house2[l-2]=max(nums[l-1],nums[l-2]); for(int i=l-1 ; i>=2 ; i--){ house2[i-2]=max(house2[i-1],house2[i]+nums[i-2]); } return max(house[l-2],house2[1]); } }; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up