Leetcode 70:爬楼梯

LeetCode算法题70:爬楼梯解析 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意: 给定 n 是一个正整数。 示例1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 ... 阅读详情

题目描述

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

我的解法:暴力法运行超时

直接使用递归,会有大量的冗余运算,比如对一个特定的num,clmbStairs(num)会执行多次,时间复杂度o(2n)。

class Solution {
public:
    int climbStairs(int n) {
        if(n == 1 || n==0)
        {
            return 1;
        }
        
        return climbStairs(n-1) + climbStairs(n-2);
    }
};

其它解法1:对暴力法的优化

对计算得到的每一个n结果存起来,在下次循环时的n如果是前面计算过的,就直接返回结果,避免重复运算,时间复杂度o(n)

class Solution {
public:
    int climbStairs(int n) 
    {
        int* p = new int[n+1];
        return helper(n, p);
    }

    int helper(int n, int*p)
    {
        if(n == 0 || n == 1) return 1;

        if(p[n] > 0) return p[n];

        p[n] = helper(n-1, p) + helper(n-2, p);
        return p[n];
    }
};

其它解法2:动态规划

第一次做动态规划的问题,先记录以下关于动态规划的说明,如下所示。

动态规划英文 Dynamic Programming,是求解决策过程最优化的数学方法,后来沿用到了编程领域。

动态规划的大致思路是把一个复杂的问题转化成一个分阶段逐步递推的过程,从简单的初始状态一步一步递推,最终得到复杂问题的最优解。

动态规划解决问题的过程分为两步:

寻找状态转移方程
利用状态转移方程式自底向上求解问题

不难发现,这个问题可以被分解为一些包含最优子结构的子问题,即它的最优解可以从其子问题的最优解来有效地构建,因此我们可以使用动态规划来解决这一问题。

设方法数目为F,不难发现一个规律:令台阶数为i,则第一次可以跨一阶台阶,剩余i-1阶,即下一步求解i-1阶台阶的方案数;第一次也可以跨两阶,剩余i-2阶,即下一步求解i-2阶台阶的方案数。因此可得出状态转移方程:
           F(N) = F(N-1) + F(N-2)
由此,代码如下:

class Solution {
public:
    int climbStairs(int n) {
        if(n == 1) return 1;

        int* result_num = new int[n + 1];

        result_num[1] = 1;
        result_num[2] = 2;

        for(int i = 3; i < n+1; i++)
        {
            result_num[i] = result_num[i-1] + result_num[i-2];
        }
        
        return result_num[n];
    }
};

其它解法3:斐波那契数

观察动态规划解法,我们可以发现,没必要用数组存取每一层台阶的结果,只计算出来最后一级台阶即可。其实,第i个的结果就是第i个斐波那契数。

class Solution {
public:
    int climbStairs(int n) {
        if(n == 1) return 1;

        int first = 1;
        int second = 2;

        for(int i = 3; i <= n; i++)
        {
            int third = first + second;
            first = second;
            second = third;
        }

        return second;
    }
};

其它解法4:直接套斐波那契通项公式

F n = 1 / 5 ( ( 1 + 5 2 ) n + 1 − 1 − 5 2 ) n + 1 ) F_n= 1/ \sqrt{5} \Big(\big(\frac{1+\sqrt{5}}{2})^{n+1} - \frac{1-\sqrt{5}}{2}\big)^{n+1}\Big) Fn​=1/5 ​((21+5 ​​)n+1−21−5 ​​)n+1)

推理的过程请参见 知乎上的这个贴子,有了通项公式后,直接在常数级的时间复杂度范围内就可以求出结果了,代码如下:

class Solution {
public:
    int climbStairs(int n) {
        double root5 = sqrt(5);
        return (1 / root5) * (pow((1 + root5) / 2, n + 1) - pow((1 - root5) / 2, n + 1));
    }
};
【简单】力扣算法题解析LeetCode70:爬楼梯 爬楼梯问题要求计算爬到第 n 阶台阶的方法数,每次可爬 1 或 2 阶。通过动态规划,将问题转化为斐波那契数列:dp[i] = dp[i-1] + dp[i-2]。初始条件为 dp[1]=1,dp[2]=2。优化空间复杂度至 O(1),仅用两个变量滚动更新。Java 实现通过循环计算,最终返回 prev2 作为结果。时间复杂度 O(n),空间复杂度 O(1),适用于 n 较大时的高效求解。 阅读详情

