关闭

变态跳台阶

标签: C++
147人阅读 评论(0) 收藏 举报
分类:
题目描述


一只青蛙一次可以跳上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];
        }
    }
};


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:85609次
    • 积分:3947
    • 等级:
    • 排名:第7977名
    • 原创:72篇
    • 转载:57篇
    • 译文:0篇
    • 评论:7条
    最新评论