diff --git a/count-sub-islands.js b/count-sub-islands.js index bb0b976..576bff3 100644 --- a/count-sub-islands.js +++ b/count-sub-islands.js @@ -5,17 +5,17 @@ */ var countSubIslands = function(grid1, grid2) { let answer = 0; - - var notCovered = function(r, c){ + // No hay array booleano porque los visitados se marcan en grid2 con un 2 + var area = 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); + return (grid1[r][c] === 1 ? 0 : 1) + area(r, c-1) + area(r-1, c) + area(r, c+1) + area(r+1, c); } for (let i = 0; i < grid1.length; i++) { for (let j = 0; j < grid1[0].length; j++) { - if(notCovered(i, j) == 0) answer++; + if(grid2[i][j] === 1 && area(i, j) === 0) answer++; } } return answer;