题解 | #跳台阶#

跳台阶

http://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4

首先可以看最基础的情况,一级台阶的时候只有一种跳法,两级台阶的时候有两种,11,2两种;

  • 3级台阶,3级可以由1级台阶再跳2级来,也可以由2级再跳1级来, 假设f(x)代表x级台阶的跳动方法数,则f(3) = f(2) + f(1)
  • 4级台阶,3级可以由2级台阶再跳2级来,也可以由3级再跳1级来, 假设f(x)代表x级台阶的跳动方法数,则f(4) = f(3) + f(2)

以此类推,f(x) = f(x - 1) + f(x - 2), x >= 3......

可以设一个长度为n + 1 的数组,数组dp[i] 代表跳动第i级有几种跳法,这样做空间复杂度为o(n),我们可以发现求当前数值只与前两个数值有关,与前面的所有都无关了,我们可以定义两个变量维护这两个值,在循环中不断改变值就行了。

代码如下:

public class Solution {
    public int jumpFloor(int target) {
       // 一只青蛙跳台阶,一次可以跳一级,也可以跳两级
        // 上n级台阶有几种跳法
        if(target <= 2) return target;
        int pre1 = 1;
        int pre2 = 2;
        int cur = 0;
        for(int i = 3; i <= target; i++){
            cur = pre1 + pre2;
            pre1 = pre2;
            pre2 = cur;
        }
        return cur;
    }
}
全部评论
该牛油正在参与牛客写题解薅羊毛的活动,牛币,周边,京东卡超多奖品放送,活动进入倒计时!快来捡漏啦https://www.nowcoder.com/discuss/888949?source_id=profile_create_nctrack&channel=-1
点赞 回复 分享
发布于 2022-04-20 15:52

相关推荐

暴走萝莉莉:这是社招场吧,作为HR说个实话:这个维护关系的意思是要有政府资源,在曾经的工作中通过人脉资源拿下过大订单的意思。这个有相关管理经验,意思也是真的要有同岗位经验。应酬什么的对于业务成交来说就算不乐意也是常态,就是要求说话好听情商高,酒量好。
点赞 评论 收藏
分享
牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
华为 优秀实习生 24k的基础薪资
牛客530051504号:转人工
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务