首页 > 代码库 > Leetcode House Robber II
Leetcode House Robber II
本题和House Robber差不多,分成两种情况来解决。第一家是不是偷了,如果偷了,那么最后一家肯定不能偷。
1 class Solution(object): 2 def rob(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: int 6 """ 7 if not nums: 8 return 0 9 n = len(nums) 10 if n == 1: 11 return nums[0] 12 if n == 2: 13 return max(nums[0], nums[1]) 14 15 dp = [0]* n 16 dp[0] = 0 17 dp[1] = nums[1] 18 19 for i in range(2,n): 20 dp[i] = max(dp[i-2]+nums[i], dp[i-1]) 21 22 case1 = dp[-1] 23 24 dp = [0]* (n-1) 25 dp[0] = nums[0] 26 dp[1] = nums[0] 27 28 for i in range(2,n-1): 29 dp[i] = max(dp[i-2]+nums[i], dp[i-1]) 30 31 case2 = dp[-1] 32 33 return max(case1, case2) 34
Leetcode House Robber II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。