Tap here to switch tabs
Problem
Ask
Submissions

Problem: Number of Spaces Cleaning Robot Cleaned

med
30 min
Explore how to simulate a cleaning robot moving in a 2D binary matrix, cleaning unique spaces while handling boundaries and obstacles. Understand traversal logic, direction rotations, and how to detect revisits, enabling you to solve similar matrix and movement pattern problems effectively.

Statement

You are given a 0-indexed 2D binary matrix, room, representing a room of size m×nm \times n. In this matrix, 00 represents an empty space, while 11 represents a space occupied by an object. The top-left corner of the room is always empty in all test cases.

A cleaning robot starts at the top-left corner of the room, facing right. It moves straight until it either reaches the edge of the room or encounters an object. When this happens, it turns 90 degrees clockwise and continues moving. The robot cleans the starting space and every space it visits.

The robot continues moving indefinitely. If it visits a space again while facing the same direction, return the number of unique spaces it has cleaned.

Constraints:

  • m==m == room.length

  • n==n == room[r].length

  • 1m,n3001 \leq m, n \leq 300

  • room[r][c] is either 00 or 11.

  • room[0][0] ==0== 0

Tap here to switch tabs
Problem
Ask
Submissions

Problem: Number of Spaces Cleaning Robot Cleaned

med
30 min
Explore how to simulate a cleaning robot moving in a 2D binary matrix, cleaning unique spaces while handling boundaries and obstacles. Understand traversal logic, direction rotations, and how to detect revisits, enabling you to solve similar matrix and movement pattern problems effectively.

Statement

You are given a 0-indexed 2D binary matrix, room, representing a room of size m×nm \times n. In this matrix, 00 represents an empty space, while 11 represents a space occupied by an object. The top-left corner of the room is always empty in all test cases.

A cleaning robot starts at the top-left corner of the room, facing right. It moves straight until it either reaches the edge of the room or encounters an object. When this happens, it turns 90 degrees clockwise and continues moving. The robot cleans the starting space and every space it visits.

The robot continues moving indefinitely. If it visits a space again while facing the same direction, return the number of unique spaces it has cleaned.

Constraints:

  • m==m == room.length

  • n==n == room[r].length

  • 1m,n3001 \leq m, n \leq 300

  • room[r][c] is either 00 or 11.

  • room[0][0] ==0== 0