java 剑指offer之[数据结构 简单]JZ71 跳台阶扩展问题

题目的链接在这里:https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387


题目大意

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

数据范围:1 \le n \le 201≤n≤20
进阶:空间复杂度 O(1)O(1) , 时间复杂度 O(1)O(1)


一、示意图

在这里插入图片描述

二、解题思路

动态规划

动态规划

代码如下:

public class Solution {
 public int jumpFloorII(int target) {
                //先进行边界判断
                if(target==0||target==1)
                        return target;
                int dp[]=new int[target+1];
                dp[0]=0;
                dp[1]=1;
                dp[2]=2;
                //正常来说dp[n]就等于他下面所有的方法之合了
                for(int i=3;i<=target;i++){
                        //全都加一遍
                        for(int j=0;j<i;j++){
                                dp[i]+=dp[j];
                        }
                     //还有一种方法是直接跳到
                        dp[i]++;
                }
                return dp[target];
        }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值