Leetcode刷题(house robber)

``` import ( “fmt” ) var maxNum int var table []int func rob(nums []int) int { maxNum = 0 table = nil table = make([]int, len(nums)) for i:=0; i<len(nums); i++{ table[i] = -1 }

if len(nums)==1{
    return nums[0]
}

for i:=len(nums)-2; i>=0; i-- {
    maxNum = 0
    digui(i, 0, nums)
}
fmt.Println(maxNum, table)
return table[0] }

func digui(start, cnt int, nums []int){ if start+1>=len(nums)-1{ maxNum = max(cnt+nums[start], maxNum) if start+1==len(nums)-1{ table[start+1] = cnt+nums[start+1] maxNum = max(table[start+1] , maxNum) } table[start] = maxNum return
}

if start+2<len(table) && table[start+2]>=0{
    table[start] = nums[start] + table[start+2]
    table[start] = max(table[start] , table[start+1])
    return
}
digui(start+2, cnt+nums[start], nums)
digui(start+1, cnt, nums)
   

table[start] = maxNum
return }

func max(num1, num2 int) int { if num1>num2{ return num1 } return num2 }

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝/微信扫一扫,即可进行扫码打赏哦