【前端】函数递归优化,javascript中应该如何写递归? - 掘金

本文探讨了在JavaScript中优化递归的方法,包括普通递归、闭包缓存、参数默认值实现的尾递归以及自记忆化函数memoization。通过缓存减少重复计算,避免全局污染,提高函数效率。适合前端开发者学习递归优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

普通递归

F(0) = 0,   F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
复制代码

以最基础的斐波那契数列为例,这个题很经典了,递归和dp的教学例题,也是家常便饭。

function fib(num){
   
   console.log(i++);
   if(num === 1  || num === 2){
   
     return 1
   }
   else{
   
     return fib(num-1) + fib(num-2);
   }
} 

最普通的递归存在大量的重复计算,所以最优解是使用动态规划来做,用空间换时间

function fib(num){
   
   const dp = new Array(num + 1);
   dp[1] = 1;
   dp[2] = 1;
   for(let
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值