Skip to content

70. 爬楼梯 ​

  • 题号:70
  • 来源:LeetCode
  • 难度:简单
  • 标签:dp
  • 语言:TypeScript
  • 解法:2 个
  • 作者:lmliheng
  • 最近更新:2026-09-27

解法一 ​

TypeScript · O(n) 时间 · O(n) 空间 · 更新于 2026-09-27

dp 递推 f(n)=f(n-1)+f(n-2)

typescript
/**
 * @difficulty easy
 * @tags dp
 * @time O(n)
 * @space O(n)
 * @note dp 递推 f(n)=f(n-1)+f(n-2)
 * @70. 爬楼梯
 */

let n: number = 10
// (1/Math.sqrt(5))*(pow((1+Math.sqrt(5))/2,n+1)-pow((1-Math.sqrt(5))/2,n+1))
console.log(Math.floor((1/Math.sqrt(5))*(Math.pow((1+Math.sqrt(5))/2,n+1)-Math.pow((1-Math.sqrt(5))/2,n+1))))

/**
 * @param {number} n
 * @return {number}
 */
function climbStairs(n: number): number {
  // dp dp[n-1]表示n阶楼梯到达的方法数,n=1时
  let dp: number[] = new Array(n)
  dp[0] = 1
  dp[1] = 2
  for(let i=2;i<n;i++){
    dp[i] = dp[i-1] + dp[i-2]
  }

  return dp[n-1]
}

console.log(climbStairs(10))

export {};

源码:ts/leetcode/70. 爬楼梯.ts

解法二 · TypeScript ​

TypeScript · 更新于 2026-09-27

文件内是简化路径的解法,本题未实现

typescript
/**
 * @difficulty easy
 * @tags dp
 * @note 文件内是简化路径的解法,本题未实现
 * @70. 爬楼梯(解法二)
 */

/**
 * @param {string} path
 * @return {string}
 */
function simplifyPath(path: string): string {
    let pathArr: string[] = path.split("/")
    // . 和 //可以处理
  //  console.log(pathArr)
    let pathArr_1: string[] = pathArr.filter(item => {
    if(item !== "" && item !== "."){
        return item
    }
  }) as string[]
  // 处理/../

  for(let i = 0; i < pathArr_1.length; i++){
    if(pathArr_1[i] === '..' ){
        console.log(pathArr_1)
        if(pathArr_1[i-1] !== undefined){
            pathArr_1.splice(i-1, 2)
            console.log("删除后", pathArr_1)
            // 需要更新i
            i = i - 2
        } else {
            pathArr_1.splice(i, 1)
            i = i - 1
        }
    }
  }

  return '/' + pathArr_1.join('/')
}

// console.log(simplifyPath("./home/../foo/"))
// console.log(simplifyPath('/home//foo/'))
// console.log(simplifyPath("/home/user/Documents/../Pictures"))
// console.log(simplifyPath("/.../a/../b/c/../d/./"))
// console.log(simplifyPath("/../"))

//console.log(simplifyPath('/a/./b/../../c/'))
console.log(simplifyPath('/home/../../..'))

export {};

源码:ts/leetcode/70. 爬楼梯(解法二).ts


在 GitHub 上查看题目所在目录:lmliheng/algorithm