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

C++ 之LeetCode刷题记录(十三)

😄😊😆😃😄😊😆😃

开始cpp刷题之旅。

依旧是追求耗时0s的一天。

在这里插入图片描述

70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

示例 1:

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

  1. 1 阶 + 1 阶
  2. 2 阶
    示例 2:

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

解法:这题刚开始比较难理解,但是理解后回头看还是比较简单的。

注意这个条件 :每次你可以爬 1 或 2 个台阶,也就是说只能前进一个或两个楼梯。

我们可以用高中时期的数学归纳法来验证这题,当n=1和2时,结果为自身,n=3时,结果为3,也就是1+2。

当我们来到n=n时,我们有几种可能从前面迈到这个n阶呢,答案是两种,因为我只可以爬一或两个台阶。

当我爬1个台阶,我是从n-1上迈上来的,当n=2时,我是从n-2上迈上来的。

也就是说我到n个台阶的可能性= 到n-1个台阶可能性+到n-2个台阶的可能性。

看到这个有没有想到斐波那契数列。

f(n)=f(n-1)+f(n-2);

我们只需要利用这个公式,就可以得到解法了。

看代码:

class Solution {
public:int climbStairs(int n) {vector<int> dp(n+1,0);   //定义n+1个,是考虑当n=1时的情况。dp[0]=1;dp[1]=2;for(int i=2;i<=n-1;i++){dp[i]=dp[i-1]+dp[i-2];}return dp[n-1];}
};

看一下提交记录:

在这里插入图片描述

OK,perfect。

相关文章:

  • 工业 4.0 的过程监控是什么?
  • 算法笔记(动态规划入门题)
  • leetcode:1736. 替换隐藏数字得到的最晚时间(python3解法)
  • KubeSphere平台使用
  • Java和SpringBoot学习路线图
  • Linux下使用Docker部署MinIO实现远程上传
  • C#,入门教程(38)——大型工程软件中类(class)修饰词partial的使用方法
  • LeetCode刷题——55. 跳跃游戏(HOT100)
  • 【算法】递归
  • 2024--Django平台开发-Redis集群(十一)
  • 数学建模美赛资料(赛题+获奖论文更新)
  • EasyX图形化学习(三)
  • [力扣 Hot100]Day7 接雨水
  • TS 学习笔录(持续更新中)
  • Unity之四元数
  • [Vue CLI 3] 配置解析之 css.extract
  • Apache Pulsar 2.1 重磅发布
  • CAP 一致性协议及应用解析
  • C语言笔记(第一章:C语言编程)
  • express.js的介绍及使用
  • FineReport中如何实现自动滚屏效果
  • JavaScript设计模式系列一:工厂模式
  • JavaScript设计模式之工厂模式
  • JavaScript学习总结——原型
  • Java教程_软件开发基础
  • js对象的深浅拷贝
  • Laravel Telescope:优雅的应用调试工具
  • MySQL数据库运维之数据恢复
  • Vue.js 移动端适配之 vw 解决方案
  • vue-loader 源码解析系列之 selector
  • 初识MongoDB分片
  • 关于for循环的简单归纳
  • 回流、重绘及其优化
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 我与Jetbrains的这些年
  • 原生Ajax
  • Spring Batch JSON 支持
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (C语言)逆序输出字符串
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (一一四)第九章编程练习
  • **CI中自动类加载的用法总结
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET CF命令行调试器MDbg入门(一)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • @angular/cli项目构建--Dynamic.Form
  • @GetMapping和@RequestMapping的区别