You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Climbing Stairs(爬楼梯)问题解法最后一步逻辑疑惑咨询

爬楼梯问题核心逻辑答疑

你的疑问本质是混淆了「路径总数的统计规则」和「步数的累加规则」,我们先明确两个基础定义:

  • ways[i]的含义是从起点到达第(i+1)阶台阶的所有不同路径的总数量,统计的是有多少种走法,不是走了多少步
  • 每次从N-1阶走1步到N阶、或从N-2阶走2步到N阶,操作是在已有路径末尾追加固定的最后一步,不会改变原有路径的数量

我们拿实际场景举例就非常好理解:

以n=3的场景为例:

  1. 到达第1阶的路径总数是1种(直接走1步1阶),对应ways[0]=1
  2. 到达第2阶的路径总数是2种(两次1阶/一次2阶),对应ways[1]=2
  3. 要到第3阶:
    • 所有到达第2阶的2种路径,每一种末尾追加走1步1阶,就能得到2种到第3阶的路径,数量还是2,不需要额外加1
    • 所有到达第1阶的1种路径,末尾追加走1步2阶,就能得到1种到第3阶的路径,数量还是1,不需要额外加1
      总路径数就是2+1=3种,完全符合递推公式的计算结果。

额外说明:你贴的代码存在一处排版笔误,for (int i=2; i < n; n++)中的迭代逻辑应该是i++,否则会触发死循环,属于代码转义粘贴时的失误。

内容的提问来源于stack exchange,提问作者Gustavo Palomino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:45:05