leetcode70:Climbing Stairs

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Somnus_k/article/details/82829174

思路:设f(n)为从1爬到第n层台阶的走法,则f(n)=f(n-1)+f(n-2)。

代码:

public class ClimbingStairs {

	public static void main(String[] args) {

		System.out.println(climbStairs2(44));
	}
	
	public static int climbStairs2(int n) {
		if(n==1)
			return 1;
		if(n==2)
			return 2;
		int a=1,b=2;
		int c=0;
		while(n-->2){
			c=a+b;
			a=b;
			b=c;
		}
		return c;
	}

    //递归方法会显示超时
	public static int climbStairs(int n) {
		if(n==1)
			return 1;
		if(n==2)
			return 2;
		return climbStairs(n-1)+climbStairs(n-2);
	}
}

输出:

猜你喜欢

转载自blog.csdn.net/Somnus_k/article/details/82829174