当前位置: 首页 > news >正文

LeetCode:爬楼梯(C语言)

1、问题概述:每次可以爬 1 或 2 个台阶。有多少种不同的方法可以爬到楼顶

2、示例

示例 1:

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶

示例 2:

输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶

3、分析 

(1)考斐波那契数列(第1个+第2个=第3个,依次类推):1 2 3 5……

公式: F(0)=0 F(1)=1 F(n)=F(n-1)+F(n-2)

(2)如果直接使用斐波那契数列进行递归的话时间复杂度回很高,会超出时间限制,所以对斐波那契数列进行优化,在外面设置3个变量,利用递推公式f(n) = f(n-1) + f(n-2)

4、代码

int climbStairs(int n) {// 斐波那契数列  F(0)=0  F(1)=1  F(n)=F(n-1)+F(n-2)// 1 2 3if(n<=2){return n;}long one=1;long two=2;long three=0;for(long i=3;i<=n;i++){three=one + two ;one=two;two=three;}return three;
}

http://www.lryc.cn/news/407887.html

相关文章:

  • 银河麒麟(arm64)环境下通过docker安装postgis3,并实现数据整体迁移
  • C语言 | Leetcode C语言题解之第278题第一个错误的版本
  • 京东科技集团将在香港发行与港元1:1挂钩的加密货币稳定币
  • Vue 实现电子签名并生成签名图片
  • Visual Studio 2022美化
  • [CISCN2019 华东南赛区]Web11
  • 【图形图像-1】SDF
  • 苍穹外卖01
  • ElasticSearch(三)—文档字段参数设置以及元字段
  • ARM功耗管理之压力测试和PM_DEBUG实验
  • ESP8266用AT指令实现连接MQTT
  • 人工智能与机器学习原理精解【5】
  • 为什么用LeSS?
  • 力扣高频SQL 50题(基础版)第七题
  • 【音视频】一篇文章区分直播与点播、推流与拉流
  • 3d动画软件blender如何汉化?(最新版本4.2)
  • C++学习笔记04-补充知识点(问题-解答自查版)
  • Vue el-table的自定义排序返回值为null,设置刷新页面保持排序标志,导航时elementui组件不更新
  • 一起笨笨的学C ——16链表基础
  • 信息学奥赛一本通1917:【01NOIP普及组】装箱问题
  • android user 版本如何手动触发dump
  • RedHat Linux 7.5 安装 mssql-server
  • Vue的SSR和预渲染:提升首屏加载速度与SEO效果
  • 若依ruoyi+AI项目二次开发(智能售货机运营管理系统)
  • 【SpringBoot】 4 Thymeleaf
  • 动静资源的转发操作
  • Windows系统安全加固方案:快速上手系统加固指南(上)
  • git连接远程仓库
  • 算法-----递归~~搜索~~回溯(宏观认识)
  • 【云原生】Docker搭建知识库文档协作平台Confluence