213. House Robber II
202402012338
tags: #dp
class Solution:
def rob(self, nums: List[int]) -> int:
n = len(nums)
if n == 1:
return nums[0]
@lru_cache
def dp(i, end):
if i >= end:
return 0
return max(dp(i + 1, end), dp(i + 2, end) + nums[i])
return max(dp(1, n), dp(0, n - 1))