def rob(self, nums: List[int]) -> int: # write code here n = len(nums) dp = [0] * (n + 1) # dp[i]表示长度为i的数组,最多能偷取多少钱 dp[1] = nums[0] # 长度为1只能偷第一家 for i in range(2, n + 1): dp[i] = max(dp[i - 1], nums[i - 1] + dp[i - 2]) # 对于每家可以选择偷或者不偷 return dp[-1]

def rob(self, nums: List[int]) -> int: # write code here n = len(nums) dp = [0] * (n + 1) # dp[i]表示长度为i的数组,最多能偷取多少钱 dp[1] = nums[0] # 长度为1只能偷第一家 for i in range(2, n + 1): dp[i] = max(dp[i - 1], nums[i - 1] + dp[i - 2]) # 对于每家可以选择偷或者不偷 return dp[-1]