相关推荐

LeetCode 第70题:爬楼梯

通过这次的算法探险,我们学会了如何优雅地解决爬楼梯的问题。这个“爬楼梯”的问题虽然看似简单,却涉及到了许多有趣的细节。通过详细的讲解和示例,我们深入理解了动态规划在解决爬楼梯问题中的应用。希望这篇文章能帮你更好地理解这道题目,如果有任何问题,欢迎留言讨论。

Gemini的博客 193

Leetcode70(力扣70):爬楼梯

特别经典的一道动态规划问题 class Solution { public: int climbStairs(int n) { if(n==1) return 1; if(n==2) return 2; vector<int> dp(n,0); dp[0]=1; dp[1]=2; for(int i=2;i<n;i++) { dp[i]=dp[i-1]+dp[i-

weixin_44537258的博客 203

leetcode 70: 爬楼梯

假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶n = 33有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶这是一个典型的动态规划问题,我们可以通过分析每一步的状态来找到爬到第n阶楼梯的不同方法数。

weixin_42460792的博客 674

力扣(LeetCode) 70: 爬楼梯 - 解法思路

假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?要到达第n阶,你可以从第n-1阶(走 1 步)或从第n-2阶(走 2 步)到达。因此,。迭代 DP 解法是最优的,空间复杂度为 O(1)。

Yao H. Wang's Blog 380

ESP32S3开发实战:从Vscode+IDF环境配置到OpenOCD单步调试全流程

本文详细介绍了ESP32S3开发环境的完整搭建流程,重点讲解如何在Vscode中配置ESP-IDF开发框架,并利用OpenOCD工具实现硬件单步调试。内容涵盖从环境准备、工程创建、代码烧录到高级调试技巧的全方位实战指南,旨在帮助开发者快速掌握ESP32S3的高效开发与调试方法。

weixin_29168813的博客 207

头歌平台 操作系统课堂练习2.3:系统调用

使用 gdb 调试内核,跟踪到 main 函数入口的方法与之前实训一样。系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?本关卡使用版本 1 内核进行分析,版本 1 内核文件存放在。为了完成本关任务,你需要:跟踪系统调用的发生。此时,系统调用号存放在寄存器 eax 中。

lazbuyaotoutu的博客 2万+

leetcode-70:爬楼梯

leetcode-70:爬楼梯题目解题方法一:回溯(超时)方法二:动态规划 题目 题目链接 解题 方法一:回溯(超时) class Solution { public: int res=0; int tmp=0; void backtracing(int n){ if(tmp==n){ res++; }else if(tmp>n) return; for(int i=1;i<=2;i++){

菊头蝙蝠的博客 418

数据获取竟如此简单——全球SRTM 90m DEM V4.1数据

SRTM(Shuttle Radar Topography Mission)是由NASA联合国际合作伙伴开展的雷达地形测绘项目,通过航天飞机搭载的合成孔径雷达系统,于2000年通过发射并接收地表反射的雷达信号,获取全球三维地形数据,这一任务填补了高精度全球地形数据的空白。而本文通过十余行的python代码,就更简单、方便地获取这些数据。

m0_38065162的博客 1397

Leetcode第70题: 爬楼梯

思考到爬楼梯的规律其实就是符合斐波那契数列(Fibonacci Sequence) 规律的,问题就迎刃而解了。我们可以这样来思考:当我们从第 n-1 阶楼梯爬到第 n 阶楼梯时,需要1步;当我们从第 n-2 阶楼梯爬到第 n 阶楼梯时,需要2步。也就是说,到达第 n 阶楼梯的方法数等于到达第 n-1 阶楼梯的方法数加上到达第 n-2 阶楼梯的方法数,即 f(n)=f(n−1)+f(n−2),正好符合斐波那契通项。函数都会产生一个新的函数调用栈帧,该栈帧保存了函数的局部变量和返回地址。,所以递归树的高度是。

weixin_43425300的博客 1417

Matlab使用GitHub的踩坑记录(持续更新)

Matlab使用git的踩坑记录前言Matlab设置Git的官方帮助文档系统配置新建Git两种代码管理方式典型源代码管理SVN分布式源代码管理 Git注意:SVN和Git都可以用GitHub创建新的库 前言 作为Git初学者,对Git的代码版本管理非常非常喜欢,给了我极大的安全感。特别是想到之前的几次Matlab、Latex和python的代码莫名其妙被折腾没了又没法找回的悲剧,决定慢慢的走入gi...

voluntry的博客 7296

RandLA-Net复现SemanticKITTI和S3DIS数据集

RandLA-Net复现KITTI和室内数据集

weixin_48845174的博客 4106

力扣70:爬楼梯

力扣70:爬楼梯

2501_93048002的博客 319

ORCAD 层次化原理图使用TCL获取位号的方法

orcad tcl 获取occurrence位号的方法。

m0_46675718的博客 1125

力扣70:爬楼梯

摘要:爬楼梯问题要求计算爬到n阶楼梯的不同方法数,每次可爬1或2阶。通过观察前几阶的解法(1,2,3,5),发现规律f(n)=f(n-1)+f(n-2),即斐波那契数列。采用动态规划思想,从底层逐步计算到第n层,避免重复计算。代码实现时初始化前两阶结果,通过循环从第三阶开始依次计算并更新中间值,最终返回第n阶的解。时间复杂度O(n),空间复杂度O(1)。

weixin_74285822的博客 403

基于STM32的智能快递柜设计(全部资料)

本文设计了一种基于STM32F407ZGT6的智能快递柜系统,通过模块化硬件设计和软件算法优化,实现了24小时无人值守、温湿度智能调控、远程监控等功能。系统集成OLED显示、GSM通信、舵机控制、超声波检测等模块,存取响应时间≤3秒,识别准确率达99.2%,较传统模式效率提升60%。测试表明系统运行稳定,用户满意度达92%,具有成本低、安全性高、可扩展性强等特点,为智慧物流末端配送提供了创新解决方案。未来可引入AI算法、太阳能供电等功能进一步优化系统性能。

3254968421的博客 584

C#解析基恩士(KEYENCE)PLC数据:KV协议通信与实时监控实现

KV协议是基恩士PLC使用的一种专用通信协议,通常用于与上位机进行数据交换。KV协议通过RS-232C、RS-485、Ethernet等接口与上位机通信,支持多种数据类型的读写,包括但不限于位、字、双字、浮点数等。简洁易用:KV协议的通信格式简单,易于实现。支持多种数据类型:支持位数据、字数据、定长字符串等。高效实时性:能够提供较高的实时数据交换性能,适合实时监控应用。本文介绍了如何通过C#与基恩士KV系列PLC进行通信,实现数据的解析和实时监控功能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1806

leetcode:70. 爬楼梯

动态规划

OceanStar的博客 3701

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LeetCode第70题:爬楼梯

LeetCode第70题:爬楼梯 问题描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1、1 阶 + 1 阶 2、 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1、 1 阶 +...

朕蹲厕唱忐忑的博客 216

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C++练习——LeetCode:70. 爬楼梯

LeetCode:70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1...

Sunrise的博客 393

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【LeetCode】第70题——爬楼梯(难度:简单)

【LeetCode】第70题——爬楼梯(难度:简单)题目描述解题思路代码详解方法一:递归方法二:数组注意点 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/climbing-stairs 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 示例 1 输入: 2 输出: 2

Se7en_Dayz的博客 384

leetcode 70:爬楼梯(python)

腾讯精选练习(50 题)Day23 || leetcode 70:爬楼梯(python)

nanashi_F的博客 592

LeetCode第70题:爬楼梯(简单)

LeetCode第70题:爬楼梯(简单) 题目: 思路一:斐波那契额数列,想用递归解决问题。但是超出了时间限制。 class Solution { public int climbStairs(int n) { if(n==1){ return 1; }else if(n==2){ return 2; ...

new_whiter的博客 427

力扣70题:爬楼梯

力扣算法:爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 阶 int climbStairs(int n){ if(n<3) return n; int

disboom的博客 275

力扣:70. 爬楼梯

你有多少种不同的方法可以爬到楼顶呢?1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。

yasdasdp的博客 355

leetcode :[70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)

leetcode :70. 爬楼梯 假设你正在爬楼梯。需要 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

yingmu__的博客 1133
上一篇: 多线程交替工作的一种简单方式,以实现RGB和YUV420的相互转换为例
下一篇: Leetcode 121:买卖股票的最佳时机
冀州少主
博客等级 码龄8年 16粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值