题解 | #打家劫舍(二)#
打家劫舍(二)
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])