首页 > TAG信息列表 > 台阶

青蛙跳台阶

基础版 青蛙一次可以跳1级或者2级台阶,问跳到N级有多少种跳法 class Solution: def jumpFloor(self,n): if n < 1: return 0 if n == 1 or n == 2: return n a = 1 b = 2 tmp = 1 for i in range(2,n

青蛙跳台阶

1. 普通跳台阶 题目地址(70. 爬楼梯) https://leetcode.cn/problems/climbing-stairs/ 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1

动态规划之线性DP

线性DP 线性DP:是动态规划问题中的一类问题,指状态之间有线性关系的动态规划问题。 几道经典的启蒙题目: 1.爬楼梯 跳台阶 目前遇到的一些变式 a. 跳台阶不再限制只能跳1/2 而是可以直接跳N b. 跳台阶允许回退一个 2.数字三角形 给定一个如下图所示的数字三角形,从顶部出发,在每一结点

10.4 变态跳台阶

10.4 变态跳台阶 题目链接 牛客网 题目描述 一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级... 它也可以跳上 n 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 解题思路 动态规划 public int jumpFloorII(int target) { int[] dp = new int[target]; Arrays.fill

NIM游戏

注意NIM里面取走的石子 不一定是减去 根据题意 如果是整除 那可能是除去 可以拿走从任意一个堆 取走任意的石子,取走最后一个石子胜利 NIM博弈 对于先手:永远将奇数台阶保持不变 我永远看到奇数层不一致的 对手看到永远是 一致的 先手必胜需要每个值异或不等0 这样留给后手操作的就

746. 使用最小花费爬楼梯

  难度简单958 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费。   示例 1: 输入

java算法:青蛙跳台阶问题(经典算法)

问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 解决 class Solution { static int MOD=1000000007; public int numWays(int n) { /

有n步台阶,一次只能上1步或2步,共有多少种走法

  循环迭代:   1 public class steps { 2 public int js(int n) { 3 int one = 2; //初始化为第三级台阶最后跨一步的走法 4 int two = 1; //初始化为第三级台阶最后跨两步(一下迈过去两个台阶)的走法 5 int sum = 0;

【动态规划】【线性DP】 45. 跳跃游戏 II

45. 跳跃游戏 II - 力扣(LeetCode) (leetcode-cn.com) 下述均为对: 宫水三叶的题解的理解。原解释请直接 访问 我们知道最后一个点前面可能会有很多个点能够一步到达最后一个点。 也就是有 f[n−1]=min(f[n−k],...,f[n−3],f[n−2])+1 然后我们再来考虑集合 f[n−k],...,f[n−3],f

剑指 Offer 10- II. 青蛙跳台阶问题

题目 剑指 Offer 10- II. 青蛙跳台阶问题 代码 class Solution { public: int numWays(int n) { int a = 1, b = 1; while(n--) { int c = (a + b) % 1000000007; a = b; b = c; } return a; } };

746. 使用最小花费爬楼梯

746. 使用最小花费爬楼梯 题目链接:746. 使用最小花费爬楼梯(简单) 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼

上台阶——递归

使用递归将问题分成规模更小的子问题(简单):         #include <iostream> using namespace std; int n; int stairs(int n){ if(n<0){ return 0; } if(n == 0){ return 1; } return stairs(n-1)+stairs(n-2); } int main(){

剑指 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 思路:其实

#c语言 青蛙跳台阶 #

一只青蛙一次可以跳上1级台阶,也可以跳上2级。 求该青蛙跳上一个n级的台阶总共有多少种跳法。 解法一:递归法 #include <stdio.h> #include <stdlib.h> int f(int n){ int tem; if(n<=2) tem=n; else tem=f(n-1)+f(n-2); return tem; } i

青蛙跳台阶问题

1.规则:一只青蛙一次可以跳1个台阶,也可以跳2个台阶,求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果,考虑当n=0时,青蛙原地跳结果为1) (1).思路:当n=0时,青蛙原地跳共有一种跳法,当n=1时,可直接跳上台阶,共有1种 当n=2时,可一次跳上一级台阶,再次跳上二级台阶,也可直接跳上

【思特奇杯·云上蓝桥·算法集训营】第三周

1. 斐波那契数列   题目描述 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 1和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 1,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给你 n ,请计算 F(n) 。 #include<stdio.h> int F(int n) {

冰冰学习笔记:汉诺塔和青蛙跳台阶

汉诺塔: 汉诺塔问题就是有三个柱子ABC,A柱子上从小到大放有n个盘子,我们要把这n个盘中经过中间B柱子移动到C柱子上,并且大盘子在移动过程中不能放到小盘子上面,一次只移动一个盘子。 下面以三个盘子为例子,我们分析一下走法。 那如果有n个盘子呢? 经过抽象我们可以将问题简化成三部分

leetcode刷题:爬楼梯

题目: 分析: 通过分析得知,当台阶只有两层时,方式是两种。当台阶是1层时,方法有一中,三层时方法有三种。所以台阶每加一层(当为n层时),那么就方法就会变成爬n-2层和n-1层的方法数之和。 代码如下: int climbStairs(int n) { if(n==1) return 1; if(

746. 使用最小花费爬楼梯

动态规划 class Solution { public int minCostClimbingStairs(int[] cost) { /** * 最少有两个台阶,因此不用提前判断dp数组空指针异常的情况 * 索引从0开始 * dp[i]指的是到达第i个台阶并且向上爬所需要的最小费用 */

LeetCode——剑指 Offer 10- II. 青蛙跳台阶问题

一、题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 来源:力扣(LeetCode)

剑指 Offer 10- II. 青蛙跳台阶问题

剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(LeetCode) (leetcode-cn.com) 运行结果  代码 //提示:跳上n级台阶之前,要么在n-1级台阶,要么在n-2级台阶 class Solution { public: int numWays(int n) { if(n <= 1) return 1; int M = 1e9 + 7; int Fn_2

【思特奇杯·云上蓝桥-算法集训营】第2周 39阶台阶 Java

题目: 3. 第 39 级台阶 题目描述: 小明刚刚看完电影《第 39 级台阶》,离开电影院的时候,他数了数礼堂前的 台阶数,恰好是 39 级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上 1 个或 2 个台阶。先迈左脚,然后左右交替,最后一 步是迈右脚,也就是说一共要走偶数步。那么,上完

青蛙跳台阶问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 提示: 0 <= n <= 100 解: class

斐波拉契(算法)

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路:逆向思维 ;如果我从第n个台阶进行下台阶,下一步有2中可能,一种走到第n-1个台阶,一种是走到第n-2个台阶。            即 F(n) = F(n-1)+F(n-2); pu

青蛙跳台阶问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof著作权归领扣网络