classSolution{public:intcountSubIslands(vector<vector<int>>&grid1,vector<vector<int>>&grid2){intans=0;for(inti=0;i<grid2.size();++i)for(intj=0;j<grid2[0].size();++j)if(grid2[i][j]==1)ans+=dfs(grid1,grid2,i,j);returnans;}private:intdfs(constvector<vector<int>>&grid1,vector<vector<int>>&grid2,inti,intj){if(i<0||i==grid1.size()||j<0||j==grid2[0].size())return1;if(grid2[i][j]!=1)return1;grid2[i][j]=2;// Mark 2 as visited.returndfs(grid1,grid2,i+1,j)&dfs(grid1,grid2,i-1,j)&dfs(grid1,grid2,i,j+1)&dfs(grid1,grid2,i,j-1)&grid1[i][j];}};
1 2 3 4 5 6 7 8 910111213141516171819202122232425
classSolution{publicintcountSubIslands(int[][]grid1,int[][]grid2){intans=0;for(inti=0;i<grid2.length;++i)for(intj=0;j<grid2[0].length;++j)if(grid2[i][j]==1)ans+=dfs(grid1,grid2,i,j);returnans;}privateintdfs(int[][]grid1,int[][]grid2,inti,intj){if(i<0||i==grid1.length||j<0||j==grid2[0].length)return1;if(grid2[i][j]!=1)return1;grid2[i][j]=2;// Mark 2 as visited.return//dfs(grid1,grid2,i+1,j)&dfs(grid1,grid2,i-1,j)&//dfs(grid1,grid2,i,j+1)&dfs(grid1,grid2,i,j-1)&grid1[i][j];}}
classSolution:defcountSubIslands(self,grid1:list[list[int]],grid2:list[list[int]],)->int:m=len(grid2)n=len(grid2[0])defdfs(i:int,j:int)->int:ifi<0ori==morj<0orj==n:return1ifgrid2[i][j]!=1:return1grid2[i][j]=2# Mark 2 as visited.return(dfs(i+1,j)&dfs(i-1,j)&dfs(i,j+1)&dfs(i,j-1)&grid1[i][j])ans=0foriinrange(m):forjinrange(n):ifgrid2[i][j]==1:ans+=dfs(i,j)returnans
Thanks for stopping by! If you find this site helpful, consider buying me some protein powder to keep me fueled! π