Free 30-minute trial

500+ reviews from engineers

Medium · Graphs · spoken drill

Free AI LeetCode Communication Coach — Number of Islands

Treat the grid as a graph; each unvisited land starts a DFS/BFS that sinks the island.

The problem

Given a 2D grid of '1' (land) and '0' (water), return the number of islands. Islands are 4-directionally connected.

Example: grid with two separate land blobs → 2

Scan + flood fill.

def numIslands(grid):
    if not grid: return 0
    rows, cols = len(grid), len(grid[0])
    def dfs(r, c):
        if r < 0 or c < 0 or r >= rows or c >= cols or grid[r][c] != "1":
            return
        grid[r][c] = "0"
        for dr, dc in ((1,0),(-1,0),(0,1),(0,-1)):
            dfs(r+dr, c+dc)
    count = 0
    for r in range(rows):
        for c in range(cols):
            if grid[r][c] == "1":
                count += 1
                dfs(r, c)
    return count

How to explain it

  1. 1. Restate

    Say the problem in your own words.

    One or two sentences. Show you understood the input, the output, and the goal — not that you memorised the prompt.

  2. 2. Approach

    Name the method before you code.

    Brute force first if you need it, then the structure you will use: hash map, two pointers, stack, binary search.

  3. 3. Example

    Walk one concrete input.

    Pick small numbers. Say what you store, what you compare, and what you return. Interviewers follow an example more easily than abstract talk.

  4. 4. Time and space

    One sentence each.

    After the example, before you claim you are done. “Time is O(n) because we scan once. Space is O(n) for the map.”

  5. 5. Edge cases

    Name at least one unusual input.

    Empty input, duplicates, already sorted, overflow. Invite a follow-up: “I would also check …”

  • “Each unvisited land starts one island.”
  • “I flood-fill to mark the whole component.”

Practise out loud

3 free scored runs left this hour.

Problem · Medium

Given a 2D grid of '1' (land) and '0' (water), return the number of islands. Islands are 4-directionally connected.

Example: grid with two separate land blobs → 2

  1. 1Restate — Say the problem in your own words.
  2. 2Approach — Name the method before you code.
  3. 3Example — Walk one concrete input.
  4. 4Time and space — One sentence each.
  5. 5Edge cases — Name at least one unusual input.

Hit record. Short countdown, then 60–90 seconds. We score the five-step script — never pronunciation.

Recording needs Chrome or Edge. You can still type below.

Model spoken script (~75s)

  1. 1. Restate

    I need how many connected land components are in the grid, 4-directional.

  2. 2. Approach

    I scan every cell. When I find land, I increment the count and DFS or BFS to mark the whole island as visited water.

  3. 3. Example

    If two land blobs are separated by water, the first flood fill marks one island, the second scan finds the other — count is two.

  4. 4. Time and space

    Time is O(m n). Space is O(m n) in the worst case for the call stack or queue.

  5. 5. Edge cases

    I would check an all-water grid and a single land cell.

Common mistakes when explaining Number of Islands

  • Forgetting to mark visited land (infinite recursion).
  • Using 8 directions when the prompt says 4.

Other problems

Browse full catalogue

FAQ

Questions

Scan grid, DFS/BFS flood fill each land, O(mn).

More questions? Email us at contact@mocklyenglish.com.

Course: How to explain a LeetCode solution · Think out loud · Explain code out loud