剑指Offer-09.变态跳台阶(Java)

NPP/VIIRS夜间灯光数据:从下载到应用的完整指南 本文提供了NPP/VIIRS夜间灯光数据从下载、处理到应用的完整实战指南。详细介绍了如何从官方源获取数据、解读文件结构、进行坐标校正与数据清洗,并深入探讨了其在城市扩张监测、社会经济指标估算、重大事件影响评估等领域的核心应用。文章旨在帮助研究者与从业者快速掌握这一强大的空间数据,将其转化为研究中的实用工具。 阅读详情

变态跳台阶

题目描述

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

解题思路

f(1) = 1
f(2) = 2= f(1) + 1
f(3) = f(2)+f(1) +1
推出 f(n) = f(n-1)+ f(n-2)+…+ f(1)+1 f(n) = 2f(n-1)
因此

序号方法
1递归方法
2非递归
3推表达式
  1. 递归方法
    f(n) = f(n-1)+ f(n-2)+…+ f(1)+1
public class Solution {
    public int JumpFloorII(int target) {
        if(1 == target){
            return 1;
        }else{
            int sum = 0;
            for(int i = 1; i < target; i++ ){
                sum += JumpFloorII(i);
            }
            sum += 1;
            return sum;
        }
    }
}
  1. 将递归转化为非递归,双重循环
public class Solution {
    public int JumpFloorII(int target) {
        if(0 == target){
            return 0;
        }
        int f[] =new int[target+1];
        for(int i = 1; i < target+1; i++ ){
            int sum  = 0;
            for(int j = 1; j< i; j++){
                sum += f[j];
            }
            f[i] = sum + 1;
        }
        return f[target];
    }
}
  1. 分析出递推公式 f(n) = 2f(n-1) 因为 f(1) = 1 ,f(n) =2 ^(n-1)
public class Solution {
    public int JumpFloorII(int target) {
        if(0 == target){
            return 0;
        }else if( 1 == target){
            return 1;
        }else{
            int f[] = new int [target + 1];
            f[1] = 1;
            for(int i = 2; i< target + 1;i++){
                f[i] = f[i-1] * 2;
            }
            return f[target];
        }
    }
}

这次三种方法时间都很短 可能测试用例的问题
19 ms 9300K

5分钟快速搭建:使用ros1_bridge实现ROS2容器与ROS1主机的无缝通信 本文详细介绍了如何在5分钟内快速搭建基于ros1_bridge的通信方案,实现运行在Docker容器中的ROS2节点与宿主机ROS1系统的无缝数据交换。通过环境隔离、Docker容器化部署及选择性桥接配置,该方案能有效整合新旧系统,避免大规模代码重构,是机器人项目渐进式升级的实用策略。 阅读详情

相关推荐

从零开始构建AURIX TC397开发环境:硬件选型与IDE配置全攻略

本文详细介绍了如何从零开始构建AURIX TC397开发环境,涵盖硬件选型、IDE配置及外设驱动开发等关键步骤。针对TriCore架构的高性能特性,提供了开发板选型建议、AURIX Development Studio(ADS)安装配置指南,以及GPIO和CAN FD驱动的实战代码示例,帮助开发者快速上手TC397系列微控制器的开发工作。

7up55的博客 205

09 图解剑指Offer 变态跳台阶 Java题解

