当前位置:网站首页>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
边栏推荐
- jdbc使用call调用存储过程报错
- The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
- 无代码六月大事件|2022无代码探索者大会即将召开;AI增强型无代码工具推出...
- Hyperledger Fabric2. Some basic concepts of X (1)
- Yyds dry inventory SSH Remote Connection introduction
- C# AES对字符串进行加密
- 【LeetCode】18、四数之和
- 注释、接续、转义等符号
- Compilation et connexion de shader dans games202 - webgl (comprendre la direction)
- Vulhub vulnerability recurrence 71_ Unomi
猜你喜欢
Postman assertion
Check the useful photo lossless magnification software on Apple computer
RT thread analysis - object container implementation and function
04. Project blog log
初识CDN
【LeetCode】18、四数之和
无代码六月大事件|2022无代码探索者大会即将召开;AI增强型无代码工具推出...
Pointer classic written test questions
[leetcode] 18. Sum of four numbers
Leetcode dynamic planning day 16
随机推荐
EditorUtility.SetDirty在Untiy中的作用以及应用
自建DNS服务器,客户端打开网页慢,解决办法
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Yyds dry inventory SSH Remote Connection introduction
Vulhub vulnerability recurrence 69_ Tiki Wiki
TCP three handshakes you need to know
Microblogging hot search stock selection strategy
Figure database ongdb release v-1.0.3
Notes, continuation, escape and other symbols
Safe mode on Windows
04. Project blog log
First acquaintance with CDN
Pointer classic written test questions
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Unity Vector3. Use and calculation principle of reflect
Biscuits (examination version)
【华为机试真题详解】统计射击比赛成绩
集合详解之 Collection + 面试题
Building intelligent gray-scale data system from 0 to 1: Taking vivo game center as an example
UCF (summer team competition II)