当前位置:网站首页>Algorithm -- climbing stairs (kotlin)
Algorithm -- climbing stairs (kotlin)
2022-07-06 05:22:00 【Xiaomi technology Android research and development caoxinyu】
subject
Suppose you're climbing the stairs . need n You can reach the top of the building .
Every time you climb 1 or 2 A stair . How many different ways can you climb to the top of the building ?
Example 1:
Input :n = 2
Output :2
explain : There are two ways to climb to the top .
1. 1 rank + 1 rank
2. 2 rank
Example 2:
Input :n = 3
Output :3
explain : There are three ways to climb to the top .
1 rank + 1 rank + 1 rank
1 rank + 2 rank
2 rank + 1 rank
Tips :
1 <= n <= 45
https://leetcode.cn/problems/climbing-stairs/
Solutions
- In fact, the conventional solution of this problem can be divided into several subproblems , Climb the first n The number of ways to step stairs , be equal to 2 The sum of parts
Climb up n-1 The number of ways to step stairs . Because climb again 1 You can get to the third level n rank
Climb up n-2 The number of ways to step stairs , Because climb again 2 You can get to the third level n rank
So we get the formula dp[n] = dp[n-1] + dp[n-2]
At the same time, you need to initialize dp[0]=1 and dp[1]=1d
Time complexity :O(n)
2. since dp[n] = dp[n-1] + dp[n-2]
Then we can use sliding array to solve it
resolvent
fun climbStairs(n: Int): Int {
val intArray = IntArray(n + 1)
intArray[0] = 1
intArray[1] = 1
for (i in 2..n) {
intArray[i] = intArray[i - 1] + intArray[i - 2]
}
return intArray[n]
}
fun climbStairs2(n: Int): Int {
var q = 1
var p = 1
var result = 1
for (i in 2..n) {
result = q + p
q = p
p = result
}
return result
}
summary
1. I didn't figure out how to do this problem
I read the solution of the problem before I worked it out
边栏推荐
- SQLite queries the maximum value and returns the whole row of data
- [untitled]
- [effective Objective-C] - memory management
- 毕业设计游戏商城
- 04. 项目博客之日志
- Postman Association
- 集合详解之 Collection + 面试题
- [classic example] binary tree recursive structure classic topic collection @ binary tree
- Collection + interview questions
- Realize a binary read-write address book
猜你喜欢

Postman pre script - global variables and environment variables

Compilation et connexion de shader dans games202 - webgl (comprendre la direction)

Modbus协议通信异常

Nacos TC setup of highly available Seata (02)

Excel转换为Lua的配置文件

Steady, 35K, byte business data analysis post

注释、接续、转义等符号

nacos-高可用seata之TC搭建(02)

Postman assertion

Fiddler installed the certificate, or prompted that the certificate is invalid
随机推荐
Three. JS learning - light and shadow (understanding)
Pickle and savez_ Compressed compressed volume comparison
Yyds dry inventory SSH Remote Connection introduction
【OSPF 和 ISIS 在多路访问网络中对掩码的要求】
[leetcode] 18. Sum of four numbers
指針經典筆試題
02. 开发博客项目之数据存储
【torch】|torch. nn. utils. clip_ grad_ norm_
Biscuits (examination version)
Compilation and connection of shader in games202 webgl (learn from)
Some common skills on unity inspector are generally used for editor extension or others
无代码六月大事件|2022无代码探索者大会即将召开;AI增强型无代码工具推出...
[classic example] binary tree recursive structure classic topic collection @ binary tree
Sorting out the knowledge points of multicast and broadcasting
Compilation et connexion de shader dans games202 - webgl (comprendre la direction)
Qt TCP 分包粘包的解决方法
C进阶-数据的存储(上)
Ad20 is set with through-hole direct connection copper sheet, and the bonding pad is cross connected
idea一键导包
Ora-01779: the column corresponding to the non key value saving table cannot be modified