您的位置:首页 > 大数据 > 人工智能

leetcode70:Climbing Stairs

2016-05-04 09:21 405 查看


2种解法,第一种简单但是会超时,第二种可以AC!!!

package com.leetcode;

public class Solution70 {
//递归实现的话会超时,并不推荐
public static int climbStairs1(int n){
if( n== 1 ) return 1;
if( n == 2 ) return 2;
return climbStairs1(n-1 ) + climbStairs1( n -2 );
}

//用循环来解决
public static int climbStairs2(int n){
if( n== 1 ) return 1;
if( n == 2 ) return 2;
//n>=3
int [ ] result = new int[ n+1 ];
result[ 0 ] = 0;
result[ 1 ] = 1;
result[ 2 ] = 2;
for(int i = 3; i <= n; i++){
result[ i ] = result[ i-1 ]+result[ i-2 ];
}
return result[ n ];
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(climbStairs1(1));
System.out.println(climbStairs1(2));
System.out.println(climbStairs1(3));
System.out.println(climbStairs1(44));

System.out.println(climbStairs2(1));
System.out.println(climbStairs2(2));
System.out.println(climbStairs2(3));
System.out.println(climbStairs2(44));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: