Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- // bool fill(vector<vector<int>>& grid1,vector<vector<int>>& grid2,int i,int j){
- // if(grid2[i][j]==1){
- // grid2[i][j]=0;
- // // if(grid1[i][j]!=1){
- // // return false;
- // // }
- // bool ans=true;
- // int si=grid2.size();
- // int sj=grid2[0].size();
- // ans=ans&&fill(grid1,grid2,max(0,i-1),j);
- // ans=ans&&fill(grid1,grid2,min(si-1,i+1),j);
- // ans=ans&&fill(grid1,grid2,i,min(sj-1,j+1));
- // ans=ans&&fill(grid1,grid2,i,max(0,j-1));
- // return ans;
- // }
- // return false;
- // }
- bool fill(vector<vector<int>>& grid1,vector<vector<int>>& grid2,int i,int j){
- if(grid2[i][j]==1){
- grid2[i][j]=0;
- bool ans=true;
- if(grid1[i][j]!=1){
- ans=false;
- }
- int si=grid2.size();
- int sj=grid2[0].size();
- ans=ans&&fill(grid1,grid2,max(0,i-1),j);
- ans=ans&&fill(grid1,grid2,min(si-1,i+1),j);
- ans=ans&&fill(grid1,grid2,i,min(sj-1,j+1));
- ans=ans&&fill(grid1,grid2,i,max(0,j-1));
- return ans;
- }
- return true;
- }
- int countSubIslands(vector<vector<int>>& grid1, vector<vector<int>>& grid2) {
- cout<<fill(grid1,grid2,4,3)<<endl;
- int ans=0;
- for(int i=0;i<grid2.size();i++){
- for(int j=0;j<grid2[0].size();j++){
- if(grid2[i][j]==1){
- if(fill(grid1,grid2,i,j)){
- cout<<i<<":"<<j<<' ';
- ans++;
- }
- }
- }
- }
- // for(int i=0;i<grid2.size();i++){
- // for(int j=0;j<grid2[0].size();j++){
- // cout<<grid2[i][j];
- // }
- // cout<<endl;
- // }
- return ans;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement