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

TypeScript中10x10网格指定位置周边数字2的统计问题

问题排查与修正

你的countBombsNearBy函数存在两个核心问题,导致边缘位置统计不准确:

  1. 错误的条件嵌套:将当前位置的左侧(ML)、右侧(MR)判断包裹在了rowIndex - 1 >= 0的条件中,当目标位置处于第一行(rowIndex=0)时,这两个方向的炸弹会被完全忽略。
  2. 逻辑结构冗余且不严谨:多层嵌套的条件判断容易遗漏部分方向的检查,尤其是边缘位置的合法相邻点。

修正后的函数代码

function countBombsNearBy(rowIndex: number, colIndex: number): number {
    let count = 0;
    // 定义所有8个相邻方向的偏移量
    const directions = [
        [-1, -1], [-1, 0], [-1, 1],
        [0, -1],          [0, 1],
        [1, -1],  [1, 0], [1, 1]
    ];

    for (const [rowOffset, colOffset] of directions) {
        const newRow = rowIndex + rowOffset;
        const newCol = colIndex + colOffset;
        // 检查新位置是否在10x10网格范围内
        if (newRow >= 0 && newRow <= 9 && newCol >= 0 && newCol <= 9) {
            if (grid[newRow][newCol] === 2) {
                count++;
            }
        }
    }
    return count;
}

修正思路说明

  • 统一枚举方向:用偏移量数组定义所有8个相邻方向,避免逐个判断的冗余和遗漏。
  • 独立范围检查:对每个方向的新位置单独判断是否在网格边界内,确保边缘位置的每个合法相邻点都能被检查到。
  • 逻辑清晰简洁:通过循环遍历所有方向,代码更易维护,彻底避免嵌套条件导致的逻辑漏洞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:17:15