美文网首页
三步问题

三步问题

作者: WAI_f | 来源:发表于2020-05-20 01:22 被阅读0次

题目:

三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。

示例:

输入:n = 3
输出:4
说明: 有四种走法

说明:

  • n范围在[1, 1000000]之间

解题方法:

这道题也是一道非常简单的动规题。除了需要计算实现方案数量,还要对结果取模,取模可以防止数值溢出。如果直接对最终计算结果取模可能在计算过程中会放生溢出,所以,需要在计算过程中就取模,利用的公式就是:

(a+b)%c=(a%c+b%c)%c

另外还要考虑动规的递推公式,这道题很简单,就是:

steps[i]=steps[i-1]+steps[i-2]+steps[i-3];

意思也就是在 i 阶阶梯时,可能是从i-1,i-2,i-3阶上来的,这些位置的登梯方法之和就是i 阶阶梯的登梯方法方案数。
初始条件,0,1,2,3阶需要直接列出。
先上代码和结果:

class Solution {
public:
    int waysToStep(int n) {
        vector<int> steps(n+3);
        steps[0]=0;
        steps[1]=1;
        steps[2]=2;
        steps[3]=4;
        for(int i=4;i<=n;i++)
        {
            steps[i]=(steps[i-3]+steps[i-2])%1000000007;
            steps[i]=(steps[i]+steps[i-1])%1000000007;
        }
        return steps[n];
    }
};
运行结果:

原题链接:https://leetcode-cn.com/problems/three-steps-problem-lcci/

相关文章

  • 三步问题

    题目: 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少...

  • 三步问题

    三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯...

  • 用数据解决问题的三个步骤

    先来看一下解决问题的普适性的思维框架,一共有三步。 第一步:发现和澄清问题 第二步:分析和拆解问题 第三步:提出解...

  • 如何成为解决问题的高手

    1.解决问题的步骤: ①问题本质是什么 ②拆解问题 ③解决问题 ④总结问题 2.明确及理解问题 明确及理解问题三步...

  • 先解决自己的问题,才能解决客户的问题

    今天看到书中提到解决问题三步骤,第一步分析问题是什么,第二部细究问题产生的原因,第三步验证,书中还说一个人是否具备...

  • 08-18【晨读感悟】化解问题三部曲:认识、分析、解决

    遇到问题怎么办,通常需要分三步走:认识问题➡️分析问题➡️解决问题。人与人之间,也可以遵循这样的轨迹,解决...

  • 框架化思维:你的核心竞争力,源于你如何分析问题

    【转载】原文链接请点击我 解决问题的步骤,大体上就是三步,分别是发现问题、分析问题、解决问题。 其中,分析问题的框...

  • 数据分析—介绍

    第一步,提出问题 第二步,分析问题 第三步,得出结论

  • 【拆书训练营】day2作业

    I:解决问题的能力很重要,想要解决问题需要三步:①主动发现问题。②假设:假设用A方法可以解决问题。③验证:验证我们...

  • 销售问题三步搞定

    1.找到客户群,逐个建立联系; 2.建立信任度(过程漫长,关键环节); 3.建立合作,回头客+转介绍。 提炼关键词...

网友评论

      本文标题:三步问题

      本文链接:https://www.haomeiwen.com/subject/impwohtx.html