Aralıkların bir listesi verildiğinde, bunların birleşimini gerçekleştirin ve çakışmaları azaltın. Bu, üst üste binen parçaların azaltıldığı anlamına gelir. ( [a, b] U [c, d] = [a, d]if b > c) Tüm aralıklarda tüm <b varsayarsak [a, b]. Giriş aralıkları listesinin bir fonksiyonu olarak uygulayın -> çıkış aralıkları listesi. En kısa kod kazanır. Mevcut kitaplıkları kullanamazsınız.
Açıklamalar:
- Açık ve kapalı aralıklar ayırt edilmez.
- Tamsayılar için değil, gerçek sayılar için aralıklar. (
[2, 3], [4, 5] -> [2, 3], [4, 5]) - Çıkış aralıklarını sıralamaya gerek yok
- Girişlerin önemi yoksa sipariş
- Kaçak girişler sadece
[a, b]neredeb >= ao girdi aralıklarla sırasına ve giriş aralıkları sayısı ile ilgisi yoktur. - Tanımsız davranışlar için bir hata mesajı göstermeniz gerekmez
Örnekler (sayı satırlarıyla)
[2, 4], [7, 9] --> [2, 4], [7, 9]
234
789
-> 234 789
[1, 5], [2, 10] --> [1, 10] (overlapping [2, 5] reduced)
12345
234567890
-> 1234567890
[2, 4], [3, 6], [8, 9] -> [2, 6], [8, 9]
234
3456
89
-> 23456 89
[4, 2], [2, 2] -> (undefined behavior: against the assumption)