当前位置:网站首页>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
边栏推荐
- idea一键导包
- 图数据库ONgDB Release v-1.0.3
- [effective Objective-C] - memory management
- MySQL advanced learning summary 9: create index, delete index, descending index, and hide index
- Yyds dry inventory SSH Remote Connection introduction
- GAMES202-WebGL中shader的编译和连接(了解向)
- Some common skills on unity inspector are generally used for editor extension or others
- [noip2009 popularization group] score line delimitation
- Pointer classic written test questions
- Huawei equipment is configured with OSPF and BFD linkage
猜你喜欢
Cuda11.1 online installation
Vulhub vulnerability recurrence 71_ Unomi
[leetcode] 18. Sum of four numbers
Leetcode dynamic planning day 16
Steady, 35K, byte business data analysis post
Building intelligent gray-scale data system from 0 to 1: Taking vivo game center as an example
【云原生】3.1 Kubernetes平台安装KubeSpher
RT thread analysis - object container implementation and function
Vulhub vulnerability recurrence 67_ Supervisor
Imperial cms7.5 imitation "D9 download station" software application download website source code
随机推荐
Force buckle 1189 Maximum number of "balloons"
[classic example] binary tree recursive structure classic topic collection @ binary tree
Safe mode on Windows
Golang -- TCP implements concurrency (server and client)
Zoom and pan image in Photoshop 2022
备忘一下jvxetable的各种数据集获取方法
【torch】|torch. nn. utils. clip_ grad_ norm_
nacos-高可用seata之TC搭建(02)
Lepton 无损压缩原理及性能分析
Talking about the type and function of lens filter
Oracle deletes duplicate data, leaving only one
Fuzzy -- basic application method of AFL
Acwing week 58
Quelques conseils communs sur l'inspecteur de l'unit é, généralement pour les extensions d'éditeur ou d'autres
Collection + interview questions
Nacos - TC Construction of High available seata (02)
Fiddler installed the certificate, or prompted that the certificate is invalid
无代码六月大事件|2022无代码探索者大会即将召开;AI增强型无代码工具推出...
Promotion hung up! The leader said it wasn't my poor skills
2022 half year summary