首页 > 编程语言 >代码随想录算法训练营第32天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

代码随想录算法训练营第32天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

时间:2024-09-03 21:20:50浏览次数:7  
标签:契数 爬楼梯 复杂度 随想录 return cost 台阶 dp

目录

509. 斐波那契数

题目链接:link

1、题目描述

斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。

2、思路

1️⃣ 动态规划(数组)
2️⃣动态规划(两个数值

3、code

1️⃣动态规划(数组)

class Solution:
    def fib(self, n: int) -> int:
        if n == 0:
            return 0
        if n == 1:
            return 1
        dp = [0]*(n+1)
        dp[0] = 0
        dp[1] = 1
        for i in range(2,n+1):
            dp[i] = dp[i-1] + dp[i-2]
        return dp[n]

2️⃣动态规划(两个数值)

class Solution:
    def fib(self, n: int) -> int:
        if n == 0:
            return 0
        if n == 1:
            return 1
        a = 0
        b = 1
        for i in range(2,n+1):
            c = a + b
            a = b
            b = c
        return c

标签:契数,爬楼梯,复杂度,随想录,return,cost,台阶,dp
From: https://blog.csdn.net/qq_43403653/article/details/141819610

相关文章

  • 代码随想录训练营完结总结
    在参加代码随想录的很久之前,我就听闻了卡哥的大名,也在B站上看到了相关的视频,但由于自制力一直不行,所有总是坚持不下去,当时好像就只看到了数组,甚至于链表都没开始看,就已经放弃了。想着这个暑假不能荒废了,就狠下心报名了训练营。并在这个暑假完成了代码随想录的一刷,自我感觉对于算法......
  • 代码随想录day49 || 42、接雨水 84、柱状图中最大的矩形
    42、接雨水functrap(height[]int)int{ //双指针思路,按照列计算雨水高度,分别计算每一列左右高于当前高度的最高柱子高度,然后通过min(left,right)-height[i]得出当前列的雨水体积 varresint varleft,rightint fori:=1;i<len(height)-1;i++{ left,right=......
  • 「代码随想录算法训练营」第五十二天 | 图论 part10
    目录Floyd算法题目:97.小明逛公园A*算法题目:126.骑士的攻击最短路算法总结Floyd算法Floyd算法用于求解多源最短路问题(求多个起点到多个终点的多条最短路径)。在前面学习的dijkstra算法、Bellman算法都是求解单源最短路的问题(即只能有一个起点)。注意:Floyd算法对边的权值正负没......
  • 代码随想录算法训练营|Day01 LeetCode 704.二分查找,27.移除元素,977.有序数组的平方
    数组理论基础数组是存放在连续空间上的相同类型数据的集合数组的元素是不能删的,只能覆盖704.二分查找LeetCode:704.有序数组的平方classSolution{public:intsearch(vector<int>&nums,inttarget){intlength=nums.size();inti=0......
  • 代码随想录算法训练营,9月2日 | 242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1
    哈希表理论基础1.根据关键码的值而直接进行访问的数据结构(直白来讲其实数组就是一张哈希表,哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素);2.哈希表都是用来快速判断一个元素是否出现集合里;3.哈希函数:把值对应到哈希表的函数;哈希碰撞:映射到哈希表同一个索引......
  • 关于斐波那契数列
    问题输入整数N,求出斐波那契数列中的第N项是多少。斐波那契数列的第0项是0,第1项是1,从第2项开始的每一项都等于前两项之和。输入格式第一行包含整数T,表示共有T个测试数据。接下来T行,每行包含一个整数N。输出格式每个测试数据输出一个结果,每个结果占一行,结果格式为Fib(N)......
  • 【代码随想录Day6】哈希表Part01|判断一个元素是否出现集合里
    哈希表理论基础文章讲解:哈希表理论基础要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。242.有效的字母异位词题目链接/文章讲解/视频讲解:有效的字母异位词定义一个哈希表record,遍历s,记录s中每个字母出现的次数,遍历t,减去t中每个字母出现的次数,遍历......
  • 代码随想录day48 || 739, 每日温度 496, 下一个更大元素 I 503, 下一个更大元素II
    739每日温度funcdailyTemperatures(temperatures[]int)[]int{ //双指针 varres=make([]int,len(temperatures)) fori:=0;i<len(temperatures);i++{ forj:=i+1;j<len(temperatures);j++{ iftemperatures[j]>temperatures[i]{ res[i]=j......
  • 代码随想录算法day4 - 哈希表2
    题目1454.四数相加II给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0示例1:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,2],nums4......
  • 代码随想录刷题day13丨二叉树理论基础,递归遍历,迭代遍历,统一迭代,层序遍历
    代码随想录刷题day13丨二叉树理论基础,递归遍历,迭代遍历,统一迭代,层序遍历1.二叉树理论基础1.1二叉树种类满二叉树概述:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节......