[Google Phone] Delete Islands

Image placeholder 9899

(This question has been seen in the interviews of the following companies: Google)

Given a binary grid where 0 represents water and 1 represents land. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. Delete all islands except their borders. A border is land adjacent to water. You may assume all four edges of the grid are surrounded by water.

Example 1:

Input:
[[0, 0, 0, 1, 1, 1],
 [0, 0, 0, 1, 1, 1],
 [1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 1]]

Output:
[[0, 0, 0, 1, 1, 1],
 [0, 0, 0, 1, 0, 1],
 [1, 1, 1, 1, 0, 1],
 [1, 0, 0, 0, 0, 1],
 [1, 1, 1, 1, 1, 1]]
Example 2:
Input:
[[1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 1]]

Output:
[[1, 1, 1, 1, 1, 1],
 [1, 0, 0, 0, 0, 1],
 [1, 0, 0, 0, 0, 1],
 [1, 0, 0, 0, 0, 1],
 [1, 1, 1, 1, 1, 1]]
Example 3:
Input:
[[1, 1, 1, 0, 1, 1, 1],
 [1, 1, 1, 0, 1, 1, 1],
 [1, 1, 1, 0, 1, 1, 1],
 [0, 0, 0, 0, 1, 1, 1],
 [1, 1, 1, 0, 1, 1, 1]]

Output:
[[1, 1, 1, 0, 1, 1, 1],
 [1, 0, 1, 0, 1, 0, 1],
 [1, 1, 1, 0, 1, 0, 1],
 [0, 0, 0, 0, 1, 0, 1],
 [1, 1, 1, 0, 1, 1, 1]]




Get one-to-one training from Google Facebook engineers

Top-notch Professionals

Learn from Facebook and Google senior engineers interviewed 100+ candidates.
Most recent interview questions and system design topics gathered from aonecode alumnus.
One-to-one online classes. Get feedbacks from real interviewers.

Customized Private Class

Already a coding expert? - Advance straight to hard interview topics of your interest.
New to the ground? - Develop basic coding skills with your own designated mentor.
Days before interview? - Focus on most important problems in target company question bank.