Lc198.打家劫舍
https://leetcode-cn.com/problems/house-robber/
//三步走
//1、确定状态函数dp[i],前i个房屋能偷到的最高金额
//2、确定递归函数,dp[i] = max(dp[i-2]+nums[i],dp[i-1])
//3、确定初始条件,dp[0] 为第一间房屋的金额数
func rob(nums []int) int {
dp := make([]int,len(nums))
if len(nums) == 0{
return 0
}
if len(nums) == 1{
return nums[0]
}
dp[0] = nums[0]
dp[1] = max(nums[0],nums[1])
//递归函数
for i:=2;i<len(nums);i++{
dp[i] = max(dp[i-2]+nums[i],dp[i-1])
}
return dp[len(nums)-1]
}
func max(a,b int)int{
if a>b{
return a
}else{
return b
}
}