分析消除规则可以发现一个关键性质:场上最多只有一个能量球。
推理过程:初始场上为空。每来一个新球,它与场上的幸存者发生碰撞——大的留下、小的被消除、相等的同归于尽。碰撞后场上要么有一个幸存者(大的那个),要么为空(同归于尽),绝不可能出现两个球并存的情况。因此整个过程只需维护 一个变量 记录当前幸存者的能量值。
算法步骤:
survivor 为空(表示场上无球)。在一个充满魔法能量的消除游戏中,一排排不同颜色的能量球(代表不同质量/能量值)静止在网格中。当玩家触发消除机制时,相邻的能量球会发生相互碰撞。
给定一排初始的能量球序列,请模拟上述消除过程,找出最终留在场上的所有能量球及其顺序。
能量球的个数不超过 1000 个,能量球的能量值是非负整数,最大不超过 10000
输入为一行字符串,格式为 n,[a1,a2,a3,...,an],其中 n 表示能量球的数量,方括号内为初始能量球序列的数值列表。
输出最终留在场上的所有能量球序列,以数组形式表示,格式为 [b1,b2,...,bm]。
输入
5,[3,5,5,2,3]
输出
[3]
说明
[3][5][] (空)[2][3]最终结果:场上只剩下一个 3。
输入
6,[1,2,2,1,3,4]
输出
[4]
说明
[1][2][][1][3][4]最终结果:场上只剩下一个 4。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册