Menu
CoddyTech

Longest Increasing Subsequence

Bir tamsayı listesi nums alıyorsunuz. Bir alt dizi, bazı öğeleri özgün sıralarında tutar ve geri kalanları çıkarır; tutulan öğelerin yan yana olması gerekmez. Değerleri soldan sağa doğru kesin olarak artan en uzun alt dizinin uzunluğunu döndürün. Art arda gelen iki eşit değer artış sayılmaz.

Fonksiyon

lengthOfLIS(nums: integer-array) → integer
numsinteger-array
seçilecek tam sayıların listesi
Döndürürinteger
en uzun kesin artan alt dizinin uzunluğu

Kısıtlar

  • 1 ≤ nums.length ≤ 2500
  • -104 ≤ nums[i] ≤ 104

Örnekler

Girdi
nums = [3, 1, 8, 2, 5, 9, 4, 7]
Çıktı
4
Açıklama
1, 2, 5, 9 artıyor; 1, 2, 5, 7 ve 1, 2, 4, 7 de öyle: uzunluk 4. Beş değerlik hiçbir seçim artmaya devam etmiyor.
challenge icon

Ek soru

Uzunluğu ile birlikte, en uzun artan alt dizinin kendisini de döndürebilir ve yine O(n log n) zamanda çalışabilir misin?

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

Test #1

Test #2

Test #3

Argüman

nums = [3, 1, 8, 2, 5, 9, 4, 7]

Beklenen Çıktı

4