From 4f685b14e12f8d850e2389408fd4d069e2b514bd Mon Sep 17 00:00:00 2001 From: Masiel Villalba Date: Sat, 16 Jul 2022 18:22:36 -0400 Subject: [PATCH] wrong answer --- count-sub-islands.js | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/count-sub-islands.js b/count-sub-islands.js index e4031bd..bb0b976 100644 --- a/count-sub-islands.js +++ b/count-sub-islands.js @@ -5,34 +5,18 @@ */ var countSubIslands = function(grid1, grid2) { let answer = 0; - let seen = newBiArray(grid1.length, grid1[0].length); + + var notCovered = function(r, c){ + if(r < 0 || c < 0 || r == grid1.length || c == grid1[0].length || grid2[r][c] != 1) return 0; + + grid2[r][c] = 2; + return (grid1[r][c] == grid2[r][c] ? 0 : 1) + notCovered(r, c-1) + notCovered(r-1, c) + notCovered(r, c+1) + notCovered(r+1, c); + } + for (let i = 0; i < grid1.length; i++) { for (let j = 0; j < grid1[0].length; j++) { - if(answer, area(i, j, grid1, grid2, seen) > 0) answer++; + if(notCovered(i, j) == 0) answer++; } } return answer; -}; - -var newBiArray = function(r, c){ - var gfg = new Array(r); - for (var i = 0; i < gfg.length; i++) { - gfg[i] = new Array(c); - } - return gfg; -} - -/** - * @param {number} r - * @param {number} c - * @param {number[][]} grid1 - * @param {number[][]} grid2 - * @param {boolean[][]} seen - * @return {number} - */ -var area = function(r, c, grid1, grid2, seen){ - if(r < 0 || c < 0 || r == grid1.length || c == grid1[0].length || grid2[r][c] == 0 || seen[r][c] || grid1[r][c] == grid2[r][c]) return 0; - - seen[r][c] = true; - return p + area(r, c-1, grid1, grid2, seen) + area(r-1, c, grid1, grid2, seen) + area(r, c+1, grid1, grid2, seen) + area(r+1, c, grid1, grid2, seen); -} \ No newline at end of file +}; \ No newline at end of file