首页 > 编程语言 >day44 动态规划part7 代码随想录算法训练营 70. 爬楼梯 (进阶)

day44 动态规划part7 代码随想录算法训练营 70. 爬楼梯 (进阶)

时间:2024-02-29 10:35:04浏览次数:29  
标签:爬楼梯 进阶 E5% 随想录 E6% 70 total dp

题目:

  1. 爬楼梯 (进阶)-在卡尔网

我的感悟:

  • 昨天最后没怎么听懂的,今日回旋镖来了。

理解难点:

  • 递推公式,和遍历顺序

手写笔记:

代码示例:

total, m = map(int, input().split())  # 每次爬m个
# dp[i]含义是爬到i有dp[i]种方法 # 是完全背包问题
dp = [0] * (total + 1)
dp[0] = 1
for j in range(total+1):    # 遍历背包
    for i in range(1,m+1):  # 遍历物品
        if j >= i:
            dp[j] += dp[j - i]

print(dp[total])

测试截图:

扩展写法:

资料:

  1. 爬楼梯 (进阶) 

这道题目 爬楼梯之前我们做过,这次再用完全背包的思路来分析一遍 

https://programmercarl.com/0070.%E7%88%AC%E6%A5%BC%E6%A2%AF%E5%AE%8C%E5%85%A8%E8%83%8C%E5%8C%85%E7%89%88%E6%9C%AC.html

标签:爬楼梯,进阶,E5%,随想录,E6%,70,total,dp
From: https://www.cnblogs.com/liqi175/p/18042873

相关文章

  • 代码随想录算法训练营第六天|242. 有效的字母异位词
    这个题目还是比较简单的,知道是查表的思路之后,很快就写出来了:classSolution:defisAnagram(self,s:str,t:str)->bool:iflen(s)!=len(t):returnFalsealphabet=[]dict_s={}dict_t={}foriinran......
  • 面向对象—【类与对象】【类的定义与对象创建】【对象的使用】【方法创建与使用】【方
    面向对象基础篇我们在前面已经学习了面向过程编程,也可以自行编写出简单的程序了。我们接着就需要认识面向对象程序设计(ObjectOrientedProgramming)它是我们在Java语言中要学习的重要内容,面向对象也是高级语言的一大重要特性。面向对象是新手成长的一道分水岭,有的人秒懂,有的人......
  • 代码随想录算法训练营day08 | leetcode 344. 反转字符串、541. 反转字符串 II、54. 替
    目录题目链接:344.反转字符串-简单题目链接:541.反转字符串II-简单题目链接:[54.替换数字](题目页面(kamacoder.com))题目链接:151.反转字符串中的单词-中等题目链接:[55.右旋字符串](题目页面(kamacoder.com))题目链接:344.反转字符串-简单题目描述:编写一个函数,其作用是将......
  • 面向对象—【类与对象】【类的定义与对象创建】【对象的使用】【方法创建与使用】【方
    @目录面向对象基础篇类与对象类的定义与对象创建对象的使用方法创建与使用方法进阶使用构造方法源码:Giteehttps://gitee.com/drip123456/java-seGIthubhttps://github.com/Drip123456/JavaSE专栏:JavaSE笔记专栏面向对象基础篇我们在前面已经学习了面向过程编程,也可以自......
  • 代码随想录 day64 柱状图中最大的矩形
    柱状图中最大的矩形本题和接雨水在很多地方都很相似但是不是求凹槽了而是求突起就是相同的思路求不同的柱体对于每一个柱体找左边最矮的柱体这个柱体的右边的柱体和这个柱体围成的矩形就为最大同理找右边的柱体这里注意要用while而不是if因为要找到最矮的而......
  • Codeforces 1705F Mark and the Online Exam
    先问全\(\texttt{T}\),记得到的数为\(a\)。接下来问\(len\)个位置为\(\texttt{T}\),得到的数为\(b\)。因为剩下\(n-len\)个位置肯定都会被刚好算上一次,对于这\(len\)个数里的\(\texttt{T}\)的个数\(x\)就有式子\((n-len)+2x=a+b\),可以解得\(x=\frac{......
  • 【3.0】前端基础jQuery之进阶
    【一】操作标签【1】操作类(1)JS版本[1]classList.add()方法用于向元素添加一个或多个类名。如果指定的类名已存在,则不会添加。element.classList.add("class1","class2");[2]classList.remove()方法用于从元素移除一个或多个类名。如果指定的类名不存在,则不会......
  • day44 动态规划part6 代码随想录算法训练营 518. 零钱兑换 II
    题目:518.零钱兑换II我的感悟:递推公式,我没写错。是初始化写错了。这种求多少种的,要考虑1种,是空集合选1中。而那些考虑能背最大的价值,要从0初始化,0的含义值无价值。 理解难点:递推公式,是累加dp[j]+=dp[j-conins[i]]初始化的含义 dp[0]=1听课笔记: 代码示例:cl......
  • day44 动态规划part6 代码随想录算法训练营 卡尔网52题
    题目:52.携带研究材料我的感悟:背模板,记下来,就好了。理解难点:听课笔记:代码示例:n,v=map(int,input().split())weight_list=[]value_list=[]for_inrange(n):weight,value=map(int,input().split())weight_list.append(weight)value_list.a......
  • day44 动态规划part6 代码随想录算法训练营 完全背包理论
    题目:完全背包理论我的感悟:记忆中理解。理解难点:为什么正序就是用多次?因为正序是借用本层左侧的状态,倒序是借用上一层的状态。演示:打印DP:示例代码:查看代码#01背包deftest_CompletePack1(weight,value,bagWeight):dp=[0]*(bagWeight+1)f......