Problem
Ask
Submissions

Problem: Number of Spaces Cleaning Robot Cleaned

Medium
30 min
Explore how to model and solve the problem of a cleaning robot moving within a 2D matrix representing a room. Learn to track the robot's movement, handle directional changes upon hitting obstacles or boundaries, and count unique cleaned spaces efficiently through matrix traversal techniques.

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

Problem
Ask
Submissions

Problem: Number of Spaces Cleaning Robot Cleaned

Medium
30 min
Explore how to model and solve the problem of a cleaning robot moving within a 2D matrix representing a room. Learn to track the robot's movement, handle directional changes upon hitting obstacles or boundaries, and count unique cleaned spaces efficiently through matrix traversal techniques.

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