大佬们来解答一下这个面试题(语言不限)
資深大佬 : cat404 6
说有一个游戏战斗场景:左右两边各有一定数量战斗力不等(战斗力就是数组中的数值)的小兵,战斗开始的时候左边的小兵永远只会向右前进且不能回头,右边的小兵永远只会向左前进且不能回头,当两个小兵相遇的时高战斗力的小兵会把低战斗力的给淘汰掉。
现用一个数组来表示场上的所有小兵,其中正数代表左变的小兵,负数代表右边的小兵,然后实现一个函数输入这个输入返回战斗结果。
举例:
- 输入:[5, 10, -5]
- 结果:[5, 10]
- 解释:左边有战力分别为 5,10 的两个小兵,右边有一个战斗力为 5 的小兵,战斗开始的时候,5 和 10 向右一定,-5 向左移动,10 和-5 相遇,-5 小兵的战斗力是 5,被 10 淘汰掉,于是结果是 5,10
- 输入:[6, -6]
- 结果:[ ]
- 解释:左边有一个战斗力 6 的小兵,右边有一个战斗为 6 的小兵,战斗开始双方移动并相遇后因为战斗力相等均被淘汰
- 输入:[-1, -2, 3, -4, 5]
- 结果:[-1, -2, -4, 5]
- 解释:左边有 2 个小兵战斗力分别为 3,5,右边有 3 个小兵战斗力分别为 1,2,4 。战斗开始后-1 和-2 因为不能回头所以不会遇到敌方小兵,5 也同理。然后 3 和-4 相遇,3 被淘汰,所以结果是-1, -2, -4, 5
大佬有話說 (19)