力扣刷题记录58.1-----200. 岛屿数量

目录

  • 一、题目
  • 二、代码
  • 三、运行结果


一、题目

力扣刷题记录58.1-----200. 岛屿数量_第1张图片
力扣刷题记录58.1-----200. 岛屿数量_第2张图片

二、代码

class Solution 
{
public:
    //原地修改 节省空间 很妙
    void infect(vector<vector<char>>& grid, int y, int x , int height, int length)
    {
        //越界 或者不满足条件
        if( y<0 || y>=height || x<0 || x>=length ||grid[y][x]!='1' ) return;

        // std::cout<<"grid.size   "<
        // std::cout<<"grid[0].size   "<

        std::cout<<"y    "<<y<<std::endl;         
        std::cout<<"x    "<<x<<std::endl;  

        grid[y][x]='2';

        infect(grid,y-1,x,height,length);
       // std::cout<<"alive"<
        infect(grid,y+1,x,height,length);   
       // std::cout<<"alive"<
        infect(grid,y,x-1,height,length);  
       // std::cout<<"alive"<
        infect(grid,y,x+1,height,length);      
       // std::cout<<"alive"<


    }
    int numIslands(vector<vector<char>>& grid) 
    {
         int i,j;
         int return_int=0;
        //  std::cout<<"grid.size   "<
        //  std::cout<<"grid[0].size   "<
        int length,height;
        length=grid[0].size();
        height=grid.size();
         for(i=0;i<height;i++)
         {
             for(j=0;j<length;j++)
             {
                 if(grid[i][j]=='1')
                 {
                    infect(grid,i,j,height,length);
                    return_int++;
                 }
             }
         }
         return return_int;
    }

};

三、运行结果

力扣刷题记录58.1-----200. 岛屿数量_第3张图片

你可能感兴趣的:(leetcode,c++,算法)