給定乙個整數陣列 asteroids,表示在同一行的行星。
對於陣列中的每乙個元素,其絕對值表示行星的大小,正負表示行星的移動方向(正表示向右移動,負表示向左移動)。
每一顆行星以相同的速度移動。
找出碰撞後剩下的所有行星。碰撞規則:兩個行星相互碰撞,較小的行星會**。
如果兩顆行星大小相同,則兩顆行星都會**。兩顆移動方向相同的行星,永遠不會發生碰撞。
示例 1
:輸入:
asteroids =[5
,10,-
5]輸出:[5,
10]解釋:10 和 -
5 碰撞後只剩下 10。 5 和 10 永遠不會發生碰撞。
示例 2
:輸入:
asteroids =[8
,-8]
輸出:[
]解釋:
8 和 -
8 碰撞後,兩者都發生**。
示例 3
:輸入:
asteroids =[10
,2,-
5]輸出:[10]
解釋:2 和 -
5 發生碰撞後剩下 -
5。10 和 -
5 發生碰撞後剩下 10。
示例 4
:輸入:
asteroids =[-
2,-1
,1,2
]輸出:[-
2,-1
,1,2
]解釋:
-2 和 -
1 向左移動,而 1 和 2 向右移動。
由於移動方向相同的行星不會發生碰撞,所以最終沒有行星發生碰撞。
方法:元素依次入棧,只有棧頂是正數,當前是負數才會碰撞。官方題解寫法,用break 迴圈的方式,不用特判當前元素未入棧的情況了
class
solution
else
if(stack.
peek()
+ as ==0)
break collision;
//當前元素被撞
} stack.
push
(as);}
}int
res =
newint
[stack.
size()
];for(
int i = res.length -
1; i >=
0; i--
)return res;
}}
leetcode 735 行星碰撞
給定乙個整數陣列asteroids,表示在同一行的行星。對於陣列中的每乙個元素,其絕對值表示行星的大小,正負表示行星的移動方向 正表示向右移動,負表示向左移動 每一顆行星以相同的速度移動。找出碰撞後剩下的所有行星。碰撞規則 兩個行星相互碰撞,較小的行星會 如果兩顆行星大小相同,則兩顆行星都會 兩顆移...
leetcode 735 行星碰撞
給定乙個整數陣列 asteroids,表示在同一行的行星。對於陣列中的每乙個元素,其絕對值表示行星的大小,正負表示行星的移動方向 正表示向右移動,負表示向左移動 每一顆行星以相同的速度移動。找出碰撞後剩下的所有行星。碰撞規則 兩個行星相互碰撞,較小的行星會 如果兩顆行星大小相同,則兩顆行星都會 兩顆...
LeetCode 735 行星碰撞 棧
給定乙個整數陣列 asteroids,表示在同一行的行星。對於陣列中的每乙個元素,其絕對值表示行星的大小,正負表示行星的移動方向 正表示向右移動,負表示向左移動 每一顆行星以相同的速度移動。找出碰撞後剩下的所有行星。碰撞規則 兩個行星相互碰撞,較小的行星會 如果兩顆行星大小相同,則兩顆行星都會 兩顆...