【刷题日记】70. 爬楼梯

简介: 本次刷题日记的第 10 篇,力扣题为:70. 爬楼梯 ,简单

【刷题日记】70. 爬楼梯

本次刷题日记的第 10 篇,力扣题为:70. 爬楼梯简单

一、题目描述:

image.png

前面做了一个中等题,我们来做一个简单题换换脑袋


这个题文字描述就少了许多,**但是看起来咋好像需要让我一个一个去列举?**不应该是这样,肯定有好方法

二、思路分析:

1、这道题考察了什么思想?你的思路是什么?

我们来看看这道题应该怎么做,我们傻傻的使用列举每一种情况的方式,那太傻了,请 kill 这种想法 ,我们来看看已知信息:

  • 题目提供 n 级台阶,我们只能一次 爬 1 阶 或者 2 阶,那么爬到顶我们有几种方式

乍一看这个题,如果我们在草稿纸上面列举每一种情况,那肯定是可以实现的,但是如果数据量变大了,我们也要自己去一一列举吗,这个就不太现实了

咱们要思考清楚每一步,才能让计算机去执行我们的想法

看到这个题,xdm 可能会从头看是想,1 阶 , 2 阶 , 4 阶 .... ,何时才是一个头


那么,我们可以反过来思考,假如台阶为  n 级, 那么我最后一步上台阶的方式要么是走 1 阶,要么是走 2 阶, 不能再多了

所以 走 n 级台阶的方式是等于 走 n-1 级台阶方式  加上 走 n-2 级台阶的方式, 即:

f(n)=f(n−1)+f(n−2)f(n) = f(n-1) + f(n-2)f(n)=f(n1)+f(n2)

这里我们知道,  n  是 大于等于 1 的

image.png

就这样一直推下去,一直滚动下去,那么咱们来计算 n 级台阶的时候就很容易了 , 直接将逻辑翻译成代码即可

2、尝试编码

根据上述逻辑和分析,我们就可以翻译成如下代码

编码如下:

func climbStairs(n int) int {
    if n == 1 || n == 2 {
        return n
    }
    var i,j,r = 0,1,2
    for k :=3 ; k <= n; k++ {
        i = j
        j = r
        r = i+j
    }
    return r
}

f(1) 和 f(2)  咱们直接知道具体值是多少了,直接从 3 开始推演和计算即可

四、总结:

本题比较简单,主要是换换脑袋,换种方式来看问题,时间复杂度是 O(n) , 空间复杂度是 O(1)

原题地址:70. 爬楼梯

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~


相关文章
|
存储 C语言 C++
【c语言】运算符汇总(万字解析)
今天博主跟大家分享了c语言中各种操作符的功能、使用方法以及优先级和结合性,并且与大家深入探讨了表达式求值的两个重要规则--算数转换和整形提升。学习这些知识对我们的C语言和C++学习都有着极大的帮助。
987 2
|
存储 数据采集 监控
【2022持续更新】大数据最全知识点整理-数据仓库篇
【2022持续更新】大数据最全知识点整理-数据仓库篇
2571 0
【2022持续更新】大数据最全知识点整理-数据仓库篇
|
SQL 关系型数据库 MySQL
sqlmap进阶使用
sqlmap进阶使用
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
8月前
|
人工智能
我说魔,你说搭-魔搭AI视频宣传片挑战赛
当大家都喊魔塔的时候,我们决定搞个事情...有人管咱们叫"魔塔"?
281 4
|
10月前
|
传感器 存储 安全
鸿蒙开发:权限管理之权限声明
本文,主要简单概述了为什么要有权限管理,以及权限管理的声明原则,这些都是基本的概念内容,大家做为了解即可,重要的是怎么声明权限,在什么位置声明权限,这一点需要掌握。
356 16
鸿蒙开发:权限管理之权限声明
|
存储 JavaScript 前端开发
史上最详细JavaScript数组去重方法(11种)
使用set和Array.from ()方法 array.from可以将set结构转成数组
358 7
|
安全 架构师 项目管理
快速成长的秘诀|自我成长的方法有哪些?
快速成长总共三篇,分别是《完成自我升级》、《自我成长的方法》、《学会自我培养或培养他人》。本文为第二篇,会从9个维度分享自我成长。
2715 66
|
机器学习/深度学习 人工智能 计算机视觉
字节豆包大模型团队突破残差连接局限!预训练收敛最快加速80%
字节跳动豆包大模型团队提出“超连接”创新方法,突破残差连接局限,引入可学习的深度和宽度连接,动态调整网络层间连接强度。该方法在大型语言模型预训练中实现最快收敛速度,加速80%,并在图像生成、分类等任务中表现出色,显著提升准确率和稳定性。论文链接:https://arxiv.org/pdf/2409.19606
348 5
|
数据采集 安全 API
高级技术文章:使用 Kotlin 和 Unirest 构建高效的 Facebook 图像爬虫
高级技术文章:使用 Kotlin 和 Unirest 构建高效的 Facebook 图像爬虫

热门文章

最新文章