# Leetcode 200. Number of Islands ###### tags: `Leetcode(C++)` 題目 : https://leetcode.com/problems/number-of-islands/ 。 想法 : flood fill。 掃描到有島就把島歸0,再繼續找下一座島。 時間複雜度 : O(m*n)。 程式碼 : ``` class Solution { public: int maxr, maxc, ans; void erase(vector<vector<char>>& grid, int r,int c){ if(grid[r][c] == '1'){ grid[r][c]='0'; if(r <= maxr-2) erase(grid, r+1, c); if(r >= 1) erase(grid, r-1, c); if(c <= maxc-2) erase(grid, r, c+1); if(c >= 1) erase(grid, r, c-1); } } int numIslands(vector<vector<char>>& grid) { maxr=grid.size(); maxc=grid[0].size(); ans=0; for(int i=0 ; i<maxr ; i++){ for(int j=0 ; j<maxc ; j++){ if(grid[i][j] == '1'){ erase(grid, i, j); ans++; } } } return ans; } }; ```