剑指 Offer 10- II. 青蛙跳台阶问题(动态规划)

【算法】图解A* 搜索算法 A* 算法是启发式搜索算法,是根据Dijkstra算法改进而来。 问题引入 如下图所示,S为起始(start)节点,G为目标(goal)节点。 节点之间连线是两点的路径长度,如A到E的路径长度c(A,E) = 9。 节点旁的h值时当前节点到达目标节点(G)的预估值,如h(A)=15, 表示从当前点A到达目标点G的估计路径长度为15,此处h(x)即为启发函数,启发函数的设计有很多方法,具体可...... 阅读详情
/**
 *	剑指 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];
    }
}

并行计算:从概念起源到多层次架构设计及其发展历程的全面解析 20世纪70年代,第一台并行计算机于1972年产生(ILLIAC IV,伊利诺依大学),由64个处理器组成,可扩展性好,但可编程性差。如有21亩地需要除草,一个人一天只能除一亩地的草,那么需要21天才能除完草,这在现实中是不太可能的,因庄稼是有时间段的。其二是机群系统是高性能计算机的一种,它的技术基础和工业基础都是商品化和标准化。之所以称为“专用”,并不是说它们只能运行某种应用,是指它们的组成部件是专门设计的,它们的CPU板、内存板和I/O板,甚至操作系统,都是不能在其它系统中使用的。 阅读详情

相关推荐

ardupilot开发 --- mavlink签名加密 篇

ardupilot开发 --- mavlink签名加密

记录老板的每次pua,分享领导每天的毒鸡汤... 1237

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 阶...

weixin_34447182的博客 361

使用epiDisplay包中的logistic

其中的logistic.display函数可以用于获取逻辑回归模型的汇总统计信息,包括自变量的优势比和置信区间,以及回归系数的Wald检验的p值。最后,我们使用print函数打印出汇总统计信息。使用epiDisplay包中的logistic.display函数获取逻辑回归模型的汇总统计信息(包括自变量的初始和调整后的优势比及置信区间,回归系数的Wald检验的p值)- R语言。通过使用logistic.display函数,我们可以方便地获取逻辑回归模型的重要统计信息,并对自变量的影响进行解释和推断。

CyberJolt的博客 609

迷宫问题

迷宫问题 题目描述 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方。 010000 000100 001001 110000

m0_48126147的博客 880

YOLOv13结合Sobel边缘检测算子,实现EIEM(Edge Information Enhancement Module,边缘信息增强模块),强化空间特征提取

EIEM模块通过巧妙地结合Sobel边缘检测算子和现代卷积网络架构,实现了显式边缘信息增强的创新设计。这种方法不仅提高了网络对边缘特征的敏感性,还保持了良好的计算效率和模块化特性。 从技术实现角度看,EIEM展示了如何将经典计算机视觉算法无缝集成到深度学习框架中,为构建更强大、更可解释的视觉模型提供了新的思路。随着对边缘信息重要性认识的不断深入,以及对网络可解释性需求的增长,EIEM这样的显式特征增强模块将在未来的计算机视觉研究中发挥越来越重要的作用。

FJN110的博客 908

【Flink】FlinkCDC获取mysql数据时间类型差8小时时区解决方案

​ 1、背景: 在我们使用FlinkCDC采集mysql数据的时候,日期类型是我们很常见的类型,但是FlinkCDC读取出来会和数据库的日期时间不一致,情况如下 FlinkCDC获取的数据中create_time字段1694597238000转换为时间戳2023-09-13 17:27:18,而数据库中原始数据如下,并没有到下午5点,这就导致了FlinkCDC读出来的时间和数据库中实际的时间不一致的情况,与数据库对比可以发现,这里的时间戳与数据库时间刚好相差了 8 个小时,在实际生产中这种情况是不

一杯咖啡半杯糖的博客 3854

[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)

EchoooZhang的博客 376

基于 Verilog 的经典数字电路设计(10)三态门

三态门(Triple-State Gate)亦称 “三态输出门”、“三态门输出电路”,是一种重要的总线接口电路,具有高电平、低电平和高阻抗三种输出状态的门电路,不过我们通常在设计中比较少见。   三态指其输出既可以是一般二值逻辑电路,即正常的高电平(逻辑 1)或低电平(逻辑 0),又可以保持特有的高阻抗状态,高阻态相当于隔断状态(电阻很大,相当于开路)。

新芯设计的博客 1万+

剑指 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) = ..

Y_M的博客 499

基金估值核算系统三国杀:恒生 VS 赢时胜 VS 融选!

本文对比分析了恒生电子、赢时胜和融选科技三家金融科技公司的基金估值系统。恒生电子作为行业龙头,在公募基金领域占据较大份额,其新一代估值系统6.0采用微服务架构,自动化程度高;赢时胜在中型公募和券商资管领域优势明显,其V5.5系统在信创适配和复杂产品处理方面表现突出;融选科技作为新兴厂商,提供轻量化解决方案,适合中小型机构。文章从市场格局、系统定位、技术架构、成本构成和用户反馈五个维度进行深入比较,为金融机构选型提供参考。当前估值系统市场呈现"三国鼎立"格局,各具特色,选型需结合机构规模、

magbox520的博客 828

杰理SDK入门教程(一):SDK的四种编译方式的使用

杰理SDK提供了四种主要编译方式:1) JL Studio官方IDE,适合初学者;2) VS Code轻量级编辑器,需在SDK根目录打开;3) 命令行/脚本编译,灵活支持自动化;4) Code::Blocks开源IDE。每种方式都有详细操作指南,开发者可根据需求选择,初学者推荐从JL Studio开始熟悉编译流程。环境配置注意事项和编译成功标识均有明确说明,确保开发效率。

qq_42014563的博客 1153

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...

成长之路 1260

CMake入门教程【基础篇】在Windows、Linux上安装CMake

CMake如何下载与安装

小鱼酱的博客 2727

(动态规划) 剑指 Offer 10- II. 青蛙跳台阶问题 ——【Leetcode每日一题】

剑指 Offer 10- II. 青蛙跳台阶问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

weixin_43412762的博客 725

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

赖念安的博客 366

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

weixin_43399489的博客 686

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LeetCode–青蛙跳台阶问题

LeetCode–青蛙跳台阶问题 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 剑指 Offer 10- II. 青蛙跳台阶问题 主站70题 题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2示例 2: 输入:n = 7 输出

归子莫的博客 1166

剑指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-.

Turtle's trail 350

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-

qq_37766514的博客 310

剑指 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..

秋雨行舟 158

【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 =

izhxxx的博客 223

剑指 Offer 10- II. 青蛙跳台阶问题(动态规划思想)

剑指 Offer 10- II. 青蛙跳台阶问题(动态规划思想) 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 方法一、动态规划之自顶而下的备忘录法 因为涉及到重复子问题的递归计算很耗费时间,所以新建一个数组用于保存计算过的递归式的值,下次再遇到的时候直接查询值而不是递归计算 代码如下: var numWays = function (

weixin_45664402的博客 191

剑指 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/

伍粟的博客 373

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]:说明当前台阶可以由前一个台阶

hequnwang10的博客 680

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

weixin_53970851的博客 251

力扣剑指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 开始,之

Ctrl_kun的博客 268
上一篇: 动态规划入门总结
下一篇: 1025. 除数博弈(动态规划)
Lazy mode
博客等级 码龄10年 13粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值