Menu
CoddyTech

Longest Consecutive Sequence

OrtaHashingpython iconjava iconcpp iconc iconjs icon+10

Sana belirli bir sıralaması olmayan bir tamsayı dizisi nums verilir. Ardışık bir dizi, her biri 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
tam sayılar, herhangi bir sırada, tekrara izin verilir
Döndürürinteger
nums'ta bulunan ardışık değerlerin en uzun serisinin 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 içinde dağınık olsalar da hepsi mevcut; yani 4'lük bir dizi oluşturuyorlar. Diğer dizi olan 39 ile 41 arasında ise yalnızca 3 değer var.
challenge icon

Ek soru

Değerlerin teker teker geldiğini ve her birinden sonra o ana kadarki en uzun ardışık diziyi bildirmen gerektiğini varsayalım. Her değer için ortalama O(1) zamanda yanıtı güncel tutabilir misin?

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

Test #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

4