问题:楼梯总共有10级,每次只能走1级或者2级,求总共有多少种走法
求解思路:走到第10级,只有2种方式 8->10 ;9->10 所以 第10级=第9级+第8级 ;以此类推
求解方法1:
/**
*递归法求解 时间复杂度:O(2^n) 空间复杂度:5
* */
static int Method_1(int n)
{
if (n == 1)
{
return 1;
}
if (n == 2)
{
return 2;
}
return Method_1(n - 1) + Method_1(n-2);
}
求解方法2:
/**
* 备忘录法求解 【优化递归】
* */
static int Method_2(int n,Dictionary<int,int> keys)
{
if (n == 1)
{
return 1;
}
if (n == 2)
{
return 2;
}
if (keys.Keys.Contains(n))
{