夜深人静写算法(二十六)- 记忆化搜索

本文深入探讨了记忆化搜索的概念,以斐波那契数列为引子,详细解析了递归求解斐波那契数列的时间复杂度及其优化思路——记忆化搜索。通过示例介绍了记忆化搜索的实现,包括合法性剪枝、偏序关系剪枝、记忆化剪枝等步骤,以及其在路径问题、字符串匹配和背包问题等场景的应用。记忆化搜索的优点在于简化代码和提高效率,尤其适合解决具有重叠子问题的动态规划问题。

一、前言

  你在面试的时候有没有遇到过一些面试官让你手写一个递归形式的斐波那契数列呢?
  至少我这么干过,也确实有不少人中招了!
  如果你打算这么写,那么很可能,hia hia~~ 你已经和你的 offer 失之交臂了!

二、斐波那契数列

1、定义

  • 所谓斐波那契数列,是指一个数列【当前项】的值等于【前两项】之和:
    图二-1-1
  • 该数列有如下递归表示:
  • f ( n ) = { 1 ( n ≤ 1 ) f ( n − 1 ) + f ( n − 2 ) ( n > 1 ) f(n) = \begin{cases}1 & (n \le 1) \\f(n-1)
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

英雄哪里出来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值