LeetCode--198. House Robber(打家劫舍)Python
2018-01-05 15:35
471 查看
题目:
给定一个数组nums,代表每家可以打劫到的钱数,连着打劫相邻的两家会自动报警。在保证不报警的前提下,找到可以打劫到的最多钱数。
解题思路:
考虑使用动态规划。dp[i]表示从0-i户可以打劫到的最大钱数。则有dp[i] = max(dp[i-1],dp[i-2]+nums[i])。
代码(Python):
class Solution(object):
def rob(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if nums==[]:
return 0
if len(nums)==1:
return max(nums)
dp = [0]*len(nums)
dp[0] = nums[0]
dp[1] = max(nums[1],nums[0])
for i in range(2,len(nums)):
dp[i] = max(dp[i-1],dp[i-2]+nums[i])
return dp[len(nums)-1]
给定一个数组nums,代表每家可以打劫到的钱数,连着打劫相邻的两家会自动报警。在保证不报警的前提下,找到可以打劫到的最多钱数。
解题思路:
考虑使用动态规划。dp[i]表示从0-i户可以打劫到的最大钱数。则有dp[i] = max(dp[i-1],dp[i-2]+nums[i])。
代码(Python):
class Solution(object):
def rob(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if nums==[]:
return 0
if len(nums)==1:
return max(nums)
dp = [0]*len(nums)
dp[0] = nums[0]
dp[1] = max(nums[1],nums[0])
for i in range(2,len(nums)):
dp[i] = max(dp[i-1],dp[i-2]+nums[i])
return dp[len(nums)-1]
相关文章推荐
- LeetCode 198. House Robber(Python)
- [LeetCode] 198. House Robber 打家劫舍
- (Java) LeetCode 198. House Robber —— 打家劫舍
- 2017.12.18 LeetCode - 198. House Robber【dp入门】
- LeetCode-198. House Robber (JAVA)寻找数组不相邻组合最大值DP
- LeetCode 198. House Robber
- 【LeetCode】198. House Robber
- LeetCode-198. House Robber (Java)
- 198. House Robber LeetCode
- leetcode 198. House Robber 入室抢劫 + DP动态规划求解
- [LeetCode] House Robber III 打家劫舍之三
- LeetCode 198. House Robber
- LeetCode 198. House Robber
- leetcode 198. House Robber
- LeetCode 198. House Robber
- LeetCode 198. House Robber
- LeetCode 198. House Robber
- 【leetcode】198. House Robber
- LeetCode 198. House Robber
- LeetCode 198. House Robber