训练跳跃(青蛙跳台阶),剑指offer,力扣

目录

题目地址:

题目: 青蛙跳台阶问题

我们直接看题解吧:

相似题目,斐波那契数列:

解题方法:

难度分析:

审题目+事例+提示:

解题思路:

代码实现:

小鸡识补充


题目地址:

LCR 127. 跳跃训练 - 力扣(LeetCode)

难度:简单

今天刷训练跳跃(青蛙跳台阶),大家有兴趣可以点上看看题目要求,试着做一下

题目: 青蛙跳台阶问题

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

答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

我们直接看题解吧:

相似题目,斐波那契数列:

斐波那契数列,剑指offer,力扣-CSDN博客

解题方法:

方法是动态规划(循环求余法)

难度分析:

这道题目正在难点在于找出跳跃台阶或者格子的规律,其本质还是求斐波那契数列。

审题目+事例+提示:

结果可能过大,因此结果需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

解题思路:

在一般情况下,可以把n级台阶的跳法看成n的函数,记为f(n),那么一般情况下,一开始我们有两种不同的选择:

  1. 第一步只跳一级,此时跳法数目等于后面剩下的n-1级 台阶的跳法数目,即f(n-1);
  2. 第一步跳两级,那么跳法数目等于后面剩下的n-2级台阶的跳法数目,即f(n-2)。

所以f(n)=f(n-1)+f(n-2)。

或者这样理解:

第一步只跳一级,n-1个台阶有f(n-1)种跳法,最后还剩一个台阶,最后青蛙只能最后一跳

第一步跳两级,n-2个台阶有f(n-2)种跳法,最后剩余二个台阶,有两种跳法: 

                   ·一次跳两阶   

                    ·一次跳一个台阶 但是这种跳法其实已经在n-1个台阶里包含了,

所以 f(n)=f(n-1)+f(n-2)

这道题与斐波那契数列稍微不同点在于起始点的不同

阶梯跳跃训练:f(0)=1,f(1)=1,f(2)=2...

斐波那契数列:f(0)=0,f(1)=1,f(2)=1...

代码实现:

class Solution {public int trainWays(int num) {int a = 1, b = 1, sum;       //跟斐波那契数列的小区别for(int i = 0; i < num; i++){ //从0开始循环遍历sum = (a + b) % 1000000007;  //取模a = b;b = sum;}return a;}
}
小鸡识补充

为什么res要模1000000007?

 因为这个数字是10位的最小质数,上面的代码并没有问题,只是数字太大会造成溢出,需要将计算结果 % 1000000007才能保证得出的结果在int 范围中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/155450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机弱网测试工具:Charles

我们在测试app的时候&#xff0c;需要测试弱网情况下的一些场景&#xff0c;那么使用Charles如何设置弱网呢&#xff0c;请看以下步骤&#xff1a; 前提条件&#xff1a; 手机和电脑要在同一局域网内 Charles连接手机抓包 一、打开Charles&#xff0c;点击代理&#xff0c;…

如何搭建测试环境?一文解决你所有疑惑!

什么是测试环境 测试环境&#xff0c;指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称&#xff0c;简而言之&#xff0c;测试环境硬件软件网络数据准备测试工具。 硬件&#xff1a;指测试必需的服务器、客户端、网络连接等辅助设备。 软件&#…

Java 省考试院自学考试考籍管理系统

1) 项目简介 考籍管理系统是省考试院自学考试管理系统的一部分&#xff0c;包括考生考籍档案管理、考生免考管理、课程顶替、考籍转入转出管理、毕业管理和日志管理等功能模块。该项目的建设方便和加强了省考试院对自学考试考籍的一系列管理操作&#xff0c;社会效应明显。…

React函数组件状态Hook—useState《进阶-对象数组》

React函数组件状态-state 对象 state state 中可以保存任意类型的 JavaScript 值&#xff0c;包括对象。但是&#xff0c;你不应该直接修改存放在 React state 中的对象。相反&#xff0c;当你想要更新⼀个对象时&#xff0c;你需要创建⼀个新的对象&#xff08;或者将其拷⻉⼀…

股票指标信息(六)

6-指标信息 文章目录 6-指标信息一. 展示股票的K线图数据,用于数据统计二. 展示股票指标数据,使用Java处理,集合形式展示三. 展示股票目前的最新的指标数据信息四. 展示股票指标数据,某一个属性使用Java处理五. 展示股票的指标数据,用于 Echarts 页面数据统计六. 展示股票指标数…

【开题报告】基于uni-app的汽车租赁app的设计与实现

