Hi, here's your problem today. This problem was recently asked by LinkedIn: Given a 2-dimensional grid consisting of 1's (land blocks) and 0's (water blocks), count the number of islands present in the grid. The definition of an island is as follows: 1.) Must be surrounded by water blocks. 2.) Consists of land blocks (1's) connected to adjacent land blocks (either vertically or horizontally). Assume all edges outside of the grid are water. Example: Input:
10001 11000 10110 00000Output: 3 Here's your starting point:
class Solution(object):
def inRange(self, grid, r, c):
numRow, numCol = len(grid), len(grid[0])
if r < 0 or c < 0 or r >= numRow or c >= numCol:
return False
return True
def numIslands(self, grid):
# Fill this in.
grid = [[1, 1, 0, 0, 0],
[0, 1, 0, 0, 1],
[1, 0, 0, 1, 1],
[0, 0, 0, 0, 0]]
print(Solution().numIslands(grid))
# 3