A Leetcode graphs question.

Problem

https://leetcode.com/problems/number-of-islands/

Soln

#include "leetcodeutils.hpp"
using namespace std;
 
 
void clearisland(vector<vector<char>>& grid, int i, int j){
        grid[i][j] = '0';
        if (j >= 1 && grid[i][j-1] == '1') clearisland(grid, i, j-1);
        if (j < grid[i].size()-1 && grid[i][j+1] == '1') clearisland(grid, i, j+1);
        if (i >= 1 && grid[i-1][j] == '1') clearisland(grid, i-1, j);
        if (i < grid.size()-1 && grid[i+1][j] == '1') clearisland(grid, i+1, j);
}
 
int numIslands(vector<vector<char>>& grid) {
    int islands = 0;
    for (int i = 0; i < grid.size(); i++){
        for (int j = 0; j < grid[i].size(); j++){
            //cerr << grid[i][j];
            if (grid[i][j] == '1'){
                islands++;
                clearisland(grid, i, j);
            }
        }
    }
    return islands;
}
 
int main(){
  vector<vector<char>> a = {
  {'1','1','1','1','0'},
  {'1','1','0','1','0'},
  {'1','1','0','0','0'},
  {'0','0','0','0','0'}
  };
  cout << numIslands(a);
}