/**
* 剑指 Offer 10- II. 青蛙跳台阶问题
* @author wsq
* @date 2020/10/14
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
示例 1:
输入:n = 2
输出:2
示例 2:
输入:n = 7
输出:21
链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof
*/
package com.wsq.dp;
public class NumWays {
/**
* 动态规划问题
* 1.确定状态:
* 最后一步:可以从f[n-1] 或者 f[n-2] 跳转到f[n]
* 子问题:f[n-1] 以及 f[n-2] 的数量是多少
* 2.确定转移方程
* f[n] = f[n-1] + f[n-2];
* 3.定义初始化条件
* f[0] = 1
* f[1] = 1
* 4.计算顺序:
* 从小到大
* @param n
* @return
*/
public int numWays(int n) {
if(n == 0){
return 1;
}
int[] f = new int[n + 1];
f[0] = 1;
f[1] = 1;
for(int i = 2; i < n + 1; i++){
f[i] = f[i - 1] + f[i - 2];
if(f[i] > 1000000007){
f[i] = f[i] % 1000000007;
}
}
return f[n];
}
}
相关推荐
ardupilot开发 --- mavlink签名加密 篇
ardupilot开发 --- mavlink签名加密
leetcode 台阶_leetcode-爬楼梯(动态规划)
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶...
使用epiDisplay包中的logistic
其中的logistic.display函数可以用于获取逻辑回归模型的汇总统计信息,包括自变量的优势比和置信区间,以及回归系数的Wald检验的p值。最后,我们使用print函数打印出汇总统计信息。使用epiDisplay包中的logistic.display函数获取逻辑回归模型的汇总统计信息(包括自变量的初始和调整后的优势比及置信区间,回归系数的Wald检验的p值)- R语言。通过使用logistic.display函数,我们可以方便地获取逻辑回归模型的重要统计信息,并对自变量的影响进行解释和推断。
迷宫问题
迷宫问题 题目描述 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方。 010000 000100 001001 110000
YOLOv13结合Sobel边缘检测算子,实现EIEM(Edge Information Enhancement Module,边缘信息增强模块),强化空间特征提取
EIEM模块通过巧妙地结合Sobel边缘检测算子和现代卷积网络架构,实现了显式边缘信息增强的创新设计。这种方法不仅提高了网络对边缘特征的敏感性,还保持了良好的计算效率和模块化特性。 从技术实现角度看,EIEM展示了如何将经典计算机视觉算法无缝集成到深度学习框架中,为构建更强大、更可解释的视觉模型提供了新的思路。随着对边缘信息重要性认识的不断深入,以及对网络可解释性需求的增长,EIEM这样的显式特征增强模块将在未来的计算机视觉研究中发挥越来越重要的作用。
【Flink】FlinkCDC获取mysql数据时间类型差8小时时区解决方案
1、背景: 在我们使用FlinkCDC采集mysql数据的时候,日期类型是我们很常见的类型,但是FlinkCDC读取出来会和数据库的日期时间不一致,情况如下 FlinkCDC获取的数据中create_time字段1694597238000转换为时间戳2023-09-13 17:27:18,而数据库中原始数据如下,并没有到下午5点,这就导致了FlinkCDC读出来的时间和数据库中实际的时间不一致的情况,与数据库对比可以发现,这里的时间戳与数据库时间刚好相差了 8 个小时,在实际生产中这种情况是不
[S]O-10-2 青蛙跳台阶问题
[S]O-10-2 青蛙跳台阶问题 1.问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 : 输入:n = 2 输出:2 输入:n = 7 输出:21 输入:n = 0 输出:1 2.解决方法 同10-1那道题 动态规划 题解参考link:Link 此类求 多少种可能性 的题目一般递推性质 ,即 f(n) 和 f(n−1)…f(1)
基于 Verilog 的经典数字电路设计(10)三态门
三态门(Triple-State Gate)亦称 “三态输出门”、“三态门输出电路”,是一种重要的总线接口电路,具有高电平、低电平和高阻抗三种输出状态的门电路,不过我们通常在设计中比较少见。 三态指其输出既可以是一般二值逻辑电路,即正常的高电平(逻辑 1)或低电平(逻辑 0),又可以保持特有的高阻抗状态,高阻态相当于隔断状态(电阻很大,相当于开路)。
剑指 offer 10 -2 青蛙跳台阶问题(动态规划+循环求余法)
1, 题目描述 2. 算法思路 此题使用动态规划,分析后会得知,原理就是斐波那契,同上一篇的内容一致 首先分析最后一步的情况,青蛙有两种可能:跳1级 或 跳2级 跳1级,就剩n - 1 台阶,有f(n -1)种跳法 跳2级,就剩n - 2 台阶,有f(n -2)种跳法 那么f(n) = f(n - 1) + f(n - 2) ---------果然是斐波那契,那接下来就好办了 不过,本题与斐波那契存在唯一的差异:就是初始状态不同 斐波那契: f(0) = 0, f(1) = ..
基金估值核算系统三国杀:恒生 VS 赢时胜 VS 融选!
本文对比分析了恒生电子、赢时胜和融选科技三家金融科技公司的基金估值系统。恒生电子作为行业龙头,在公募基金领域占据较大份额,其新一代估值系统6.0采用微服务架构,自动化程度高;赢时胜在中型公募和券商资管领域优势明显,其V5.5系统在信创适配和复杂产品处理方面表现突出;融选科技作为新兴厂商,提供轻量化解决方案,适合中小型机构。文章从市场格局、系统定位、技术架构、成本构成和用户反馈五个维度进行深入比较,为金融机构选型提供参考。当前估值系统市场呈现"三国鼎立"格局,各具特色,选型需结合机构规模、
杰理SDK入门教程(一):SDK的四种编译方式的使用
杰理SDK提供了四种主要编译方式:1) JL Studio官方IDE,适合初学者;2) VS Code轻量级编辑器,需在SDK根目录打开;3) 命令行/脚本编译,灵活支持自动化;4) Code::Blocks开源IDE。每种方式都有详细操作指南,开发者可根据需求选择,初学者推荐从JL Studio开始熟悉编译流程。环境配置注意事项和编译成功标识均有明确说明,确保开发效率。
Leetcode 青蛙跳台阶问题
leetcode 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 思路: 假设跳上n-1个台阶的方法有f(n-1)种,那么跳n个台阶的方法有f(n-1)+f(n-2)种,即先跳n-2个台阶,最后跳2级和先跳n-1个台阶,最后跳一级 f(0)=0...
CMake入门教程【基础篇】在Windows、Linux上安装CMake
CMake如何下载与安装
(动态规划) 剑指 Offer 10- II. 青蛙跳台阶问题 ——【Leetcode每日一题】
剑指 Offer 10- II. 青蛙跳台阶问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
【算法-剑指 Offer】10- II. 青蛙跳台阶问题(动态规划)
剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(LeetCode) 发布:2021年9月17日19:53:49 问题描述及示例 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lco
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
剑指 Offer 10- II. 青蛙跳台阶问题——C++动态规划
解题思路 青蛙跳到第n层台阶可以通过两种途径: 青蛙跳到第n-2层台阶上,然后跳2级 青蛙跳到第n-1层台阶上,然后跳1级 所以使用动态规划,且仅需保留n前面的两个值,转移方程:f(n)=f(n-1)+f(n-2) 代码 class Solution { public: int numWays(int n) { if(n==0) return 1; int dp[2]={1,2}; while(--n){ int tm
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
LeetCode–青蛙跳台阶问题
LeetCode–青蛙跳台阶问题 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 剑指 Offer 10- II. 青蛙跳台阶问题 主站70题 题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2示例 2: 输入:n = 7 输出
剑指Offer-动态规划 10- II. 青蛙跳台阶问题
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 提示: 0 <= n <= 100 把这个问题抽象出来: 设跳上n级台阶有f(n)种跳法,最后一步只有2中情况要不是1级,要不是2级。 当为1时,其他n-.
LeetCode 剑指 Offer 10- II. 青蛙跳台阶问题(动态规划,循环求余)
LeetCode 剑指 Offer 10- II. 青蛙跳台阶问题 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 提示: 0 <= n <= 100 前言 本题与 面试题10-
剑指 Offer 10- II. 青蛙跳台阶问题(动态规划)1
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 提示: 0 <= n <= 100 解法一:动态规划 时间复杂度 O(N): 计算 f(n)需循环 n次,每轮循环内计算操作使用 O(1)。 空间复杂度 O..
【leetcode 动态规划 C++】【剑指 Offer】10- II. 青蛙跳台阶问题
剑指 Offer 10- II. 青蛙跳台阶问题 class Solution { public: const int mod = 1e9 + 7; int numWays(int n) { if(n == 0 || n == 1) return 1; int a = 1, b = 1; for(int ii = 2; ii <= n; ii++) { int temp = b; b =
剑指 Offer 10- II. 青蛙跳台阶问题(动态规划思想)
剑指 Offer 10- II. 青蛙跳台阶问题(动态规划思想) 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 方法一、动态规划之自顶而下的备忘录法 因为涉及到重复子问题的递归计算很耗费时间,所以新建一个数组用于保存计算过的递归式的值,下次再遇到的时候直接查询值而不是递归计算 代码如下: var numWays = function (
剑指 Offer 10- II. 青蛙跳台阶问题(C++) 动态规划
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 提示: 0 <= n <= 100 注意:本题与主站 70 题相同:https://leetcode-cn.com/problems/climbing-stairs/
70. 爬楼梯(剑指 Offer 10- II. 青蛙跳台阶问题)-动态规划
一、题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入:n = 3 输出:3 解释:有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶 二、解题 动态规划 dp[i] = dp[i-1] + dp[i-2]:说明当前台阶可以由前一个台阶
Golang算法-动态规划(剑指 Offer 10- II. 青蛙跳台阶问题)
动态规划 剑指 Offer 10- II. 青蛙跳台阶问题 func numWays(n int) int { //例外条件 if n < 0 { return -1 } if n == 0{ return 1 } if n == 1{ return 1 } //初始化条件,注意这里容量大小,题目中存在dp[0]=1这个条件,当n==2时,dp数组长度为3,所以这里len(dp)==n+1
力扣剑指Offer 第8天 动态规划(简单)剑指 Offer 10- I. 斐波那契数列 剑指 Offer 10- II. 青蛙跳台阶问题 剑指 Offer 63. 股票的最大利润
力扣剑指Offer 第8天 动态规划(简单)剑指 Offer 10- I. 斐波那契数列 剑指 Offer 10- II. 青蛙跳台阶问题 剑指 Offer 63. 股票的最大利润 剑指 Offer 10- I. 斐波那契数列 题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之
1237



被折叠的 条评论
为什么被折叠?



