2024-07-13
2751. Robot Collisions
There are n 1-indexed robots, each having a position on a line, health, and
movement direction.
You are given 0-indexed integer arrays positions, healths, and a string
directions (directions[i] is either 'L' for left or 'R' for right). All
integers in positions are unique.
All robots start moving on the line simultaneously at the same speed in their
given directions. If two robots ever share the same position while moving,
they will collide.
If two robots collide, the robot with lower health is removed from the line,
and the health of the other robot decreases by one. The surviving robot
continues in the same direction it was going. If both robots have the same
health, they are both removed from the line.
Your task is to determine the health of the robots that survive the
collisions, in the same order that the robots were given, i.e. final heath of
robot 1 (if survived), final health of robot 2 (if survived), and so on. If
there are no survivors, return an empty array.
Return an array containing the health of the remaining robots (in the order
they were given in the input), after no further collisions can occur.
Note: The positions may be unsorted.
繼續抄解答.jpg
泥板只剩我寫不出H了
題目要看哪些會機器人會相撞
要先把往左跟往右的分開
然後往右的從位置最靠右邊的開始
一路往右撞過去 撞到自己死掉或是右邊沒有往左的障礙物
最後看還有哪些殘血就是答案
所以會需要先對位置做排序
同時還要記錄生命值
需要自定義排序比大小的function
https://stackoverflow.com/questions/1577475/
要再難一點應該就是不等速
甚至是四方向
不過這樣我不知道除了一步一步跑模擬還能怎麼辦