File tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change @@ -308,7 +308,58 @@ var climbStairs = function(n) {
308
308
};
309
309
```
310
310
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
+
311
361
### C
362
+
312
363
``` c
313
364
int climbStairs (int n){
314
365
//若n<=2,返回n
You can’t perform that action at this time.
0 commit comments