← Back to LeetCode Notes

200. Number of Islands

medium · array · depth-first-search · breadth-first-search · union-find · matrix · solved 2026.07.25 · 10 sec read

View on LeetCode ↗
C++
class Solution {public:    void fillnumIslands(vector<vector<char>>& grid, int x, int y) {        if (x < 0 || y < 0 || x >= grid.size() || y >= grid[0].size() ||            grid[x][y] == '0')            return;        grid[x][y] = '0';        fillnumIslands(grid, x, y - 1);        fillnumIslands(grid, x, y + 1);        fillnumIslands(grid, x + 1, y);        fillnumIslands(grid, x - 1, y);    }    int numIslands(vector<vector<char>>& grid) {        int island_count = 0;        for (int i = 0; i < grid.size(); i++) {            for (int j = 0; j < grid[0].size(); j++) {                if (grid[i][j] == '1') {                    fillnumIslands(grid, i, j);                    ++island_count;                }            }        }        return island_count;    }};

had solved before, was being stupid when i was doing diagonals instead of cartesian.