首页 > 其他分享 >Leetcode-509

Leetcode-509

时间:2024-06-10 12:11:33浏览次数:23  
标签:return 示例 int self fib 509 Leetcode

题目509.斐波那契数

难度:简单

斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1

给定 n ,请计算 F(n) 。

示例 1:

输入:n = 2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1

示例 2:

输入:n = 3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2

示例 3:

输入:n = 4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3

提示:

  • 0 <= n <= 30

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fibonacci-number/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

#递归法
class Solution:
    def fib(self, n: int) -> int:
        if(n==0):return 0
        elif(n==1):return 1
        else:return self.fib(n-1)+self.fib(n-2)

image-20220225133243080

#通项法
import math

class Solution:
    def fib(self, N):
        """
        :type N: int
        :rtype: int
        """
        sqrt5=math.sqrt(5)
        return round(pow((1+sqrt5)/2,N)/sqrt5)

标签:return,示例,int,self,fib,509,Leetcode
From: https://www.cnblogs.com/cosmos42/p/18240556

相关文章

  • Leetcode-917
    题目917.仅仅反转字母难度:简单给你一个字符串s,根据下述规则反转字符串:所有非英文字母保留在原有位置。所有英文字母(小写或大写)位置反转。返回反转后的s。示例1:输入:s="ab-cd"输出:"dc-ba"示例2:输入:s="a-bC-dEf-ghIj"输出:"j-Ih-gfE-dCba"示例3:输入:s=......
  • Leetcode-007
    题目7.整数反转难度:中等给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−231,231−1],就返回0。假设环境不允许存储64位整数(有符号或无符号)。示例1:输入:x=123输出:321示例2:输入:x=-123输......
  • Q22 LeetCode142 环形链表
    1.使用快慢指针2.快指针向后移动两个位置,慢指针向后移动一个位置3.若快慢指针能相等,则有环4.将一个指针指向head,一个指针指向fast,挨个向后遍历,相等即进环点 1publicclassSolution{2publicListNodedetectCycle(ListNodehead){3ListNodequickInd......
  • Q21 LeetCode02.07 链表相交
    1.求出两链表长度2.分情况进行长链表头结点后移3.移至相同长度,两头结点一起后移,找到公共节点 1publicclassSolution{2publicListNodegetIntersectionNode(ListNodeheadA,ListNodeheadB){34ListNodecurA=headA;5ListNod......
  • Q20 LeetCode19 删除链表倒数第N个节点
    1.创建虚拟头结点ListNodepre=newListNode(0,head);2.创建快慢节点3.快节点fastIndex先往后移N个位置4.快慢slowIndex节点一直往后移,直至快节点到链表末尾5.删除慢节点后面的节点 1classSolution{2publicListNoderemoveNthFromEnd(ListNodehead,intn){......
  • LeetCode 算法:除自身以外数组的乘积c++
    原题链接......
  • Leetcode1161. 最大层内元素和
    EverydayaLeetcode题目来源:1161.最大层内元素和解法1:层序遍历每次以「层」为单位进行拓展,统计该层的元素和,维护处理过程中的最大值层数和,以及层深度。代码:/**@lcapp=leetcode.cnid=1161lang=cpp**[1161]最大层内元素和*///@lccode=start/***......
  • (nice!!!)LeetCode 312. 戳气球(区间dp ||记忆化dfs )
    312.戳气球思路:经典区间dp问题。方法一,区间dp。状态dp[i][j]表示:ij这个区间能获得的最大硬币数量。那么我们就可以枚举区间ij的每一个点,为该区间最后一个戳破的气球。细节看注释classSolution{public:intmaxCoins(vector<int>&nums){intn=nums.siz......
  • Q19 LeetCode24 两两交换链表节点
    1.注意节点交换顺序,以防节点丢失2.ListNodedummy=newListNode(0,head);定义空指针,并指向head节点 好语句3.还是虚拟头结点好用 1classSolution{2publicListNodeswapPairs(ListNodehead){3ListNodedummy=newListNode(0,head);4......
  • Q17 LeetCode707 设计链表
     无1classMyLinkedList{2intsize;3ListNodehead;45publicMyLinkedList(){6size=0;7head=newListNode(0);8}910publicintget(intindex){11if(index<0||index>=size)......