Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- bool valid (int r , int c , int rows, int cols)
- {
- return ( (r >= 0 && r < rows ) && (c >= 0 && c < cols));
- }
- void dfs (vector<vector<char>>& grid, int r , int c , int rows, int cols)
- {
- if (!valid (r, c, rows, cols) || grid[r][c] == '0')
- return;
- //cout << r << c << endl;
- grid[r][c] = '0';
- dfs (grid, r + 1, c, rows, cols);
- dfs (grid, r, c + 1, rows, cols);
- dfs (grid, r - 1, c, rows, cols);
- dfs (grid, r, c - 1, rows, cols);
- }
- int numIslands(vector<vector<char>>& grid) {
- int res = 0;
- int cols = 0;
- int rows = grid.size();
- if ( rows)
- cols = grid[0].size();
- for (int r = 0 ; r < rows ; r++)
- {
- for (int c = 0 ; c < cols ; c++)
- {
- if (grid[r][c] == '1')
- {
- res ++;
- dfs (grid, r, c, rows, cols);
- }
- }
- }
- return res;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement