Climbing Stairs II

来源:互联网 发布:sails.js 开发api 编辑:程序博客网 时间:2024/06/06 17:32

A child is running up a staircase with n steps, and can hop either 1 step, 2 steps, or 3 steps at a time. Implement a method to count how many possible ways the child can run up the stairs.

Example

n=3
1+1+1=2+1=1+2=3=3

这个题目是爬梯子的follow up类型的题目,只需要在初始化的时候,初始化化3个变量即可

java

public class Solution {    /*     * @param n: An integer     * @return: An integer     */    public int climbStairs2(int n) {        // write your code here        if (n < 0) {            return 0;        }        if (n == 0) {            return 1;        }        if (n >= 1 && n <= 2) {            return n;        }        if (n == 3) {            return 4;        }        int[] f = new int[n + 1];        f[0] = 1; f[1] = 1; f[2] = 2; f[3] = 4;        for (int i = 4; i <= n; i++) {            f[i] = f[i - 1] + f[i - 2] + f[i - 3];        }        return f[n];    }};

python

class Solution:    """    @param: n: An integer    @return: An integer    """    def climbStairs2(self, n):        # write your code here        if n < 0:            return 0        if n == 0 or n == 1:            return 1        if n == 2:            return 2        if n == 3:            return 4        f = [0] * (n + 1)        f[0], f[1], f[2], f[3] = 1, 1, 2, 4        for i in range(4, n + 1):            f[i] = f[i - 1] + f[i - 2] + f[i - 3]        return f[n]


原创粉丝点击