避免递归中的重复计算
来源:互联网 发布:斧声烛影 知乎 编辑:程序博客网 时间:2024/05/20 12:48
int Fib_1(int n) //斐波那契数列
{
if(n<=1){return 1;}else{return Fib_1(n-2)+Fib_1(n-1);}}
但是在多次计算后重复的值仍然重复计算。为了加快计算速度,采用添加一个数组保存之前重复出现的递归结果的数组。
int Count_Fib(int n,int *val){if(val[n] != -1){return val[n];}else{val[n] = Count_Fib(n-1,val)+Count_Fib(n-2,val);return val[n];}}void Fib_2(int n){int *val = new int[n+1];for(int i = 0;i<=n;i++){val[i]=-1;//因为数字不会是负数}val[0]=1;val[1]=1;cout<<Count_Fib(n,val)<<endl;}
接下来不用数组,传两个参数。
int Fib(int a,int b,int n){if(n<=2)return a;else return Fib(a+b,a,n-1);}int Fib(int n){int a=1,b=1;return Fib(a,b,n);}
0 0
- 避免递归中的重复计算
- dp 01背包避免重复计算
- MATLAB中存储中间数据以避免重复计算
- 将数据临时存储起来,避免重复计算
- 避免重复
- 递归优化 POJ1579 记忆化搜索 剪枝 去掉重复计算
- HUST 1025 Sequence(递归 + 重复计算消除)
- 编程基础---Memoization技术优化递归的重复计算
- 提升JavaScript递归效率:Memoization(避免重复运算)技术详解
- 避免超时方法一 :不要重复调用函数计算同一个数
- leetcode -- 15. 3Sum 【问题转化2sum + 避免重复计算的方法(规定次序)】
- 避免重复定义
- 避免重复登录
- 避免重复打开程序
- struts2避免重复提交
- 避免表单重复提交
- 避免重复打开程序
- 避免表单重复提交
- html是什么,html5是什么?web开发必备知识之html
- JavaScript Dom编程艺术-C6 案例研究:图片库改进版
- FileZilla搭建FTP服务器
- BOOL的赋值
- XGBoost参数调优
- 避免递归中的重复计算
- scala基础语法-2数组
- 负载均衡层次结构:LVS Nginx DNS CDN
- 参加工作2年后的我
- Android唤醒、解锁屏幕
- 径向基网络(RBF)实现函数插值(拟合)
- 二维数组中的查找
- 2016憧憬之年,2017成神之路
- 聊下Volley源码(整体流程)