Skip to content

Commit 76b88cd

Browse files
authored
feat: add typescript solution to lc problem: No.0463.Island Perimeter (doocs#477)
1 parent ba6ff50 commit 76b88cd

File tree

3 files changed

+90
-0
lines changed

3 files changed

+90
-0
lines changed

solution/0400-0499/0463.Island Perimeter/README.md

+33
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353

5454
<!-- 这里可写通用的实现逻辑 -->
5555

56+
遍历二维数组
57+
5658
<!-- tabs:start -->
5759

5860
### **Python3**
@@ -71,6 +73,37 @@
7173

7274
```
7375

76+
### **TypeScript**
77+
78+
```ts
79+
function islandPerimeter(grid: number[][]): number {
80+
let m = grid.length, n = grid[0].length;
81+
let ans = 0;
82+
for (let i = 0; i < m; ++i) {
83+
for (let j = 0; j < n; ++j) {
84+
let top = 0, left = 0;
85+
if (i > 0) {
86+
top = grid[i - 1][j];
87+
}
88+
if (j > 0) {
89+
left = grid[i][j - 1];
90+
}
91+
let cur = grid[i][j];
92+
if (cur != top) ++ans;
93+
if (cur != left) ++ans;
94+
}
95+
}
96+
// 最后一行, 最后一列
97+
for (let i = 0; i < m; ++i) {
98+
if (grid[i][n - 1] == 1) ++ans;
99+
}
100+
for (let j = 0; j < n; ++j) {
101+
if (grid[m - 1][j] == 1) ++ans;
102+
}
103+
return ans;
104+
};
105+
```
106+
74107
### **...**
75108

76109
```

solution/0400-0499/0463.Island Perimeter/README_EN.md

+31
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,37 @@
6060

6161
```
6262

63+
### **TypeScript**
64+
65+
```ts
66+
function islandPerimeter(grid: number[][]): number {
67+
let m = grid.length, n = grid[0].length;
68+
let ans = 0;
69+
for (let i = 0; i < m; ++i) {
70+
for (let j = 0; j < n; ++j) {
71+
let top = 0, left = 0;
72+
if (i > 0) {
73+
top = grid[i - 1][j];
74+
}
75+
if (j > 0) {
76+
left = grid[i][j - 1];
77+
}
78+
let cur = grid[i][j];
79+
if (cur != top) ++ans;
80+
if (cur != left) ++ans;
81+
}
82+
}
83+
// 最后一行, 最后一列
84+
for (let i = 0; i < m; ++i) {
85+
if (grid[i][n - 1] == 1) ++ans;
86+
}
87+
for (let j = 0; j < n; ++j) {
88+
if (grid[m - 1][j] == 1) ++ans;
89+
}
90+
return ans;
91+
};
92+
```
93+
6394
### **...**
6495

6596
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
function islandPerimeter(grid: number[][]): number {
2+
let m = grid.length, n = grid[0].length;
3+
let ans = 0;
4+
for (let i = 0; i < m; ++i) {
5+
for (let j = 0; j < n; ++j) {
6+
let top = 0, left = 0;
7+
if (i > 0) {
8+
top = grid[i - 1][j];
9+
}
10+
if (j > 0) {
11+
left = grid[i][j - 1];
12+
}
13+
let cur = grid[i][j];
14+
if (cur != top) ++ans;
15+
if (cur != left) ++ans;
16+
}
17+
}
18+
// 最后一行, 最后一列
19+
for (let i = 0; i < m; ++i) {
20+
if (grid[i][n - 1] == 1) ++ans;
21+
}
22+
for (let j = 0; j < n; ++j) {
23+
if (grid[m - 1][j] == 1) ++ans;
24+
}
25+
return ans;
26+
};

0 commit comments

Comments
 (0)