题目

题解
class Solution:
def rob(self, nums: List[int]) -> int:
def dp(nums: List[int]) -> int:
N = len(nums)
# 定义状态:dp[i]表示从第i个房屋开始偷窃,能够偷到的最高金额
dp = [0 for i in range(N)]
for i in range(N-1, -1, -1):
if i == N-1:
dp[i] = nums[i]
elif i == N-2:
dp[i] = max(nums[i], nums[i+1])
else:
dp[i] = max(dp[i+1], nums[i] + dp[i+2])
return dp[0]
if len(nums) == 1:
return nums[0]
res = max(dp(nums[:-1]), dp(nums[1:]))
return res















![[Spring] 字节一面~Spring 如何解决循环依赖问题 以及 @resource 与 @autowire 同时存在时谁生效](https://img-blog.csdnimg.cn/2385af584e1f48f78b33e16e3e05e03d.png)



![[建议收藏] 一个网站集合所有最新最全的AI工具](https://img-blog.csdnimg.cn/img_convert/fd263d198df6fad95e517222d3e0d801.jpeg)