繁小华的专栏

假装在编程

变态跳台阶

题目描述


一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。


思路:和跳台阶不同的是每次跳有n种不同的高度。所以我们需要记录每一次跳跃的有多少种跳法,最后将这些相加。


C/C++代码:

class Solution
{
public:
    int jumpFloorII(int number)
    {
        if(number == 1)
        {
            return 1;
        }
        else if(number == 2)
        {
            return 2;
        }
        else
        {
            int *record = new int[number + 1];
            record[0] = 1;
            record[1] = 1;
            record[2] = 2;
            for(int i = 3; i <= number; i++)
            {
                int j = i;
                int sum = 0;
                while(j >= 0)
                {
                    sum += record[j];
                    j--;
                }
                record[i] = sum;
            }
            return record[number];
        }
    }
};


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunshihua12829/article/details/49892905
文章标签: C++
个人分类: 剑指offer C/C++
上一篇跳台阶
下一篇矩形覆盖
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