1.项目背景及意义 项目背景&#xff1a; 随着人们生活水平的提高&#xff0c;汽车租赁服务在城市中变得越来越普及。传统的租车方式存在一些问题&#xff0c;比如租车流程繁琐、费用不透明、选择有限等。因此&#xff0c;开发一款基于uni-app的汽车租赁app成为了满足用户需求…

MAX/MSP SDK学习05:A_GIMME方法

今天终于将A_GIMME方法部分的描述看懂了&#xff0c;上周因为太赶时间加上这文档很抽象一直没看懂。也就那么一回事&#xff0c;记录一下。 A_GIMME方法用于接收多个参数&#xff1a; #include "ext.h" // standard Max include, always required #include "…

vue3拖拽排序 使用 vuedraggable

vue.draggable.next vue3 拖拽排序 vue.draggable.next 下载 pnpm add vuedraggablenext使用 <script lang"ts" setup> import { reactive } from "vue"; import draggable from "vuedraggable";const list reactive([{id: 1,name: &…

在Uni-app中实现计时器效果

本文将介绍如何在Uni-app中使用Vue.js的计时器功能实现一个简单的计时器效果。 首先&#xff0c;我们需要创建一个包含计时器的组件。以下是一个基本的计时器组件示例&#xff1a; <template><div class"timer"><p>{{ formatTime }}</p><…

Android 12.0 默认授予应用权限

Android 12.0 默认授予应用权限 最近接到客户需求提到每当首次点开某个应用时都会弹出申请权限的弹窗&#xff0c;操作起来感觉很麻烦&#xff0c;需要将指定的这个应用默认授予权限&#xff0c;具体修改参照如下&#xff1a; frameworks/base/services/core/java/com/androi…

uniapp 微信小程序如何实现多个item列表的分享

以下代码是某个循环里面的item <button class"cu-btn" style"background-color: transparent;padding: 0;"open-type"share" :data-tree"item.treeId" :data-project"item.projectId"v-if"typeId1 && userI…

阿里云3M固定带宽服务器速度快吗?是否够用?

阿里云服务器3M带宽下载速度是384KB/秒&#xff0c;上传速度是1280KB/s&#xff08;折合1.25M/秒&#xff09;&#xff0c;3M固定带宽够用吗&#xff1f;对于一般流量不是太大的个人博客、企业官网、论坛社区、小型电商网站或搭建个人学习环境或测试环境是完全够用的&#xff0…

Spring AOP用法(待完善)

Cglib实现AOP // 切所有方法Testpublic void cglib1() {UserService target new UserService();// 通过cglib实现AOPEnhancer enhancer new Enhancer();enhancer.setSuperclass(UserService.class);// 定义额外逻辑&#xff0c;也就是代理逻辑// o:代理对象; method:被代…

mysql 怎么做定时备份 / mysql 备份 / sql文件导出

在MySQL数据库中&#xff0c;你可以使用不同的方法来定时备份数据库。以下是其中的一种方法&#xff0c;使用Linux系统中的cron任务和mysqldump命令来创建定时备份&#xff1a; 创建备份脚本&#xff1a; 首先&#xff0c;创建一个脚本文件&#xff0c;比如backup_script.sh&am…

【ceph】ceph集群的故障域是怎么快速修改导入导出

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

RedisConnectionFactory is required已解决!!!!

1.起因&#x1f936;&#x1f936;&#x1f936;&#x1f936; redis搭建完成后&#xff0c;准备启动主程序&#xff0c;异常兴奋&#xff0c;结果报错了&#xff01;&#xff01;&#xff01;&#xff01; 2.究竟是何原因 &#x1f62d;&#x1f62d;&#x1f62d;&#x1f…

关于在3dsmax中制作的模型导入UE后尺寸大小不对的问题

现象 在3dsmax中的基本单位为毫米 在UE中基本单位是厘米 我在3dsmax中创建一个长宽高均为1000mm的方块 然后导入到UE中的世界坐标原点 方块向X轴正方向移动100个单位100cm1000mm&#xff0c;按理来说&#xff0c;新方块的此时应该和旧方块是贴着的&#xff0c;但是现象确是两者…

「X」Embedding in NLP|初识自然语言处理(NLP)

从情感分析到信息提取&#xff0c;再到机器翻译、问答系统、聊天机器人……自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;的应用可谓复杂多样。向量数据库的加入&#xff0c;则为 NLP 注入了更多的可能性。 为了方便大家能够深入了解向量数…

【人工智能时代的刑法体系与责任主体概述】

第一节&#xff1a;引言 随着科技的快速发展&#xff0c;人工智能 (Artificial Intelligence, AI) 正日益成为我们生活中不可或缺的一部分。从自动驾驶汽车到语音助手&#xff0c;从智能家居到金融机器人&#xff0c;AI 的广泛应用正不断改变着我们的生活方式和社会结构。然而…