前端每日面试一题
作者:互联网
20220608
递归和动态规划的概念
DP核心就是建立一个合适的数据结构,保存递归过程中运算的结果.
先想递归
发现重复计算
通过记忆化等方法弄掉重复计算
最后看下能不能通过利用计算顺序来做的去掉递归用“刷表”方式直接顺序计算.
一些概念(斐波那契数列)
迭代:循环
最优子结构:原问题的最优解,可以通过求解子问题的最优解进而推出原问题的最优解
重叠子问题:在递归中,计算f(10),会把f(8)或者f(9)进行多次计算,动态规划消除了重叠子问题,不进行多次重复计算
自顶向下:求解f(n),需要计算f(n-1),进而计算初f(n)的解,所以斐波那契数列递归时会出现f(n-1)+f(n-2)
自底向上:从最小的f(1)到f(2)往上堆到f(20)。
动态规划将递归函数变成了循环迭代
动态规划消除了递归生成的重叠子问题
动态规划采用自底向上的思想,递归采用自顶向下的思想
标签:递归,前端,面试,自顶向下,计算,最优,动态,规划,每日 来源: https://www.cnblogs.com/gzeal/p/16356859.html