题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。
求总共有多少总跳法,并分析算法的时间复杂度。
由题分析得出这是FIibonaqi的变形,有关递归与递推的区别,查看数据结构面试NO.19题
#include<iostream>
#include<assert.h>
using namespace std;
int Recurrence(int num)
{
assert(num!=0);
int count=0;
int i;
int first = 1;
int sed = 2;
if(num==1 || num==2 )
{
return num;
}
for(i=3;i<=num;i++)
{
count = first + sed;
first = sed ;
sed = count;
}
return count;
}
int main()
{
int num;
num=Recurrence(5);
cout<<"the total number of functions is:"<<num<<endl;
return 1;
}
本文探讨了跳台阶问题的动态规划算法实现,详细解释了递归与递推的区别,通过实例展示了如何使用动态规划解决此类问题。重点分析了算法的时间复杂度,提供了具体的代码实现,帮助读者理解动态规划在解决实际问题中的应用。
1431

被折叠的 条评论
为什么被折叠?



