**Problem Statement:**
Given the required input arguments, write an efficient algorithm to solve the **Number of Islands** problem. Implement the required logic as specified by standard definitions for this classic algorithmic challenge.
**Hint / Expected Approach:**
DFS/BFS flood fill from each unvisited '1'
**Edge Cases to Consider:**
- (1) All water grid
- (2) All land grid
- (3) Single cell grid