From a1d5e4efcc5b0e1e2a143f7a314947b445b705a2 Mon Sep 17 00:00:00 2001 From: rain84 Date: Wed, 22 May 2024 17:13:45 +0300 Subject: [PATCH 1/4] refactor: update typescript solution to lc problem: No.200 --- .../0200.Number of Islands/README.md | 21 ++++++++++--------- .../0200.Number of Islands/README_EN.md | 21 ++++++++++--------- .../0200.Number of Islands/Solution.ts | 21 ++++++++++--------- 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/solution/0200-0299/0200.Number of Islands/README.md b/solution/0200-0299/0200.Number of Islands/README.md index 634d42f1eb971..62800e1ddb741 100644 --- a/solution/0200-0299/0200.Number of Islands/README.md +++ b/solution/0200-0299/0200.Number of Islands/README.md @@ -208,17 +208,17 @@ function numIslands(grid: string[][]): number { const m = grid.length; const n = grid[0].length; let ans = 0; - function dfs(i, j) { + + const dfs = (i: number, j: number) => { + if (grid[i]?.[j] !== '1') return; + grid[i][j] = '0'; - const dirs = [-1, 0, 1, 0, -1]; - for (let k = 0; k < 4; ++k) { - const x = i + dirs[k]; - const y = j + dirs[k + 1]; - if (x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == '1') { - dfs(x, y); - } - } - } + dfs(i + 1, j); + dfs(i - 1, j); + dfs(i, j + 1); + dfs(i, j - 1); + }; + for (let i = 0; i < m; ++i) { for (let j = 0; j < n; ++j) { if (grid[i][j] == '1') { @@ -227,6 +227,7 @@ function numIslands(grid: string[][]): number { } } } + return ans; } ``` diff --git a/solution/0200-0299/0200.Number of Islands/README_EN.md b/solution/0200-0299/0200.Number of Islands/README_EN.md index e2efa41f09937..50f744b16d802 100644 --- a/solution/0200-0299/0200.Number of Islands/README_EN.md +++ b/solution/0200-0299/0200.Number of Islands/README_EN.md @@ -198,17 +198,17 @@ function numIslands(grid: string[][]): number { const m = grid.length; const n = grid[0].length; let ans = 0; - function dfs(i, j) { + + const dfs = (i: number, j: number) => { + if (grid[i]?.[j] !== '1') return; + grid[i][j] = '0'; - const dirs = [-1, 0, 1, 0, -1]; - for (let k = 0; k < 4; ++k) { - const x = i + dirs[k]; - const y = j + dirs[k + 1]; - if (x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == '1') { - dfs(x, y); - } - } - } + dfs(i + 1, j); + dfs(i - 1, j); + dfs(i, j + 1); + dfs(i, j - 1); + }; + for (let i = 0; i < m; ++i) { for (let j = 0; j < n; ++j) { if (grid[i][j] == '1') { @@ -217,6 +217,7 @@ function numIslands(grid: string[][]): number { } } } + return ans; } ``` diff --git a/solution/0200-0299/0200.Number of Islands/Solution.ts b/solution/0200-0299/0200.Number of Islands/Solution.ts index b398e93559c7b..00bb3b4564c91 100644 --- a/solution/0200-0299/0200.Number of Islands/Solution.ts +++ b/solution/0200-0299/0200.Number of Islands/Solution.ts @@ -2,17 +2,17 @@ function numIslands(grid: string[][]): number { const m = grid.length; const n = grid[0].length; let ans = 0; - function dfs(i, j) { + + const dfs = (i: number, j: number) => { + if (grid[i]?.[j] !== '1') return; + grid[i][j] = '0'; - const dirs = [-1, 0, 1, 0, -1]; - for (let k = 0; k < 4; ++k) { - const x = i + dirs[k]; - const y = j + dirs[k + 1]; - if (x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == '1') { - dfs(x, y); - } - } - } + dfs(i + 1, j); + dfs(i - 1, j); + dfs(i, j + 1); + dfs(i, j - 1); + }; + for (let i = 0; i < m; ++i) { for (let j = 0; j < n; ++j) { if (grid[i][j] == '1') { @@ -21,5 +21,6 @@ function numIslands(grid: string[][]): number { } } } + return ans; } From 122542be7c65449db8daf084926ed2ca6ab865ca Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Thu, 23 May 2024 09:01:07 +0800 Subject: [PATCH 2/4] Update README.md --- solution/0200-0299/0200.Number of Islands/README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/solution/0200-0299/0200.Number of Islands/README.md b/solution/0200-0299/0200.Number of Islands/README.md index 62800e1ddb741..87e54186056f9 100644 --- a/solution/0200-0299/0200.Number of Islands/README.md +++ b/solution/0200-0299/0200.Number of Islands/README.md @@ -208,26 +208,24 @@ function numIslands(grid: string[][]): number { const m = grid.length; const n = grid[0].length; let ans = 0; - const dfs = (i: number, j: number) => { - if (grid[i]?.[j] !== '1') return; - + if (grid[i]?.[j] !== '1') { + return; + } grid[i][j] = '0'; dfs(i + 1, j); dfs(i - 1, j); dfs(i, j + 1); dfs(i, j - 1); }; - for (let i = 0; i < m; ++i) { for (let j = 0; j < n; ++j) { - if (grid[i][j] == '1') { + if (grid[i][j] === '1') { dfs(i, j); ++ans; } } } - return ans; } ``` From c9a4a5217093b4ce1a6814308018e899af7a905d Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Thu, 23 May 2024 09:01:30 +0800 Subject: [PATCH 3/4] Update README_EN.md --- solution/0200-0299/0200.Number of Islands/README_EN.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/solution/0200-0299/0200.Number of Islands/README_EN.md b/solution/0200-0299/0200.Number of Islands/README_EN.md index 50f744b16d802..6af18eb748ddf 100644 --- a/solution/0200-0299/0200.Number of Islands/README_EN.md +++ b/solution/0200-0299/0200.Number of Islands/README_EN.md @@ -198,26 +198,24 @@ function numIslands(grid: string[][]): number { const m = grid.length; const n = grid[0].length; let ans = 0; - const dfs = (i: number, j: number) => { - if (grid[i]?.[j] !== '1') return; - + if (grid[i]?.[j] !== '1') { + return; + } grid[i][j] = '0'; dfs(i + 1, j); dfs(i - 1, j); dfs(i, j + 1); dfs(i, j - 1); }; - for (let i = 0; i < m; ++i) { for (let j = 0; j < n; ++j) { - if (grid[i][j] == '1') { + if (grid[i][j] === '1') { dfs(i, j); ++ans; } } } - return ans; } ``` From 2668fecd8873153f734bf36acd29cd7b6f5b2e21 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Thu, 23 May 2024 09:01:46 +0800 Subject: [PATCH 4/4] Update Solution.ts --- solution/0200-0299/0200.Number of Islands/Solution.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/solution/0200-0299/0200.Number of Islands/Solution.ts b/solution/0200-0299/0200.Number of Islands/Solution.ts index 00bb3b4564c91..8ac5367be98ac 100644 --- a/solution/0200-0299/0200.Number of Islands/Solution.ts +++ b/solution/0200-0299/0200.Number of Islands/Solution.ts @@ -2,25 +2,23 @@ function numIslands(grid: string[][]): number { const m = grid.length; const n = grid[0].length; let ans = 0; - const dfs = (i: number, j: number) => { - if (grid[i]?.[j] !== '1') return; - + if (grid[i]?.[j] !== '1') { + return; + } grid[i][j] = '0'; dfs(i + 1, j); dfs(i - 1, j); dfs(i, j + 1); dfs(i, j - 1); }; - for (let i = 0; i < m; ++i) { for (let j = 0; j < n; ++j) { - if (grid[i][j] == '1') { + if (grid[i][j] === '1') { dfs(i, j); ++ans; } } } - return ans; }