package DP
//func rob(nums []int) int {
// size := len(nums)
// var f func(int) int
// f = func(index int) int {
// if index >= size {
// return 0
// }
// ret1 := nums[index] + f(index+2)
// ret2 := f(index + 1)
// return max(ret1, ret2)
// }
// return f(0)
//}
func rob(nums []int) int {
// dp[i] = max(dp[i+1], nums[i] + dp[i+2])
size := len(nums)
dp := make([]int, size+2)
for i := size - 1; i >= 0; i-- {
dp[i] = max(dp[i+1], nums[i]+dp[i+2])
}
return dp[0]
}