当前位置:网站首页>爬楼梯C语言
爬楼梯C语言
2022-07-30 05:46:00 【缘聚654】
假设你正在爬楼梯。需要 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 阶
由于一次仅可以上一阶或两阶,所以第二阶有两种方法,可以一阶一阶上也可以一次上两阶,
那么设第0阶的方法是1,第1阶的方法是1;
即第n阶的方法是第n-1阶的方法加上第n-2阶的方法;由此可以写出我们的最主要程序段
int climbStairs(int n){
int a[n+1],i;
a[0]=1;
a[1]=1;
for(int i=2;i<=n;i++)
{
a[i]=a[i-1]+a[i-2];
}
return a[n];
}程序通过从2到n的循环就能得到上到第n阶的方法
编写代码时也可以使用动态规划,单利都是差不多的,
设dp[i],其含义是第i个楼梯的方法
状态转移方程
dp[i]=dp[i-1]+dp[i-2];
初始化dp[0]=1,dp[1]=1.代码与上类似。
还有一种方法叫滚动数组法
通过观察发现相邻阶的方法有如下规律
2=1+1;3=2+1;5=3+2;以此直到第n阶,这也与数学中的一种数列——斐波那契数列类似;
由此可以写出代码段
int climbStairs(int n) {
int p = 0, q = 0, r = 1;
for (int i = 1; i <= n; ++i) {
p = q;
q = r;
r = p + q;
}
return r;
}
通过滚动数组求出第n阶。
边栏推荐
- 【江科大自化协stm32F103c8t6】笔记之【入门32单片机及TIM定时中断初始化参数配置】
- 关于 PCB 多层板制程能力不得不说的那些事儿
- 【markdown常用用法】
- 独立按键控制led进阶(1)
- Sklearn : train_test_split()函数的用法
- CPU的三种工作模式:实模式、保护模式、长模式
- QT weekly skills (3)~~~~~~~~~ serial port addition
- 华秋电子成为开放原子开源基金会openDACS捐赠人,共建 openDACS开源生态
- Deep Interpretation of void (*signal(int , void(*)(int)))(int) in "C Traps and Defects"
- [Jiangsu University Self-Chemistry Association stm32F103c8t6] Notes [Introduction to 32 MCUs and Using TIM Output to Compare and Configure PWM]
猜你喜欢
![Massive remote sensing data processing and application of GEE cloud computing technology [basic, advanced]](/img/38/239933ac987da762135db2d13902d0.png)
Massive remote sensing data processing and application of GEE cloud computing technology [basic, advanced]

Acwing刷题第一节

C language, usage of qsort in library function, and explanation

创建快捷方式时如何不带“快捷方式“后缀字样?

QT serial and CAN dynamic real-time display the log data

The most complete difference between sizeof and strlen, as well as pointer and array operation analysis

js advanced study notes (detailed)

IO进程线程->目录IO->day3

QT weekly skills (3)~~~~~~~~~ serial port addition

Kunlun State Screen Production (Serialization 5) --- Basics (serial port reception, text and light display)
随机推荐
Insertion Sort in Classic Sort
ES6 syntax notes (ES6~ES11)
ES6语法笔记(ES6~ES11)
51数码管显示
jvm之方法区
QT weekly skills (3)~~~~~~~~~ serial port addition
VSCode hides the left activity bar
Three working modes of CPU: real mode, protected mode, long mode
openssl1.1.1ARM dual compilation
2020-09-03解决pip install安装非常慢[Errno 101] 网络不可达问题
Cannnot download sources不能下载源码百分百超详细解决方案
Word使用中常用的快捷键
i++与 ++i 的区别
[Quick MSP430f149] Notes on learning MSP430f149 during the game
---------手撕二叉树,完成二叉树的前中后序遍历,以及前中后序查找
ssh script space character conversion
Vim查找字符
快速排序学习记录
实现二叉树--实现删除
QT serialization 1: readyRead() function, the solution to incomplete data subcontracting