可视化图解算法72:斐波那契数列
1.题目
描述
大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。
斐波那契数列是一个满足:

数据范围:1≤n≤40
要求:空间复杂度 O(1),时间复杂度 O(n) ,本题也有时间复杂度 O(logn)的解法
输入描述:
一个正整数n
返回值描述:
输出一个正整数。
示例1
输入:
4
返回值:
3
说明:
根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为3。
示例2
输入:
1
返回值:
1
示例3
输入:
2
返回值:
1
2. 题解思路
其实题目已经给出了斐波那契数列的规律,我们只需要按照模板解题就可以。
具体解题思路是:

如果文字描述的不太清楚,你可以参考视频的详细讲解。
- Python版本:https://www.bilibili.com/cheese/play/ep1375302
- Java版本:https://www.bilibili.com/cheese/play/ep1368281
- Golang版本:https://www.bilibili.com/cheese/play/ep1368737
3.编码实现
核心代码如下:
func Fibonacci(n int) int {
if n <= 2 {
return 1
}
// 1. 定义状态. i:第i个斐波那契数; dp[i]:第i个斐波那契数值
dp := make([]int, n+1)
// 2. 初始化边界条件
dp[1] = 1
dp[2] = 1
// 3. 确定递推公式
for i := 3; i <= n; i++ {
dp[i] = dp[i-1] + dp[i-2]
}
//4.输出结果
return dp[n]
}
具体完整代码你可以参考下面视频的详细讲解。
- Python版本:https://www.bilibili.com/cheese/play/ep1375302
- Java版本:https://www.bilibili.com/cheese/play/ep1368281
- Golang版本:https://www.bilibili.com/cheese/play/ep1368737
4.总结
由于本题给出了斐波那契数列的递推公式(数学表达式),因此只需要套用模板写出代码即可。本题的重点在于模板如何如何应用到动态规划的题目中。

《数据结构与算法》深度精讲课程正式上线啦!7 大核心算法模块全解析:
✅ 链表
✅ 二叉树
✅ 二分查找、排序
✅ 堆、栈、队列
✅ 回溯算法
✅ 哈希算法
✅ 动态规划
无论你是备战笔试面试、提升代码效率,还是突破技术瓶颈,这套课程都将为你构建扎实的算法思维底座。🔥立即加入学习打卡,与千名开发者共同进阶!
- Python编码实现:https://www.bilibili.com/cheese/play/ss897667807
- Java编码实现:https://www.bilibili.com/cheese/play/ss161443488
- Golang编码实现:https://www.bilibili.com/cheese/play/ss63997
对于LeetCode数据结构与算法,我们总结了一套【可视化+图解】方法,依据此方法来解决相关问题,算法变得易于理解,写出来的代码可读性高也不容易出错。具体也可以参考视频详细讲解。
今日佳句:万物各得其和以生,各得其养以成。

对于数据结构与算法,我们总结了一套【可视化+图解】方法,依据此方法来解决相关问题,算法变得易于理解,写出来的代码可读性高也不容易出错。具体也可以参考视频详细讲解。
浙公网安备 33010602011771号