leetcode【DFS】-----200. Number of Islands(島嶼數量)

一、題目描述

二、分析

        這道題求島嶼數量,島嶼是周圍都是水,二維數組中1爲島嶼,0爲水,而且連着的島嶼算一個。求給定的數組中島嶼的數量。咱們能夠遍歷,在找到一個島嶼的時候,計數加1,把它設爲0,對其進行深搜,找其周圍是否還存在島嶼,若是存在也將其設置爲0,而後再找其他的1進行遍歷。數組

三、代碼

class Solution {
public:
    int numIslands(vector<vector<char>>& grid) {
        if(grid.size()==0) return  0;
        int sum=0;
        for(int i=0;i<grid.size();++i){
            for(int j=0;j<grid[0].size();++j){
                if(grid[i][j]=='1'){
                    ++sum;
                    DFS(i,j,grid);
                }
            }
        }
        return sum;
    }
    void DFS(int x,int y,vector<vector<char>>& map){
        if(x<0||x>=map.size()||y<0||y>=map[0].size()) return ;
        if(map[x][y]=='1'){
            map[x][y]='0';
            DFS(x-1,y,map);
            DFS(x+1,y,map);
            DFS(x,y-1,map);
            DFS(x,y+1,map);
        }
    }
};

四、相關知識點

        DFS。小技巧,修改值。code

相關文章
相關標籤/搜索