1 Star 0 Fork 0

luobg01/PFJ_coding

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
code036_fib.h 1.17 KB
一键复制 编辑 原始数据 按行查看 历史
luobg01 提交于 2023-12-25 22:59 . leetcode509 斐波那契数
//
// Created by 罗炳国 on 2023/12/25.
//
#ifndef PFJ_CODE036_FIB_H
#define PFJ_CODE036_FIB_H
#include "commonHeader.h"
/**
* 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
* F(0) = 0,F(1) = 1
* F(n) = F(n - 1) + F(n - 2),其中 n > 1
* 给定 n ,请计算 F(n) 。
* */
class code036_fib {
public:
int fib1(int n) {
if (n <= 1)
return n;
return fib1(n -1) + fib1(n - 2);
}
int fib2(int n) {
vector<int> dp(n + 1, 0);
return process(n, dp);
}
int fib3(int n) {
if (n <= 1)
return n;
int pre = 1, ppre = 0, ans;
for (int i = 2; i <= n; i++) {
ans = pre + ppre;
ppre = pre;
pre = ans;
}
return ans;
}
private:
int process(int n, vector<int>& dp) {
if (n <= 1)
return n;
if (dp[n] != 0)
return dp[n];
int ans = process(n - 1, dp) + process(n - 2, dp);
dp[n] = ans;
return ans;
}
};
#endif//PFJ_CODE036_FIB_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/luobg01/pfj_coding.git
git@gitee.com:luobg01/pfj_coding.git
luobg01
pfj_coding
PFJ_coding
master

搜索帮助