浏览 1050 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2014-10-19
* <pre> * You are climbing a stair case. It takes n steps to reach to the top. * * Each time you can either climb 1 or 2 steps. * In how many distinct ways can you climb to the top? * </pre> */ public class ClimbingStairs { //Time Limit Exceeded public class Solution { public int climbStairs(int n) { if (n < 0) return 0; if (n == 1) return 1; if (n == 2) return 2; return climbStairs(n - 1) + climbStairs(n - 2); } } public class Solution2 { public int climbStairs(int n) { if (n < 0) return 0; if (n == 1) return 1; if (n == 2) return 2; int a = 1; int b = 2; int c = 0; for (int i = 0; i < n - 2; i++) { c = a + b; a = b; b = c; } return c; } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |