理论基础
无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。
如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了?
其实并没有,我讲的理论基础内容,在动规章节所有题目都有运用,所以很重要!
如果做过动态规划题目的录友,看我的理论基础 就会感同身受了。
代码随想录
视频:从此再也不怕动态规划了,动态规划解题方法论大曝光 !| 理论基础 |力扣刷题总结| 动态规划入门_哔哩哔哩_bilibili
509. 斐波那契数
很简单的动规入门题,但简单题使用来掌握方法论的,还是要有动规五部曲来分析。
代码随想录
视频:手把手带你入门动态规划 | LeetCode:509.斐波那契数_哔哩哔哩_bilibili
class Solution(object):
def fib(self, n):
if n==0 :
return 0
if n==1 or n==2:
return 1
return self.fib(n-1)+self.fib(n-2)
总结
知道递归式就已经解决了90%
70. 爬楼梯
本题大家先自己想一想, 之后会发现,和 斐波那契数 有点关系。
代码随想录
视频:带你学透动态规划-爬楼梯(对应力扣70.爬楼梯)| 动态规划经典入门题目_哔哩哔哩_bilibili
class Solution(object):
def climbStairs(self, n):
if n==1:
return 1
dp=[0]*n
dp[0]=1
dp[1]=2
for i in range(2,n):
dp[i]=dp[i-1]+dp[i-2]
return dp[n-1]
总结
感觉像是高中的概率里的爬楼梯的问题,要找到它的定义才行。
746. 使用最小花费爬楼梯
这道题目力扣改了题目描述了,现在的题目描述清晰很多,相当于明确说 第一步是不用花费的。
更改题目描述之后,相当于是 文章中 「拓展」的解法
代码随想录
视频讲解:动态规划开更了!| LeetCode:746. 使用最小花费爬楼梯_哔哩哔哩_bilibili文章来源:https://www.toymoban.com/news/detail-802701.html
class Solution(object):
def minCostClimbingStairs(self, cost):
if len(cost)==1:
return cost[0]
if len(cost)==2:
return min(cost[0],cost[1])
dp=[0]*(len(cost)+1)
dp[0]=0
dp[1]=0
for i in range(2,len(dp)):
dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2])
return dp[len(cost)]
总结
我开始是想的是第一步和第二步是不要钱的,但考虑到无法比较当前的位置价格的大小,所以考虑的是起跳完后的值,结果只需要在比较时加上当前的值就行了。文章来源地址https://www.toymoban.com/news/detail-802701.html
到了这里,关于算法随想录第三十八天打卡| 理论基础 , 509. 斐波那契数, 70. 爬楼梯 , 746. 使用最小花费爬楼梯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!