08 图解剑指Offer 青蛙跳台阶 Java题解09 图解剑指Offer 变态跳台阶 Java题解题目链接题目描述题解:图解:代码:复杂度 09 图解剑指Offer 变态跳台阶 Java题解 题目链接 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 题解: 可以想像青蛙还有最后一步就跳到n阶,由于青蛙可以最多跳n阶,所以青蛙跳上n阶台阶的方法等于之前所有阶跳台阶跳法的总和。由此可推导如下公式: f(n) = f(n - 1) +f(

Vaxue的博客 228

差分放大电路的计算

反馈,对于运算放大电路来说,运放工作在线性区,所以这里一定是负反馈,没有反馈(开环)或者是正反馈,那是比较器电路而不是放大电路,这时候运放工作在饱和区或称为非线性工作区,正因为饱和,输出才是电源电压的幅值。图2是一种带正反馈的运放电路,这里就不能叫运算放大电路了,因为运放的开环放大倍数理想是无限大,当然实际中不可能无限大,所以如下结构是迟滞电压比较器,运放工作在非线性区或饱和区。实际应用电路中,我们为了简化计算,也是用最简方法计算,经常使用的电路也是上述电路,令电阻相等关系,简化计算。

qq_40170041的博客 353

剑指offer—09变态跳台阶(Java)

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 public class Solution { public int JumpFloorII(int target) { if(target == 0){ //没有台阶 return 0; } if(target == 1){ //一个台阶 return 1; } if(tar...

qq_30242987的博客 116

Cocos Creator 3D音频定位实战:从原理到沉浸感实现

3D音频定位是游戏开发中实现沉浸感的关键技术,其核心原理基于HRTF(头部相关传输函数)模型,模拟声音在空间中的传播与双耳感知差异。这项技术通过赋予声音空间坐标、距离衰减和方向属性,将音频从背景元素提升为可交互的环境线索,极大增强了虚拟世界的真实感与玩家的空间认知。在工程实践中,开发者需要深入理解声源、听者、衰减曲线与多普勒效应等基础概念,并合理运用音频池、优先级管理与动态混音等技术手段来平衡效果与性能。对于Cocos Creator开发者而言,无论是使用引擎原生的AudioSource组件构建轻量级方案,

weixin_30972263的博客 293

CoppeliaSim+matlab+simulink七轴机械臂仿真

七轴机械臂vrep+matlab+simulink 仿真

a1233219的博客 3548

变态跳台阶--剑指offer09(java实现)

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路 递归实现 源码 public class Solution { public int JumpFloorII(int target) { int res = a(target); return res; } pu...

妖言的博客 162

手把手教你学Simulink——电机电磁兼容与可靠性场景示例:基于Simulink的电机噪声抑制控制仿真

本文带你完成了电机噪声抑制控制的Simulink仿真,实现了:✅ 揭示了电磁噪声从电流到声音的传递机理✅ 搭建了含死区、固定载波等噪声源的高保真模型随机PWM(消除啸叫)谐振控制器(抑制5/7次嗡鸣)谐波注入(降低THD) ✅ 通过综合方案将噪声降低10 dB以上(感知响度减半!) ✅ 为产品静音品质提升提供可落地的控制方案。

MHD0815的博客 94

09(2) 变态跳台阶 --《剑指Offer》(Java版)

github地址 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 这道题的简化版本就是斐波那契数列. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 通过简单的找规律就可以发现,第n层的可能性是前n-1层的可能性之和+1. 所以公式:f(n)...

过道 351

PCB板设置20H 原则理解

20H原则是PCB设计中抑制EMI辐射的关键方法,要求电源层比相邻地层内缩20倍介质厚度(20H)。在四层板中实现20H原则需采用S-G-P-S层叠结构,确保GND与PWR紧邻。具体步骤包括:确定GND-PWR间介质厚度H,计算20H值(通常80-120mil),并在设计软件中将电源层四周内缩20H,同时保持地层完整不内缩。注意避免常见误区,如混淆介质厚度、地层内缩等。该原则能有效限制边缘场辐射,降低EMI干扰,是四层板EMC设计的重要规范。

qq_37999850的博客 693

数字电路逻辑与设计实验三 译码器和数据选择器

1. 译码器功能测试 将 74LS139 按图 3.1 接线,按表 3.2 输入电平分别置位,填输出状态表。 2. 译码器转换 将双 2-4 线译码器转换为 3-8 线译码器。 (1)画出转换电路图。 (2)在实验箱上接线并验证设计是否正确。 (3)设计并填表写该 3-8 线译码器功能表,画出输入、输出波形。 3. 数据选择器的测试及应用 (1) 将双 4 选 1 数据选择器 74LS153 参照图 3.2 接线,测试其功能并填写功能表 3.3。 (2)将实验箱脉冲信号源中固定连续脉冲 4 个不

欢迎交流学习心得 3085

09高级跳台阶–剑指offer, java版

09高级跳台阶–剑指offer, java版 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 f(1)=1 f(2)=2 f(3)=f(2)+f(1)+1=4 (第一次跳1级;第一次跳2级;第一次跳3级) f(4)=f(3)+f(2)+f(1)+1=8 f(5)=f(4)+f(3)+f(2)+f(1)+1=16 … f(n...

sexy_orange的博客 251

使用R语言中的NbClust包确定最佳聚类簇数

聚类分析是一种常用的数据分析技术,它将相似的数据点分组成不同的簇。NbClust包是R语言中一个强大的工具,它提供了多种方法来帮助我们确定最佳的聚类簇数。综上所述,使用R语言中的NbClust包可以帮助我们确定最佳的聚类簇数。通过选择适当的聚类算法和评估指标,我们可以更好地理解数据集的结构和模式,并根据需要进行进一步的分析和解释。此外,NbClust包还提供了其他函数和参数,用于执行不同的聚类算法、选择不同的评估指标等。安装完毕后,我们需要加载NbClust包,以便使用其中的函数。函数来确定最佳聚类簇数。

2301_79326559的博客 2279

剑指Offer JZ09 变态跳台阶(数列推导)

题目来源:牛客网-剑指Offer专题题目地址:变态跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 题目解析一:直接推导 本质上是斐波那契数列的变种,普通跳台阶是一步与两步,问题规模缩小到分成最后要跳到第 n 阶可以跳两次或者一次去求解,所以,在普通跳台阶,设置两个临时变量存下跳一次或者两次时,前面会有多少种可能的结果 dp 就是可以由什么状态推导出最后的状态,斐波那契数列是由前两种状态,而这里就是由前 n - 1 种状态推导出

学无止境,勤则可达;志存高远,恒亦能成! 256

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

剑指offer(1-10题)详解

文章目录01二维数组的查找02替换空格03从尾到头打印链表04重建二叉树★05 用两个栈实现队列06旋转数组的最小数字07 斐波那契数列08 跳台阶09 变态跳台阶10 矩阵覆盖 欢迎关注个人数据结构专栏哈 微信公众号:bigsai 01二维数组的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数...

bigsai 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

剑指offer——9、变态跳台阶(java)

题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 先自己算一下: n=1的时候,1种跳法。 n=2的时候,2种跳法。 n=3的时候,4种跳法。 n=4的时候,8种跳法。 n=5的时候,16种跳法。 是有规律的!!!于是: 代码(递归解法与普通解法) public class test09 { public static v...

weixin_42924812的博客 231

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

[2021校招必看之Java版《剑指offer》-09] 变态跳台阶

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

学哥斌的博客 237

如何系统掌握剑指Offer:从算法思维到面试实战的完整指南

对于正在准备技术面试的中级开发者来说,算法刷题常常面临三大困境:题目海量无从下手、知识点零散难以系统化、面试场景下思维难以快速转换。LeetCode-Book项目正是为解决这些痛点而生,它通过系统化的算法训练体系,帮助开发者高效掌握《剑指Offer》核心考点,从算法思维培养到面试实战应对提供完整解决方案。 ## 项目价值与核心优势 LeetCode-Book项目整合了《剑指Offer》、《图解

gitblog_01099的博客 360

剑指Offer目录

每天至少五道面试题~~~java实现 剑指Offer01~赋值运算符函数 剑指Offer02~单例设计模式 剑指Offer03~数组中重复的数字 剑指Offer04~ 二维数组中查找目标值 剑指Offer05~替换字符串中的空格 剑指Offer06~ 从尾到头打印链表(用栈的思想实现链表的倒序输出) 剑指Offer07~ 由前序和中序遍历重建二叉树 剑指Offer08~ ...

TRX的博客 501

Java实现剑指offer

文章目录03_01_DuplicationInArray找出数组中重复的数字题目描述解法解法一解法二解法三测试用例03_02_DuplicationInArrayNoEdit不修改数组找出重复的数字题目描述解法解法一解法二测试用例04_FindInPartiallySortedMatrix二维数组中的查找题目描述解法测试用例05_ReplaceSpaces替换空格题目描述解法解法一解法二【推荐】测...

ifeng 581

【剑指offer(第二版)刷题记录】

记录剑指offer第二版的刷题情况 不断更新.......

m0_46880425的博客 386

《剑指offer》Java版目录

我会将其中我认为最高频的加上 * 号,但是仍然建议所有题目都能熟练的写出。 03 二维数组中的查找 04.替换空格 * 05.从尾到头打印链表 (非常非常常见的栈入门题[递归也可以]) 06. 前序+中序重建二叉树 (考察对树的基础知识的掌握程度) 07. 用两个栈实现队列 08.旋转数组的最小数字 (考察的是非正常情况的查找,查找必然不离二分/树(尤其是短String的查找,离不开字典树))...

过道 590

剑指offer【Java版】持续更新中

03 数组中重复的数字 class Solution { public int findRepeatNumber(int[] nums) { // 数组的length是属性 int n = nums.length; for(int i = 0; i < n; ){ if(nums[i] != i && nums[nums[i]] != nums[i]){ //交换

姚军 314

剑指Offer+第9题+斐波那契数列+java

思路   如果直接写递归函数,由于会出现很多重复计算,效率非常底,不采用。   要避免重复计算,采用从下往上计算,可以把计算过了的保存起来,下次要计算时就不必重复计算了:先由f(0)和f(1)计算f(2),再由f(1)和f(2)计算f(3)……以此类推就行了,计算第n个时,只要保存第n-1和第n-2项就可以了。 书里面有同时提到了两个问题: 1:青蛙跳台阶; 2:矩形匹配问题 (实际上...

Quantum_Dog的博客 268

剑指Offer-总目录

剑指Offer-01.二维数组中的查找

菜不是原罪 490

剑指Offer-23.二叉搜索树的后序遍历序列

二叉搜索树的后序遍历序列 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路 递归的方式:因为二叉搜索树 的后序遍历最后一个元素是根节点,根据根节点的大小,进行从第一个元素到第一个比元素大的元素,后面的元素 public class Solution { //左右 public...

菜不是原罪 470
上一篇: 剑指Offer-08.跳台阶
下一篇: 剑指Offer 矩形覆盖 (Java)
happytaohaha
博客等级 码龄9年 37粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值