198.M 打家劫舍
思路
dp[i] = max(dp[i-2]+nums[i], dp[i-1])Code
func rob(nums []int) int {
if len(nums) == 0 {
return 0
}
if len(nums) == 1 {
return nums[0]
}
dp := make([]int, len(nums))
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]
}Last updated