给定一个整数数组,表示同一行中的小行星。对于数组中的每个元素,其绝对值表示小行星的大小,正负表示移动方向(正数向右,负数向左)。每颗小行星速度相同。找出所有碰撞后幸存的小行星。例如 [10,2,-5] 应返回 [10]。
考察说明
考察栈的使用、碰撞条件判断与边界处理
回答思路
- 识别只有正数在左、负数在右才可能碰撞
- 使用栈模拟小行星运动,处理相邻碰撞
- 正确比较大小决定幸存者:大者留、小者消失、相等同归于尽
- 处理栈顶和当前小行星方向相反的场景
- 输出栈中剩余元素的最终顺序
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。