leetcode 735 行星碰撞

2021-10-08 15:46:48 字數 1277 閱讀 8635

給定乙個整數陣列 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,表示在同一行的行星。對於陣列中的每乙個元素,其絕對值表示行星的大小,正負表示行星的移動方向 正表示向右移動,負表示向左移動 每一顆行星以相同的速度移動。找出碰撞後剩下的所有行星。碰撞規則 兩個行星相互碰撞,較小的行星會 如果兩顆行星大小相同,則兩顆行星都會 兩顆...