3661: Maximum Walls Destroyed by Robots
Problem Statement
robots
, distance
, and walls
:robots[i]
is the position of theith
robot.distance[i]
is the maximum distance theith
robot's bullet can travel.walls[j]
is the position of thejth
wall.
Every robot has one bullet that can either fire to the left or the right at most distance[i]
meters.
A bullet destroys every wall in its path that lies within its range. Robots are fixed obstacles: if a bullet hits another robot before reaching a wall, it immediately stops at that robot and cannot continue.
Return the maximum number of unique walls that can be destroyed by the robots.
Notes:
- A wall and a robot may share the same position; the wall can be destroyed by the robot at that position.
- Robots are not destroyed by bullets.
Example 1:
Input: robots = [4], distance = [3], walls = [1,10]
Output: 1
Explanation:
robots[0] = 4
fires left withdistance[0] = 3
, covering[1, 4]
and destroyswalls[0] = 1
.- Thus, the answer is 1.
Example 2:
Input: robots = [10,2], distance = [5,1], walls = [5,2,7]
Output: 3
Explanation:
robots[0] = 10
fires left withdistance[0] = 5
, covering[5, 10]
and destroyswalls[0] = 5
andwalls[2] = 7
.robots[1] = 2
fires left withdistance[1] = 1
, covering[1, 2]
and destroyswalls[1] = 2
.- Thus, the answer is 3.
Input: robots = [1,2], distance = [100,1], walls = [10]
Output: 0
Explanation:
In this example, only robots[0]
can reach the wall, but its shot to the right is blocked by robots[1]
; thus the answer is 0.
Constraints:
1 <= robots.length == distance.length <= 105
1 <= walls.length <= 105
1 <= robots[i], walls[j] <= 109
1 <= distance[i] <= 105
- All values in
robots
are unique - All values in
walls
are unique
Code Solution