Skip to content

创建一个恰好有K条路径的网格图 ​

  • 题号:—
  • 来源:LeetCode 周赛
  • 难度:中等
  • 标签:数学 矩阵 模拟
  • 语言:JavaScript
  • 解法:1 个
  • 作者:lmliheng
  • 最近更新:2026-09-27

JavaScript · O(n*m) 时间 · O(n*m) 空间 · 更新于 2026-09-27

按 k 从 1 到 4 分情况拼出通路网络

javascript
/**
 * @difficulty medium
 * @tags 数学,矩阵,模拟
 * @time O(n*m)
 * @space O(n*m)
 * @note 按 k 从 1 到 4 分情况拼出通路网络
 * @创建一个恰好有K条路径的网格图
 * 
 * 当m>=4 n>=4
 */

let m = 4
let n = 4
let k = 4
// C24 C36 // c52

// 构造
let grid = new Array(m).fill('#').map(() => '#'.repeat(n))
if (k === 1) {
    for (let i = 0; i < m; i++) {
        grid[i] = '.' + '#'.repeat(n - 1)
    }
    grid[m - 1] = '.'.repeat(n)
} else if (k === 2) {
    for (let i = 0; i < m; i++) {
        grid[i] = '.' + '#'.repeat(n - 2) + '.'
    }
    grid[0] = '.'.repeat(n)
    grid[m - 1] = '.'.repeat(n)

} else if (k === 3) {
    for (let i = 0; i < m; i++) {
        grid[i] = '.' + '#'.repeat(n - 2) + '.'
    }
    grid[0] = '.'.repeat(n)
    grid[m - 1] = '.'.repeat(n)
    grid[1] = '.' + '#'.repeat(n - 3) + '..'

} else if (k === 4) {
    for (let i = 0; i < m; i++) {
        grid[i] = '.' + '#'.repeat(n - 2) + '.'
    }
    grid[0] = '.'.repeat(n)
    grid[m - 1] = '.'.repeat(n)
    grid[1] = '.' + '#'.repeat(n - 3) + '..'
    grid[m - 2] = '..' + '#'.repeat(n - 3) + '.'
}

console.log(grid)

源码:ts/leetcode/周赛/创建一个恰好有K条路径的网格图.js


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