首页 > 其他分享 >力扣-爬楼梯

力扣-爬楼梯

时间:2023-08-26 23:32:41浏览次数:24  
标签:楼顶 爬楼梯 示例 int 力扣 方法 输入

假设你正在爬楼梯。需要 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 阶

 

提示:

  • 1 <= n <= 45
public int climbStairs(int n) {
    int p = 0, q = 0, r = 1; // 初始化三个变量,用于保存不同阶数的爬楼梯方法数
    
    for(int i = 1; i <= n; i++) {
        p = q; // 保存上一级台阶的方法数
        q = r; // 保存当前级台阶的方法数
        r = p + q; // 计算当前级台阶的方法数,等于上一级台阶和当前级台阶方法数之和
    }
    
    return r; // 返回最终的解,即 n 级台阶的方法数
}

标签:楼顶,爬楼梯,示例,int,力扣,方法,输入
From: https://blog.51cto.com/u_16199760/7246586

相关文章

  • 力扣-2. 两数相加(C++题解)
    题目链接:https://leetcode.cn/problems/add-two-numbers/description/给你两个 非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之......
  • 力扣-228. 汇总区间(C++题解)
    题目链接:https://leetcode.cn/problems/summary-ranges/description/给定一个 无重复元素的 有序整数数组\(nums\)。返回恰好覆盖数组中所有数字的最小有序区间范围列表 。也就是说,\(nums\)的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于\(......
  • 力扣---228. 汇总区间
    给定一个 无重复元素 的 有序 整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输......
  • 力扣---1448. 统计二叉树中好节点的数目
    给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。「好节点」X定义为:从根到该节点X所经过的节点中,没有任何节点的值大于X的值。 示例1:输入:root=[3,1,4,3,null,1,5]输出:4解释:图中蓝色节点为好节点。根节点(3)永远是个好节点。节点4->(3,4)是路......
  • 【力扣】赎金信
    https://leetcode.cn/problems/ransom-note/submissions/1classSolution{2publicbooleancanConstruct(StringransomNote,Stringmagazine){3//两个字符串长度不一样,则返回true4if(ransomNote.length()>magazine.length()){5......
  • 力扣-x的平方根
    给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。注意:不允许使用任何内置指数函数和算符,例如 pow(x,0.5) 或者 x**0.5 。 示例1:输入:x=4输出:2示例2:输入:x=8输出:2解释:8的算术平方根是2.8284......
  • 力扣-加一
    给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。 示例 1:输入:digits=[1,2,3]输出:[1,2,4]解释:输入数组表示数字123。示例 2:输入:digit......
  • 力扣-4-寻找两个正序数组的中位数
    题目要求O(log(m+n))的时间复杂度知道了两个数组的长度,那么中位数的下标以及如何计算是可以确定的,给出的是两个正序数组,如果使用双指针,从两个数组头开始扫描并比较,找出合并后第K小的数字,时间复杂度是多少?时间复杂度是O((M+N)/2),这个目标还不及题目的要求,看到logN就会想到二分......
  • 力扣101. 对称二叉树
    给你一个二叉树的根节点 root ,检查它是否轴对称。 示例1:输入:root=[1,2,2,3,4,4,3]输出:true 示例2:输入:root=[1,2,2,null,3,null,3]输出:false  提示:树中节点数目在范围 [1,1000] 内-100<=Node.val<=100 康复训练1/*2*@lcapp=......
  • 力扣-搜索插入元素
    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(logn) 的算法。 示例1:输入:nums=[1,3,5,6],target=5输出:2示例 2:输入:nums=[1,3,5,6],target=2输出:1示......