House Robber
原题链接
实现原理解析
动态规划实现
python代码实现
class Solution(object):
def rob(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) == 0:
return 0
resDp = [0 for each in nums]
if len(resDp) == 1:
return nums[0]
elif len(resDp) == 2:
return max(nums[0], nums[1])
else:
resDp[0] = nums[0]
resDp[1] = max(nums[0],nums[1])
for i in range(2,len(resDp)):
resDp[i] = max(resDp[i - 1], resDp[i - 2] + nums[i])
#print resDp
return resDp[-1]