class Solution:
def rob(self, nums: List[int]) -> int:
n = len(nums)
#边界
if n == 0:
return 0
if n == 1:
return nums[0]
#初始化
dp = [0] * n
dp[0] = nums[0]
dp[1] = nums[1] if nums[1] > nums[0] else nums[0]
if n == 2:
return dp[n-1]
for i in range(2, n):
dp[i] = max(dp[i-1], dp[i-2]+nums[i])
return dp[n-1]