robots
, distance
, and walls
:robots[i]
is the position of the ith
robot.distance[i]
is the maximum distance the ith
robot's bullet can travel.walls[j]
is the position of the jth
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:
Example 1:
Input: robots = [4], distance = [3], walls = [1,10]
Output: 1
Explanation:
robots[0] = 4
fires left with distance[0] = 3
, covering [1, 4]
and destroys walls[0] = 1
.Example 2:
Input: robots = [10,2], distance = [5,1], walls = [5,2,7]
Output: 3
Explanation:
robots[0] = 10
fires left with distance[0] = 5
, covering [5, 10]
and destroys walls[0] = 5
and walls[2] = 7
.robots[1] = 2
fires left with distance[1] = 1
, covering [1, 2]
and destroys walls[1] = 2
.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
robots
are uniquewalls
are unique