Menu
CoddyTech

Maximum Subarray

Bir tamsayı listesi nums alıyorsun. Alt dizi, aralarında boşluk olmadan alınan bitişik elemanlardan oluşur ve en az bir eleman içermelidir. nums içindeki herhangi bir alt dizinin sahip olabileceği en büyük toplamı döndür. Yalnızca toplamı döndür, alt dizinin kendisini değil.

Fonksiyon

maxSubArray(nums: integer-array) → integer
numsinteger-array
en az bir öğe içeren tam sayı listesi
Döndürürinteger
boş olmayan bitişik öğeler dizisinin en büyük toplamı

Kısıtlar

  • 1 ≤ nums.length ≤ 105
  • -104 ≤ nums[i] ≤ 104
  • Yanıt her zaman 32 bitlik işaretli bir tamsayıya sığar.

Örnekler

Girdi
nums = [2, -4, 3, -1, 5, -6, 1]
Çıktı
7
Açıklama
[3, -1, 5] dizisinin toplamı 7'dir. Sola doğru genişletmek önce -4, ardından 2 ekler; net kayıp 2 olur. Sağa doğru genişletmek önce -6, ardından 1 ekler; net kayıp 5 olur. Başka hiçbir dizi daha iyi sonuç vermez.
challenge icon

Ek soru

Bunu, listeyi ikiye bölüp ortayı aşan serileri ele alarak O(n log n) zaman karmaşıklığıyla böl ve fethet yöntemiyle de çözebilir misin?

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

Test #1

Test #2

Argüman

nums = [2, -4, 3, -1, 5, -6, 1]

Beklenen Çıktı

7