Skip to content

Commit 0cba2d2

Browse files
committed
添加(0070.爬楼梯.md):增加typescript版本
1 parent f409384 commit 0cba2d2

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

problems/0070.爬楼梯.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,58 @@ var climbStairs = function(n) {
308308
};
309309
```
310310

311+
TypeScript
312+
313+
> 爬2
314+
315+
```typescript
316+
function climbStairs(n: number): number {
317+
/**
318+
dp[i]: i阶楼梯的方法种数
319+
dp[1]: 1;
320+
dp[2]: 2;
321+
...
322+
dp[i]: dp[i - 1] + dp[i - 2];
323+
*/
324+
const dp: number[] = [];
325+
dp[1] = 1;
326+
dp[2] = 2;
327+
for (let i = 3; i <= n; i++) {
328+
dp[i] = dp[i - 1] + dp[i - 2];
329+
}
330+
return dp[n];
331+
};
332+
```
333+
334+
> 爬m阶
335+
336+
```typescript
337+
function climbStairs(n: number): number {
338+
/**
339+
一次可以爬m阶
340+
dp[i]: i阶楼梯的方法种数
341+
dp[1]: 1;
342+
dp[2]: 2;
343+
dp[3]: dp[2] + dp[1];
344+
...
345+
dp[i]: dp[i - 1] + dp[i - 2] + ... + dp[max(i - m, 1)]; 从i-1加到max(i-m, 1)
346+
*/
347+
const m: number = 2; // 本题m为2
348+
const dp: number[] = new Array(n + 1).fill(0);
349+
dp[1] = 1;
350+
dp[2] = 2;
351+
for (let i = 3; i <= n; i++) {
352+
const end: number = Math.max(i - m, 1);
353+
for (let j = i - 1; j >= end; j--) {
354+
dp[i] += dp[j];
355+
}
356+
}
357+
return dp[n];
358+
};
359+
```
360+
311361
### C
362+
312363
```c
313364
int climbStairs(int n){
314365
//若n<=2,返回n

0 commit comments

Comments
 (0)