From 2915e63749bf8b0e0841c7b929fad5a2799f335b Mon Sep 17 00:00:00 2001 From: Ignacio Chiazzo Date: Thu, 29 Oct 2020 18:50:36 -0400 Subject: [PATCH 1/3] Added MaxAreaOfIslands problem solution --- LeetcodeProblems/Max_Area_Of_Island.js | 52 ++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 LeetcodeProblems/Max_Area_Of_Island.js diff --git a/LeetcodeProblems/Max_Area_Of_Island.js b/LeetcodeProblems/Max_Area_Of_Island.js new file mode 100644 index 0000000..32c82a2 --- /dev/null +++ b/LeetcodeProblems/Max_Area_Of_Island.js @@ -0,0 +1,52 @@ +/* +Max Area of Island + +Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water. + +Find the maximum area of an island in the given 2D array. (If there is no island, the maximum area is 0.) + +Example 1: + +[[0,0,1,0,0,0,0,1,0,0,0,0,0], + [0,0,0,0,0,0,0,1,1,1,0,0,0], + [0,1,1,0,1,0,0,0,0,0,0,0,0], + [0,1,0,0,1,1,0,0,1,0,1,0,0], + [0,1,0,0,1,1,0,0,1,1,1,0,0], + [0,0,0,0,0,0,0,0,0,0,1,0,0], + [0,0,0,0,0,0,0,1,1,1,0,0,0], + [0,0,0,0,0,0,0,1,1,0,0,0,0]] +Given the above grid, return 6. Note the answer is not 11, because the island must be connected 4-directionally. +Example 2: + +[[0,0,0,0,0,0,0,0]] +Given the above grid, return 0. +Note: The length of each dimension in the given grid does not exceed 50. +*/ + +/** + * @param {number[][]} grid + * @return {number} + */ +var maxAreaOfIsland = function(grid) { + var maxArea = 0; + + for(var i = 0; i < grid.length; i++) { + for(var j = 0; j < grid[0].length; j++) { + maxArea = Math.max(markIsland(i, j, grid), maxArea); + } + } + + return maxArea; +}; + +var markIsland = function(row, col, grid) { + if(row < 0 || row >= grid.length || col < 0 || col >= grid[0].length || grid[row][col] == 0) { + return 0; + } + + grid[row][col] = 0; + return 1 + markIsland(row + 1, col, grid) + markIsland(row - 1, col, grid) + + markIsland(row, col +1, grid) + markIsland(row, col - 1, grid); +} + +module.exports.maxAreaOfIsland = maxAreaOfIsland; From af383c111a1abdd6e6047f661371a9445da8d1d3 Mon Sep 17 00:00:00 2001 From: Ignacio Chiazzo Date: Thu, 29 Oct 2020 18:50:52 -0400 Subject: [PATCH 2/3] Added MaxAreaOfIslands problem test --- .../Max_Area_Of_Island_Test.js | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 LeetcodeProblemsTests/Max_Area_Of_Island_Test.js diff --git a/LeetcodeProblemsTests/Max_Area_Of_Island_Test.js b/LeetcodeProblemsTests/Max_Area_Of_Island_Test.js new file mode 100644 index 0000000..d243dce --- /dev/null +++ b/LeetcodeProblemsTests/Max_Area_Of_Island_Test.js @@ -0,0 +1,51 @@ +const assert = require('assert'); +const { maxAreaOfIsland } = require('../LeetcodeProblems/Max_Area_Of_Island'); + +function test1() { + var matrix = [ + [0,0,1,0,0,0,0,1,0,0,0,0,0], + [0,0,0,0,0,0,0,1,1,1,0,0,0], + [0,1,1,0,1,0,0,0,0,0,0,0,0], + [0,1,0,0,1,1,0,0,1,0,1,0,0], + [0,1,0,0,1,1,0,0,1,1,1,0,0], + [0,0,0,0,0,0,0,0,0,0,1,0,0], + [0,0,0,0,0,0,0,1,1,1,0,0,0], + [0,0,0,0,0,0,0,1,1,0,0,0,0] + ] + + assert.strictEqual(maxAreaOfIsland(matrix), 6); +} + +function test2() { + var matrix = [ + [0, 1, 1, 0, 0], + [0, 1, 1, 0, 0], + [0, 0, 1, 0, 1], + [0, 1, 0, 0, 1], + [0, 1, 1, 0, 1], + [0, 0, 0, 0, 0], + ] + + assert.strictEqual(maxAreaOfIsland(matrix), 5); +} + +function test3() { + var matrix = [ + [0, 1, 0, 0, 0], + [0, 1, 1, 1, 1], + [0, 0, 0, 0, 1], + [0, 1, 1, 1, 1], + [0, 0, 1, 0, 0], + [0, 0, 0, 0, 0], + ] + + assert.strictEqual(maxAreaOfIsland(matrix), 11); +} + +function test() { + test1(); + test2(); + test3(); +} + +module.exports.test = test From 45cab44d9b4a511fc797f4448e0491062cc003e2 Mon Sep 17 00:00:00 2001 From: Ignacio Chiazzo Date: Thu, 29 Oct 2020 18:51:09 -0400 Subject: [PATCH 3/3] Added MaxAreaOfIslands problem to the README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 342de61..ba3cb71 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,8 @@ To run a specific problem in your console, go to the file test, add the call to | [Group Anagrams ](/LeetcodeProblems/Group_Anagrams.js) | Medium | https://leetcode.com/problems/group-anagrams/ | [Kth Largest Element in an Array ](/LeetcodeProblems/Kth_Largest_Element_in_an_Array.js) | Medium | https://leetcode.com/problems/kth-largest-element-in-an-array/ | | [Linked List Cycle II ](/LeetcodeProblems/Linked_List_Cycle_II.js) | Medium | https://leetcode.com/problems/linked-list-cycle-ii/ | -| [Longest Palindromic Substring ](/LeetcodeProblems/Longest_Palindromic_Substring.js) | Medium | https://leetcode.com/problems/longest-palindromic-substring/ | +| [Longest Palindromic Substring ](/LeetcodeProblems/Longest_Palindromic_Substring.js) | Medium | https://leetcode.com/problems/longest-palindromic-substring/| +| [Max Area Of Island](https://leetcode.com/problems/max-area-of-island/) | Medium | https://leetcode.com/problems/max-area-of-island/ | | [Maximal Square ](/LeetcodeProblems/Maximal_Square.js) | Medium | https://leetcode.com/problems/maximal-square/ | | [Permutations ](/LeetcodeProblems/Permutations.js) | Medium | https://leetcode.com/problems/permutations/ | | [Permutations II ](/LeetcodeProblems/Permutations_II.js) | Medium | https://leetcode.com/problems/permutations-ii/ | pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy