题目:爬楼梯 可以一步一步 爬 可以两步爬 ,可以一步两步似爪牙 交替爬
穷举法 可以找出 楼梯其中的规律
public class ClimbStairs
{
public static void main(String [] args)
{
int num1=GetStairsCount1(4);
int num2=GetStairsCount2(4);
System.out.println(num1);
System.out.println(num2);
}
// 第一种 递归做法 阶梯少还行,多的话就会有点重复执行 时间多
private static int GetStairsCount1(int n)
{
if(n==1)
return 1;
else if(n==2)
return 2;
else
return GetStairsCount1(n-1)+GetStairsCount1(n-2);
}
// 第二种 动态规划 每次都保存值 空间多
private static int GetStairsCount2(int n)
{
int[] arry=new int[n+1];
arry[0]=1;
arry[1]=1;
for (int i=2;i<=n;i++)
arry[i]=arry[i-1]+arry[i-2];
return arry[n];
}
}