diff --git a/problems/0213.打家劫舍II.md b/problems/0213.打家劫舍II.md index 0627eedb..5d315d5c 100644 --- a/problems/0213.打家劫舍II.md +++ b/problems/0213.打家劫舍II.md @@ -142,7 +142,20 @@ class Solution: dp[i]=max(dp[i-1],dp[i-2]+nums[i]) return dp[-1] ``` - +```python +class Solution: # 二维dp数组写法 + def rob(self, nums: List[int]) -> int: + if len(nums)<3: return max(nums) + return max(self.default(nums[:-1]),self.default(nums[1:])) + def default(self,nums): + dp = [[0,0] for _ in range(len(nums))] + dp[0][1] = nums[0] + for i in range(1,len(nums)): + dp[i][0] = max(dp[i-1]) + dp[i][1] = dp[i-1][0] + nums[i] + return max(dp[-1]) + +``` Go: ```go