Menu
CoddyTech

Merge Intervals

Bir aralık, başlangıcı ve sonu olan bir tam sayı aralığıdır. En az bir noktayı paylaşan aralıklar bir araya getirilir; yalnızca birbirine değen aralıklar da buna dahildir: [1, 4] ve [4, 5], [1, 5] olur. Amaç, çakışan her aralık grubunu tüm grubu kapsayan tek bir aralıkla değiştirmektir.

Püf noktası sıralamadır. Aralıklar başlangıçlarına göre sıralandığında, oluşturduğun aralıkla çakışan her şey hemen ardından gelir. Sıralı listeyi dolaş ve birleştirilmiş son aralığı tut: sonraki başlangıç, bu aralığın sonuna eşit veya ondan küçükse sonu genişlet; değilse gerçek bir boşluk vardır, bu yüzden yeni bir aralık başlar. Sıralama O(n log n) maliyetlidir ve listeyi dolaşmak tek geçişte tamamlanır.

mergeIntervals adlı, iki tamsayı dizisi olan starts ve ends dizilerini alan ve birleştirilmiş aralıkları döndüren bir fonksiyon yazın.

Her dil burada 2 boyutlu bir diziyi girdi olarak kabul etmediğinden aralıklar iki dizi olarak verilir: i aralığı [starts[i], ends[i]] şeklindedir ve her iki dizi de aynı uzunluktadır. Aralıklar sıralı değildir.

Örtüşen her aralık grubunu birleştirin. Yalnızca uç noktada birbirine değen aralıklar da örtüşen aralıklar sayılır. Birleştirilmiş aralıkları, başlangıç değerine göre sıralanmış 2 boyutlu bir dizi olarak [[start, end], ...] döndürün.

Örneğin, starts = [5, 1, 12, 3] ve ends = [7, 4, 14, 6] dizileri [5, 7], [1, 4], [12, 14] ve [3, 6] aralıklarını tanımlar; bunlar [[1, 7], [12, 14]] şeklinde birleşir.

Kısıtlamalar: 1 <= starts.length == ends.length <= 10^4, 0 <= starts[i] <= ends[i] <= 10^4.

Fonksiyon

mergeIntervals(arg1: integer-array, arg2: integer-array) → integer-2d-array
arg1integer-array
arg2integer-array
Döndürürinteger-2d-array

Örnekler

Girdi
arg1 = [5, 1, 12, 3]arg2 = [7, 4, 14, 6]
Çıktı
[[1, 7], [12, 14]]

lock iconGönderirken +12 gizli test

Kodu sıfırla
def mergeIntervals(starts, ends):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Girdi

arg1 = [5, 1, 12, 3]
arg2 = [7, 4, 14, 6]

Beklenen

[[1, 7], [12, 14]]