# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型 # class Solution: def rob(self , nums: List[int]) -> int: # write code here n=len(nums) dp1=[0]*(n+1)#dp[i]表示长度为i的数组,最多能偷取多少钱 dp1[1]=nums[0]#第一家偷 dp2=[0]*(n+1)#dp[i]表示长度为i的数组,最多能偷取多少钱 dp2[1]=0#第一家不偷 for i in range(2,n): dp1[i] = max(dp1[i - 1], nums[i - 1] + dp1[i - 2])#第一家偷,遍历的时候数组最后一位不去遍历 for i in range(2,n+1): dp2[i] = max(dp2[i - 1], nums[i-1] + dp2[i - 2])#第一家不偷,遍历的时候数组最后一位遍历 return max(dp1[n-1],dp2[n])



京公网安备 11010502036488号