论坛首页 综合技术论坛

[leetcode] ClimbingStairs

浏览 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;
        }
    }
}
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics