记忆化搜索模板

def fibonacci(n, memo={}):
if n in memo:
return memo[n]
if n <= 1:
result = n
else:
# 局部变量用于计算当前结果
result = fibonacci(n - 1, memo) + fibonacci(n - 2, memo)
memo[n] = result
return result
num = 6
print(f"斐波那契数列第 {num} 项的值是: {fibonacci(num)}")
#include <iostream>
#include <unordered_map>
// 带记忆化搜索的斐波那契数列函数
int fibonacci(int n, std::unordered_map<int, int>& memo) {
// 如果 n 已经在 memo 中,直接返回结果
if (memo.find(n) != memo.end()) {
return memo[n];
}
int result;
// 处理基本情况
if (n <= 1) {
result = n;
} else {
// 递归计算斐波那契数
result = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);
}
// 将计算结果存入 memo
memo[n] = result;
return result;
}
int main() {
int num = 6;
// 用于记忆化的哈希表
std::unordered_map<int, int> memo;
std::cout << "斐波那契数列第 " << num << " 项的值是: " << fibonacci(num, memo) << std::endl;
return 0;
}
发布于   xiins  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示