斐波那契数
发表于|更新于|作业练习
|浏览量:
题目表述(来源LeetCode)
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n)
代码实现
1 | class Solution: |
复杂度分析
- 时间复杂度:O(n)
- 空间复杂度:O(n)
文章作者: zhaoyuan
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 笺札!
相关推荐

2025-12-02
Excel 表列名称
Excel 表列名称 🎯 问题描述(来源于LeetCode) 12345678910给你一个整数 columnNumber,返回它在 Excel 表中相对应的列名称。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ... 💻 代码实现 12345678910class Solution: def convertToTitle(self, columnNumber: int) -> str: n=columnNumber s='' while (n > 0): m = n % 26 if (m == 0): m = 26 s = chr(m + 64) + s n = (n - m) // 26 return s 📊 性能分析 提交结果 运行时间:0ms击败100.00% 内存消耗:17.38MB击败93.22...

2025-11-30
Pow(x, n)
Pow(x, n) 🎯 问题描述(来源于LeetCode) 1实现pow(_x_, _n_) ,即计算x的整n次幂函数(即,x^n )。 💻 代码实现 暴力破解快速幂优化算法12345678910class Solution: def myPow(self, x: float, n: int) -> float: ans=1.0 i=0 if n<0: x=1/x n=-n for i in range(n): ans*=x return ans使用快速幂降低其时间复杂度 12345678910111213class Solution: def myPow(self, x: float, n: int) -> float: ans=1.0 i=0 if n<0: x=1/x n=-n ...

2025-12-02
Excel 表列序号
Excel 表列序号 🎯 问题描述(来源于LeetCode) 12345678910给你一个字符串columnTitle,表示 Excel 表格中的列名称。返回 _该列名称对应的列序号_ 。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ... 💻 代码实现 123456789101112131415class Solution: def titleToNumber(self, columnTitle: str) -> int: s=columnTitle a = list(map(lambda x: chr(x), range(ord('A'), ord('Z') + 1))) l = len(s) sum = 0 if l > 1: for i in range(l - 1): ...

2025-11-29
上升的温度
上升的温度 问题描述(来源于LeetCode) 表: Weather ±--------------±--------+ | Column Name | Type | ±--------------±--------+ | id | int | | recordDate | date | | temperature | int | ±--------------±--------+ id 是该表具有唯一值的列。 没有具有相同 recordDate 的不同行。 该表包含特定日期的温度信息 编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的 id 。 返回结果 无顺序要求 。 代码实现 123456# Write your MySQL query statement belowSELECT t2.id AS IdFROM Weather t1CROSS JOIN Weather t2 ON DATEDIFF(t1.recordDate,t2.recordDate)=-1WHERE t2.Temperat...

2025-12-05
三个数的最大乘积
三个数的最大乘积 🎯 问题描述(来源于LeetCode) 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 💻 代码实现 目标是找到数组中三个数的最大乘积。有两种可能的情况: 三个最大的正数相乘。 两个最小的负数(如果存在)和一个最大的正数相乘。 123456789101112131415161718class Solution: def maximumProduct(self, nums: List[int]) -> int: x1=nums.copy() x2=nums max1 =max(x1) x1.remove(max1) max2=max(x1) x1.remove(max2) max3=max(x1) n1=max1*max2*max3 max4=min(x2) x2.remove(max4) max5=min(x2) n2=max1...

2025-12-01
交替位二进制数
交替位二进制数 🎯 问题描述(来源于LeetCode) 1给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。 💻 代码实现 123456789class Solution: def hasAlternatingBits(self, n: int) -> bool: while n: a=n&1 n>>=1 b=n&1 if a^b==0: return False return True 📊 性能分析 提交结果 运行时间:0ms击败100.00 % 内存消耗:17.66MB击败14.25 % 复杂度验证 时间复杂度:O(1)O(1)O(1) 空间复杂度:O(1)O(1)O(1)




