1. LeetCode Problem 200: Number of Islands
During a coding interview, you were asked to solve the 'Number of Islands' problem from LeetCode (LC-200). The task involves writing code to count the number of distinct islands in a given 2D grid map, where '1' represents land and '0' represents water. Discuss your approach to solving this problem, including any algorithms or data structures you would use, and explain the complexity of your solution.