算法-爬楼梯

简介: 如果爬楼梯可以一次爬 1 级或是一次爬 2 级 输入:楼梯的总级数 输出:一共可能有多少种爬法? 难度:简单例: 输入:2 输出:2 ① 1 + 1 ② 2输入:3 输...

如果爬楼梯可以一次爬 1 级或是一次爬 2 级
输入:楼梯的总级数
输出:一共可能有多少种爬法?
难度:简单

例:
输入:2
输出:2
① 1 + 1
② 2

输入:3
输出:3
① 1 + 1 + 1
② 2 + 1
③ 1 + 2

答案:
这道题可以使用动态规划的思想解决

这里写图片描述

class Solution {
    static int[] results = new int[10000];

    public int climbStairs(int n) {
        if(n <= 0) return 0;
        if(n == 1) return 1;
        if(n == 2) return 2;
        if(results[n - 1] == 0) results[n - 1] = climbStairs(n - 1);
        if(results[n - 2] == 0) results[n - 2] = climbStairs(n - 2);
        return results[n - 1] + results[n - 2];
    }
}

其实这道题的实质就是求斐波那契数列
使用简单的 for 循环也可以解决(这同样是动态规划思想)

class Solution {
    public int climbStairs(int n) {
        if(n <= 0) return 0;
        if(n == 1) return 1;
        int pre = 1;
        int cur = 2;
        for(int i = 2;i < n; i++){
            int tmp = cur;
            cur = cur + pre;
            pre = tmp;
        }
        return cur;
    }
}
目录
相关文章
|
存储 算法 Java
算法学习入门Day1_Leetcode_70 爬楼梯 ~还是辣么滴丝滑 雀氏润
算法学习入门Day1_Leetcode_70 爬楼梯 ~还是辣么滴丝滑 雀氏润
算法学习入门Day1_Leetcode_70 爬楼梯 ~还是辣么滴丝滑 雀氏润
|
算法 JavaScript 前端开发
图解算法 | LeetCode第 70 题爬楼梯问题
图解算法 | LeetCode第 70 题爬楼梯问题
112 0
|
算法
leetcode算法70.爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?本文带大家解决这个问题。
104 0
leetcode算法70.爬楼梯
☆打卡算法☆LeetCode 70、爬楼梯 算法解析
“假设你在爬楼梯,需要n阶到达楼顶,每次可以怕1到2阶,有多少种方法爬到楼顶呢。”
|
算法
算法题每日一练---第38天:爬楼梯的最少成本
请找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。
118 0
算法题每日一练---第38天:爬楼梯的最少成本
|
算法 Java C#
【小Y学算法】⚡️每日LeetCode打卡⚡️——22.爬楼梯
📢前言 🌲原题样例 🌻C#方法:动态规划 🌻Java 方法一:动态规划 🌻Java 方法二:矩阵快速幂 💬总结 🚀往期优质文章分享
【小Y学算法】⚡️每日LeetCode打卡⚡️——22.爬楼梯
|
算法 测试技术 索引
一步一步写算法(之爬楼梯)
原文: 一步一步写算法(之爬楼梯) 【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】     前两天上网的时候看到一个特别有意思的题目,在这里和朋友们分享一下:     有一个人准备开始爬楼梯,假设楼梯有n个,这个人只允许一次爬一个楼梯或者一次爬两个楼梯,请问有多少种爬法?     在揭晓答案之前,朋友们可以自己先考虑一下:     这个人爬n层楼梯,那么它也不是一下子就可以爬这么高的,他只有两个选择,要么从n-2层爬过来,要么从n-1层爬过来。
731 0
|
1月前
|
机器学习/深度学习 算法 生物认证
基于深度学习的人员指纹身份识别算法matlab仿真
基于深度学习的人员指纹身份识别算法matlab仿真
|
26天前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到&quot;hand.txt&quot;文件。