在 JavaScript 中查找所有唯一路径

javascriptweb developmentfront end technologyobject oriented programming更新于 2024/2/21 20:28:17

假设我们有一个 m * n 阶数组。一个人从二维数组的起始块 (0,0) 开始,他想要到达终点 (m, n)。限制是,他一次只能向下移动一步或向右移动一步。

我们需要编写一个 JavaScript 函数,该函数接受二维网格的高度和宽度。

该函数应该找出这个人可以到达终点的唯一路径的数量。

示例

以下是代码 −

const height = 3;
const width = 4;
const findUniquePath = (width = 1, height = 1) => {
   const board = Array(height).fill(null).map(() => {
      return Array(width).fill(0);
   });
   for (let rowIndex = 0; rowIndex < height; rowIndex += 1) {
      for (let columnIndex = 0; columnIndex < width; columnIndex += 1) {
         if (rowIndex === 0 || columnIndex === 0) {
            board[rowIndex][columnIndex] = 1;
         }
      }
   }
   for (let rowIndex = 1; rowIndex < height; rowIndex += 1) {
      for (let columnIndex = 1; columnIndex < width; columnIndex += 1) {
         const uniquesFromTop = board[rowIndex - 1][columnIndex];
         const uniquesFromLeft = board[rowIndex][columnIndex - 1];
         board[rowIndex][columnIndex] = uniquesFromTop + uniquesFromLeft;
      }
   }
   return board[height - 1][width - 1];
};
console.log(findUniquePath(width, height));

输出

以下是控制台上的输出 −

10

相关文章


有用资源