class Solution { public: //全局队列用来缓存 queue<pair<int, int>> q; void check(int x, int y, vector<vector<char>>& grid) { int m = grid.size(); int n = grid[0].size(); if(x >= 0 && x < m && y>=0 && y<n && grid[x][y] == '1') { q.push(make_pair(x,y)); grid[x][y] = '0'; } } void floodfill(int x, int y, vector<vector<char>>& grid) { q.push(make_pair(x,y)); grid[x][y] = '0'; while(!q.empty()) { auto tmp = q.front(); int x_ = tmp.first; int y_ = tmp.second; q.pop(); check(x_-1,y_,grid); check(x_+1,y_,grid); check(x_,y_-1,grid); check(x_,y_+1,grid); } } int numIslands(vector<vector<char>>& grid) { int m = grid.size(); if(m==0) return 0; int n = grid[0].size(); if(n==0) return 0; int ans = 0; for(int i=0; i<m;++i) { for(int j=0;j<n;++j) { if(grid[i][j] == '1') { floodfill(i,j,grid); ans++; } } } return ans; } };
Leetcode 200. 岛屿的个数
猜你喜欢
转载自www.cnblogs.com/randyniu/p/9220634.html
今日推荐
周排行