题解 | #打家劫舍(二)#
打家劫舍(二)
https://www.nowcoder.com/practice/a5c127769dd74a63ada7bff37d9c5815
#思路为分别删掉首尾元素算一次
class Solution:
def rob(self , nums: List[int]) -> int:
def deidai(n):
if nums:
dp[1] = nums[0]
if n >1:
for i in range(2,n+1):
dp[i] = max(dp[i-1],dp[i-2]+nums[i-1])
#第一次
n = len(nums[:-1])
dp = [0]*(n+1)
deidai(n)
ans = dp[n]
#第二次
nums.pop(0)
n = len(nums)
dp = [0]*(n+1)
deidai(n)
return max(ans,dp[n])
查看19道真题和解析
