Given an m x n 2D binary grid grid which represents a map of ‘1’s (land) and ‘0’s (water), return the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.
This problem asks you to count how many connected components of land (‘1’) exist in a 2D grid when connectivity is restricted to horizontal and vertical directions. A typical way to approach this is to traverse the grid and trigger a DFS or BFS every time you encounter an unvisited land cell, marking all reachable land in that component. The number of times you start such a traversal equals the number of islands.