From d0cd150f8d4c807d4ef4757d4ff0def0e86ec435 Mon Sep 17 00:00:00 2001 From: hongyiheng Date: Thu, 4 Nov 2021 14:01:21 +0800 Subject: [PATCH] feat: add solutions to lc problem: No.0463.Island Perimeter --- .../0400-0499/0463.Island Perimeter/README.md | 36 +++++++++++++++++-- .../0463.Island Perimeter/README_EN.md | 36 +++++++++++++++++-- .../0463.Island Perimeter/Solution.java | 21 +++++++++++ .../0463.Island Perimeter/Solution.py | 13 +++++++ 4 files changed, 102 insertions(+), 4 deletions(-) create mode 100644 solution/0400-0499/0463.Island Perimeter/Solution.java create mode 100644 solution/0400-0499/0463.Island Perimeter/Solution.py diff --git a/solution/0400-0499/0463.Island Perimeter/README.md b/solution/0400-0499/0463.Island Perimeter/README.md index ac1173bee26fb..5338e0cd2eb04 100644 --- a/solution/0400-0499/0463.Island Perimeter/README.md +++ b/solution/0400-0499/0463.Island Perimeter/README.md @@ -62,7 +62,19 @@ ```python - +class Solution: + def islandPerimeter(self, grid: List[List[int]]) -> int: + m, n = len(grid), len(grid[0]) + ans = 0 + for i in range(m): + for j in range(n): + if grid[i][j] == 1: + ans += 4 + if i < m - 1 and grid[i + 1][j] == 1: + ans -= 2 + if j < n -1 and grid[i][j + 1] == 1: + ans -= 2 + return ans ``` ### **Java** @@ -70,7 +82,27 @@ ```java - +class Solution { + public int islandPerimeter(int[][] grid) { + int ans = 0; + int m = grid.length; + int n = grid[0].length; + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + if (grid[i][j] == 1) { + ans += 4; + if (i < m - 1 && grid[i + 1][j] == 1) { + ans -= 2; + } + if (j < n - 1 && grid[i][j + 1] == 1) { + ans -= 2; + } + } + } + } + return ans; + } +} ``` ### **TypeScript** diff --git a/solution/0400-0499/0463.Island Perimeter/README_EN.md b/solution/0400-0499/0463.Island Perimeter/README_EN.md index e5a95a7b1be87..eea80a34a0904 100644 --- a/solution/0400-0499/0463.Island Perimeter/README_EN.md +++ b/solution/0400-0499/0463.Island Perimeter/README_EN.md @@ -51,13 +51,45 @@ ### **Python3** ```python - +class Solution: + def islandPerimeter(self, grid: List[List[int]]) -> int: + m, n = len(grid), len(grid[0]) + ans = 0 + for i in range(m): + for j in range(n): + if grid[i][j] == 1: + ans += 4 + if i < m - 1 and grid[i + 1][j] == 1: + ans -= 2 + if j < n -1 and grid[i][j + 1] == 1: + ans -= 2 + return ans ``` ### **Java** ```java - +class Solution { + public int islandPerimeter(int[][] grid) { + int ans = 0; + int m = grid.length; + int n = grid[0].length; + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + if (grid[i][j] == 1) { + ans += 4; + if (i < m - 1 && grid[i + 1][j] == 1) { + ans -= 2; + } + if (j < n - 1 && grid[i][j + 1] == 1) { + ans -= 2; + } + } + } + } + return ans; + } +} ``` ### **TypeScript** diff --git a/solution/0400-0499/0463.Island Perimeter/Solution.java b/solution/0400-0499/0463.Island Perimeter/Solution.java new file mode 100644 index 0000000000000..24d71a84a0397 --- /dev/null +++ b/solution/0400-0499/0463.Island Perimeter/Solution.java @@ -0,0 +1,21 @@ +class Solution { + public int islandPerimeter(int[][] grid) { + int ans = 0; + int m = grid.length; + int n = grid[0].length; + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + if (grid[i][j] == 1) { + ans += 4; + if (i < m - 1 && grid[i + 1][j] == 1) { + ans -= 2; + } + if (j < n - 1 && grid[i][j + 1] == 1) { + ans -= 2; + } + } + } + } + return ans; + } +} \ No newline at end of file diff --git a/solution/0400-0499/0463.Island Perimeter/Solution.py b/solution/0400-0499/0463.Island Perimeter/Solution.py new file mode 100644 index 0000000000000..e263925bff081 --- /dev/null +++ b/solution/0400-0499/0463.Island Perimeter/Solution.py @@ -0,0 +1,13 @@ +class Solution: + def islandPerimeter(self, grid: List[List[int]]) -> int: + m, n = len(grid), len(grid[0]) + ans = 0 + for i in range(m): + for j in range(n): + if grid[i][j] == 1: + ans += 4 + if i < m - 1 and grid[i + 1][j] == 1: + ans -= 2 + if j < n -1 and grid[i][j + 1] == 1: + ans -= 2 + return ans \ No newline at end of file