Skip to content

Commit b9226e3

Browse files
committed
feat: add ts solution to lc problem: No.1568
1 parent ce2a9c2 commit b9226e3

File tree

3 files changed

+169
-0
lines changed

3 files changed

+169
-0
lines changed

solution/1500-1599/1568.Minimum Number of Days to Disconnect Island/README.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,64 @@ func minDays(grid [][]int) int {
295295
}
296296
```
297297

298+
#### TypeScript
299+
300+
```ts
301+
function minDays(grid: number[][]): number {
302+
const [m, n] = [grid.length, grid[0].length];
303+
304+
const dfs = (i: number, j: number) => {
305+
if (i < 0 || m <= i || j < 0 || n <= j || [0, 2].includes(grid[i][j])) return;
306+
307+
grid[i][j] = 2;
308+
const dir = [-1, 0, 1, 0, -1];
309+
for (let k = 0; k < 4; k++) {
310+
const [y, x] = [i + dir[k], j + dir[k + 1]];
311+
dfs(y, x);
312+
}
313+
};
314+
315+
const count = () => {
316+
let c = 0;
317+
318+
for (let i = 0; i < m; i++) {
319+
for (let j = 0; j < n; j++) {
320+
if (grid[i][j] === 1) {
321+
dfs(i, j);
322+
c++;
323+
}
324+
}
325+
}
326+
327+
for (let i = 0; i < m; i++) {
328+
for (let j = 0; j < n; j++) {
329+
if (grid[i][j] === 2) {
330+
grid[i][j] = 1;
331+
}
332+
}
333+
}
334+
335+
return c;
336+
};
337+
338+
if (count() !== 1) return 0;
339+
340+
for (let i = 0; i < m; i++) {
341+
for (let j = 0; j < n; j++) {
342+
if (grid[i][j] === 1) {
343+
grid[i][j] = 0;
344+
345+
if (count() !== 1) return 1;
346+
347+
grid[i][j] = 1;
348+
}
349+
}
350+
}
351+
352+
return 2;
353+
}
354+
```
355+
298356
#### JavaScript
299357

300358
```js

solution/1500-1599/1568.Minimum Number of Days to Disconnect Island/README_EN.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,64 @@ func minDays(grid [][]int) int {
286286
}
287287
```
288288

289+
#### TypeScript
290+
291+
```ts
292+
function minDays(grid: number[][]): number {
293+
const [m, n] = [grid.length, grid[0].length];
294+
295+
const dfs = (i: number, j: number) => {
296+
if (i < 0 || m <= i || j < 0 || n <= j || [0, 2].includes(grid[i][j])) return;
297+
298+
grid[i][j] = 2;
299+
const dir = [-1, 0, 1, 0, -1];
300+
for (let k = 0; k < 4; k++) {
301+
const [y, x] = [i + dir[k], j + dir[k + 1]];
302+
dfs(y, x);
303+
}
304+
};
305+
306+
const count = () => {
307+
let c = 0;
308+
309+
for (let i = 0; i < m; i++) {
310+
for (let j = 0; j < n; j++) {
311+
if (grid[i][j] === 1) {
312+
dfs(i, j);
313+
c++;
314+
}
315+
}
316+
}
317+
318+
for (let i = 0; i < m; i++) {
319+
for (let j = 0; j < n; j++) {
320+
if (grid[i][j] === 2) {
321+
grid[i][j] = 1;
322+
}
323+
}
324+
}
325+
326+
return c;
327+
};
328+
329+
if (count() !== 1) return 0;
330+
331+
for (let i = 0; i < m; i++) {
332+
for (let j = 0; j < n; j++) {
333+
if (grid[i][j] === 1) {
334+
grid[i][j] = 0;
335+
336+
if (count() !== 1) return 1;
337+
338+
grid[i][j] = 1;
339+
}
340+
}
341+
}
342+
343+
return 2;
344+
}
345+
```
346+
289347
#### JavaScript
290348

291349
```js
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
function minDays(grid: number[][]): number {
2+
const [m, n] = [grid.length, grid[0].length];
3+
4+
const dfs = (i: number, j: number) => {
5+
if (i < 0 || m <= i || j < 0 || n <= j || [0, 2].includes(grid[i][j])) return;
6+
7+
grid[i][j] = 2;
8+
const dir = [-1, 0, 1, 0, -1];
9+
for (let k = 0; k < 4; k++) {
10+
const [y, x] = [i + dir[k], j + dir[k + 1]];
11+
dfs(y, x);
12+
}
13+
};
14+
15+
const count = () => {
16+
let c = 0;
17+
18+
for (let i = 0; i < m; i++) {
19+
for (let j = 0; j < n; j++) {
20+
if (grid[i][j] === 1) {
21+
dfs(i, j);
22+
c++;
23+
}
24+
}
25+
}
26+
27+
for (let i = 0; i < m; i++) {
28+
for (let j = 0; j < n; j++) {
29+
if (grid[i][j] === 2) {
30+
grid[i][j] = 1;
31+
}
32+
}
33+
}
34+
35+
return c;
36+
};
37+
38+
if (count() !== 1) return 0;
39+
40+
for (let i = 0; i < m; i++) {
41+
for (let j = 0; j < n; j++) {
42+
if (grid[i][j] === 1) {
43+
grid[i][j] = 0;
44+
45+
if (count() !== 1) return 1;
46+
47+
grid[i][j] = 1;
48+
}
49+
}
50+
}
51+
52+
return 2;
53+
}

0 commit comments

Comments
 (0)