Menu
CoddyTech

Asteroid Collision

OrtaYığınpython iconjava iconcpp iconc iconjs icon+10

Bir asteroit sırası, hepsi aynı hızda olacak şekilde bir çizgi boyunca ilerler. asteroids içindeki her değer bir asteroidi tanımlar: mutlak değeri boyutunu, işareti ise yönünü belirtir; pozitif sağa, negatif sola doğru olduğunu gösterir.

Sağa doğru hareket eden bir asteroit sola doğru hareket eden bir asteroitle karşılaştığında çarpışırlar. Küçük olan patlar; boyutları aynıysa ikisi de patlar. Aynı yönde hareket eden asteroitler asla karşılaşmaz. Her çarpışmadan sonra geriye kalan asteroitleri, başlangıçtaki sıralarını koruyarak döndür. Sonuç boş olabilir.

Fonksiyon

asteroidCollision(asteroids: integer-array) → integer-array
asteroidsinteger-array
asteroitler soldan sağa, yön için işaret, boyut için mutlak değer
Döndürürinteger-array
soldan sağa kalan asteroitler, belki hiçbiri

Kısıtlar

  • 1 ≤ asteroids.length ≤ 104
  • -1000 ≤ asteroids[i] ≤ 1000
  • asteroids[i] ≠ 0

Örnekler

Girdi
asteroids = [4, 9, -6, 2, -3]
Çıktı
[4, 9]
Açıklama
9, -6 ile karşılaşır ve kazanır. 2, -3 ile karşılaşır ve patlar; ardından -3, 9'a doğru uçar ve o da patlar. Başka hiçbir şey başka bir şeye doğru hareket etmez, bu yüzden 4 ve 9 kalır.
challenge icon

Ek soru

Yığın, hangi asteroitlerin hayatta kaldığını belirler. Patlayan her asteroit için onu yok eden asteroitin indeksini de nasıl bildirirdin?

Kodu sıfırla
def asteroidCollision(asteroids):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argüman

asteroids = [4, 9, -6, 2, -3]

Beklenen Çıktı

[4, 9]