[LeetCode] Climbing Stairs

来源:互联网 发布:阿里云售后电话号码 编辑:程序博客网 时间:2024/05/22 11:43
Problem : 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?

1.C++版

class Solution {public:    int climbStairs(int n) {        if(0 >= n){            return 0;        }else if(1 == n){            return 1;        }else if(2 == n){            return 2;        }                int result = 0,first = 1,second = 2;        for(int i = 3; i <= n;++ i){            result = first + second;            first = second;            second = result;        }        return result;    }};

2.Java版

public class Solution {    public int climbStairs(int n) {        if(0 >= n){            return 0;        }else if(1 == n){            return 1;        }else if(2 == n){            return 2;        }                int result = 0,first = 1,second = 2;        for(int i = 3;i <= n;++i){            result = first + second;            first = second;            second = result;        }                return result;    }}

3.Python版

class Solution:    # @param n, an integer    # @return an integer    def climbStairs(self, n):        if 0 >= n:            return 0        elif 1 == n:            return 1        elif 2 == n:            return 2                result = 0        first = 1        second = 2                for k in range(3,n+1):            result = first + second            first = second            second = result                return result  


0 0
原创粉丝点击