Menu
CoddyTech

Split Array Largest Sum

Negatif olmayan tamsayılardan oluşan bir nums dizisi ve bir k tamsayısı alırsın. nums dizisini, her biri boş olmayan, komşu değerlerden oluşan bir dizi parçası olacak ve parçalar sıralarını koruyacak şekilde tam olarak k parçaya böl. Her parçanın bir toplamı vardır ve bölmenin maliyeti bu toplamların en büyüğüdür.

k parçaya yapılan herhangi bir bölmenin ulaşabileceği en küçük maliyeti döndür.

Fonksiyon

splitArray(nums: integer-array, k: integer) → integer
numsinteger-array
negatif olmayan değerler, sırasıyla
kinteger
onları kesilecek bitişik parça sayısı
Döndürürinteger
en büyük parça toplamının mümkün olan en küçük değeri

Kısıtlar

  • 1 ≤ nums.length ≤ 5000
  • 0 ≤ nums[i] ≤ 105
  • 1 ≤ k ≤ nums.length
  • Her parça en az bir değer içerir. Değerlerinin tümü 0 olan bir parçanın toplamı 0 olur; buna izin verilir.

Örnekler

Girdi
nums = [6, 2, 9, 4, 7, 3]k = 3
Çıktı
13
Açıklama
[6, 2], [9, 4], [7, 3] bölmesi 13 tutar. Hiç bölmemek 12 tutar: parçaları soldan sağa 12 sınırının altında paketlemek [6, 2], [9], [4, 7], [3] şeklinde, dört parça verir.
challenge icon

Ek soru

Önek toplamlarıyla, açgözlü bir kontrol ikili arama kullanarak her parçanın nerede bittiğini bulabilir. k küçük olduğunda tüm yöntem ne kadar hızlı olur?

Kodu sıfırla
def splitArray(nums, k):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argümanlar

nums = [6, 2, 9, 4, 7, 3]
k = 3

Beklenen Çıktı

13