美文网首页
动态规划之打家劫舍

动态规划之打家劫舍

作者: wwq2020 | 来源:发表于2020-07-27 21:06 被阅读0次

题目

你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警.

思路

第 n 个房屋时候的最大收益是:
第 n-1 时的最大收益
第 n-2 时的最大收益+第 n 个的收益

两者中的最大值

状态转移方程

nums[n] = max(nums[n-2]+nums[n],nums[n-1])

最终源码


func calc(nums []int) int {
    length := len(nums)
    if length < 1 {
        return 0
    }
    if length == 1 {
        return nums[0]
    }
    if length == 2 {
        return max(nums[0], nums[1])
    }
    nums[1] = max(nums[0], nums[1])
    for i := 2; i < length; i++ {
        nums[i] = max(nums[i-2]+nums[i], nums[i-1])
    }
    return nums[length-1]
}

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}

相关文章

  • 动态规划之——打家劫舍

    LeetCode198. 打家劫舍 题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,...

  • 动态规划之打家劫舍

    题目 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有...

  • 动态规划——打家劫舍

    这道题也算是一道挺经典的题,即使不了解动态规划的人肯定也见过这道题。先来看代码 这里还有第二种解法,算法思想依然是...

  • [动态规划]-打家劫舍

    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连...

  • 2022-02-19 动态规划高频题专题【1】

    动态规划基本类型 dp基础 背包问题 打家劫舍 股票问题 子序列问题 进阶动态规划 深入理解动态规划过程 定义dp...

  • 动态规划(六)

    这一次我们来看看动态规划中打家劫舍这一类的问题,在LeetCode中这类问题有:第198题:打家劫舍 https:...

  • LeetCode-打家劫舍(动态规划)

    题目链接 => 戳这里 解法

  • 初级算法-动态规划-打家劫舍

    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连...

  • 198. 打家劫舍--动态规划

    题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装...

  • 337. 打家劫舍 III

    一 题目: 二 思路: 动态规划这道题目和之前的打家劫舍1[https://www.jianshu.com/p/f...

网友评论

      本文标题:动态规划之打家劫舍

      本文链接:https://www.haomeiwen.com/subject/phmtrktx.html