5a3c1b2d创建于 2025年8月3日历史提交
var islandPerimeter = function (grid) {
    const visit = new Set();

    const dfs = function (i, j) {
        if (
            i >= grid.length ||
            j >= grid[0].length ||
            i < 0 ||
            j < 0 ||
            grid[i][j] == 0
        )
            return 1;
        let flatCoord = i * grid[0].length + j;
        if (visit.has(flatCoord)) return 0;

        visit.add(flatCoord);
        let perim = dfs(i, j + 1);
        perim += dfs(i + 1, j);
        perim += dfs(i, j - 1);
        perim += dfs(i - 1, j);
        return perim;
    };

    for (let i = 0; i < grid.length; i++)
        for (let j = 0; j < grid[0].length; j++)
            if (grid[i][j]) return dfs(i, j);
};