[62] 不同路径

113 阅读1分钟

思路

  • 1.for循环创建一个二维数组
  • 2.再初始化第一列和第一行都为1
  • 3.再把每一个空格算出来(上边加左边)
  • 4.再把finish位置的值return
/*
 * @lc app=leetcode.cn id=62 lang=javascript
 *
 * [62] 不同路径
 */

// @lc code=start
/**
 * @param {number} m
 * @param {number} n
 * @return {number}
 * 1.for循环创建一个二维数组
 * 2.再初始化第一列和第一行都为1
 * 3.再把每一个空格算出来(上边加左边)
 * 4.再把finish位置的值return
 */
var uniquePaths = function (m, n) {
  let arr = []
  // 1
  for (let i = 0; i < n; i++) {
    arr.push([])
  }
  // 2
  // 第一列
  for (let row = 0; row < n; row++) {
    arr[row][0] = 1
  }
  // 第一行
  for (let col = 0; col < m; col++) {
    arr[0][col] = 1
  }
  // 3
  for (let row = 1; row < n; row++) {
    for (let col = 1; col < m; col++) {
      // 上边+左边
      arr[row][col] = arr[row - 1][col] + arr[row][col - 1]
    }
  }
  return arr[n - 1][m - 1]
}
// @lc code=end