美文网首页
tag5:动态规划 爬楼梯+打家劫舍

tag5:动态规划 爬楼梯+打家劫舍

作者: 是黄小胖呀 | 来源:发表于2020-12-27 20:03 被阅读0次

1、爬楼梯

leetcode70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2

输出: 2

解释: 有两种方法可以爬到楼顶。

1.  1 阶 + 1 阶

2.  2 阶

示例 2:

输入: 3

输出: 3

解释: 有三种方法可以爬到楼顶。

1.  1 阶 + 1 阶 + 1 阶

2.  1 阶 + 2 阶

3.  2 阶 + 1 阶

思路:当前台阶总方式为减少一阶和减少二阶的总数和。

代码如下:

class Solution:

    def climbStairs(self, n: int) -> int:

        if n==1:

            return 1

        result=[]

        result.append(1)

        result.append(2)

        for i in range(2,n):

            result.append(result[i-1]+result[i-2])

        return result[n-1]

2、打家劫舍

leetcode198. 打家劫舍

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

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

示例 1:

输入:[1,2,3,1]

输出:4

解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。

     偷窃到的最高金额 = 1 + 3 = 4 。

示例 2:

输入:[2,7,9,3,1]

输出:12

解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。

     偷窃到的最高金额 = 2 + 9 + 1 = 12 。

思路:动态规划,产生新的数组保存当前最大值。

class Solution:

    def rob(self, nums: List[int]) -> int:

        if len(nums)==0:

            return 0

        result=[]

        result.append(nums[0])

        if len(nums)==1:

            return result[-1]

        tmp1=nums[0]

        tmp2=nums[1]

        smax=max(tmp1,tmp2)

        result.append(smax)

        for i in range(2,len(nums)):

            smax1=result[i-2]+nums[i]

            smax2=result[i-1]

            smax=max(smax1,smax2)

            result.append(smax)

        return result[-1]

1、最大子序和

leetcode53. 最大子序和

2、买卖股票的最佳时机

leetcode121. 买卖股票的最佳时机

3、爬楼梯

leetcode70. 爬楼梯

4、打家劫舍

leetcode198. 打家劫舍

相关文章

  • tag5:动态规划 爬楼梯+打家劫舍

    1、爬楼梯 leetcode70. 爬楼梯[https://leetcode-cn.com/problems/cl...

  • 动态规划——打家劫舍

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

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

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

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

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

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

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

  • 动态规划之打家劫舍

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

  • 动态规划(六)

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

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

    题目链接 => 戳这里 解法

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

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

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

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

网友评论

      本文标题:tag5:动态规划 爬楼梯+打家劫舍

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