From 4b71838839c3220c8798439c9cd8194d85970927 Mon Sep 17 00:00:00 2001 From: chayan das <110921638+Chayandas07@users.noreply.github.com> Date: Wed, 28 Aug 2024 21:54:00 +0530 Subject: [PATCH] Create 1937. Maximum Number of Points with Cost1 --- 1937. Maximum Number of Points with Cost1 | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 1937. Maximum Number of Points with Cost1 diff --git a/1937. Maximum Number of Points with Cost1 b/1937. Maximum Number of Points with Cost1 new file mode 100644 index 0000000..90a7f11 --- /dev/null +++ b/1937. Maximum Number of Points with Cost1 @@ -0,0 +1,34 @@ +class Solution { +public: + int n; //row + int m; //column + bool flag; + void dfs(vector>& grid1, vector>& grid2,int row,int column){ + if (row < 0 || row >= n || column < 0 || column >= m || grid2[row][column] == 0) { + return; + } + grid2[row][column] = 0; // mark visited + dfs(grid1, grid2, row - 1, column); // up + dfs(grid1, grid2, row + 1, column); // down + dfs(grid1, grid2, row, column - 1); // left + dfs(grid1, grid2, row, column + 1); // right + if (grid1[row][column] == 0) { + flag = false; // no island found + } + } + int countSubIslands(vector>& grid1, vector>& grid2) { + n = grid1.size(); + m = grid1[0].size(); + int countSubIslands = 0; + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + if (grid2[i][j] == 1) { + flag = true; + dfs(grid1, grid2, i, j); + countSubIslands += flag; + } + } + } + return countSubIslands; + } +};