LeetCode 509. 斐波那契数 C/C++/Python
欢迎加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。
题目描述
斐波那契数 (通常用 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
☞动态规划解法
C语言版
int fib(int n) {
int ret[31];
int i = 0;
ret[0] = 0;
ret[1] = 1;
if (n > 1)
{
for (i = 2; i < n + 1; i++)
{
ret[i] = ret[i - 1] + ret[i - 2];
}
}
return ret[n];
}
C++版
class Solution {
public:
int fib(int n) {
vector<int> ret;
ret.push_back(0);
ret.push_back(1);
if (n > 1)
{
for (int i = 2; i < n + 1; i++)
{
ret.push_back(ret[i - 1] + ret[i - 2]);
}
}
return ret[n];
}
};
Python版
class Solution:
def fib(self, n: int) -> int:
sum = []
sum.append(0)
sum.append(1)
if n > 1:
for i in range(2, n + 1):
sum.append(sum[i - 1] + sum[i - 2])
return sum[n]
☞递归解法
C语言版
int fib(int n) {
if(n < 2)
{
return n;
}
return fib(n - 1) + fib(n - 2);
}
C++版
class Solution {
public:
int fib(int n) {
if(n < 2)
{
return n;
}
return this->fib(n - 1) + this->fib(n - 2);
}
};
Python版
class Solution:
def fib(self, n: int) -> int:
if n < 2:
return n
return self.fib(n - 1) + self.fib(n - 2)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了