Menu
CoddyTech

Longest Consecutive Sequence

OrtaHashingpython iconjava iconcpp iconc iconjs icon+10

Belirli bir sırada olmayan bir tamsayı dizisi nums alırsın. Ardışık bir dizi, nums içinde bir yerde bulunan x, x+1, x+2 ve benzeri değerlerden oluşan bir gruptur. En uzun ardışık dizinin uzunluğunu döndür. Birden fazla kez görünen bir değer bir kez sayılır.

Fonksiyon

longestConsecutive(nums: integer-array) → integer
numsinteger-array
tamsayılar, herhangi bir sırada; tekrarlar serbesttir
Döndürürinteger
nums içinde bulunan ardışık değerlerin en uzun dizisinin uzunluğu

Kısıtlar

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • Değerler tekrarlanabilir. Dizideki konumlar önemli değildir; yalnızca hangi değerlerin bulunduğu önemlidir.

Örnekler

Girdi
nums = [40, 4, 39, 1, 3, 2, 41]
Çıktı
4
Açıklama
1, 2, 3 ve 4 dizinin farklı yerlerine dağılmış olsalar da hepsi mevcut; yani 4 elemanlık bir ardışık dizi oluşturuyorlar. Diğer ardışık dizi olan 39 ile 41 arasında yalnızca 3 değer var.

lock iconGönderirken +17 gizli test

challenge icon

Ek soru

Diyelim ki değerler teker teker geliyor ve her birinden sonra şu ana kadarki en uzun ardışık diziyi bildirmeniz gerekiyor. Her değer başına ortalama O(1) zamanda yanıtı güncel tutabilir misiniz?

Kodu sıfırla
def longestConsecutive(nums):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

nums = [40, 4, 39, 1, 3, 2, 41]

Beklenen

4