Menu
CoddyTech

Maximum Subarray

Kamu mendapatkan sebuah list bilangan bulat nums. Subarray adalah rangkaian elemen bersebelahan yang diambil tanpa jeda, dan harus berisi setidaknya satu elemen. Kembalikan jumlah terbesar yang bisa dimiliki subarray mana pun dari nums. Kamu hanya mengembalikan jumlahnya, bukan subarray itu sendiri.

Fungsi

maxSubArray(nums: integer-array) → integer
numsinteger-array
daftar bilangan bulat, dengan setidaknya satu elemen
Mengembalikaninteger
jumlah terbesar dari rangkaian elemen bersebelahan yang tidak kosong

Batasan

  • 1 ≤ nums.length ≤ 105
  • -104 ≤ nums[i] ≤ 104
  • Jawabannya selalu muat dalam bilangan bulat bertanda 32-bit.

Contoh

Input
nums = [2, -4, 3, -1, 5, -6, 1]
Output
7
Penjelasan
Perulangan [3, -1, 5] berjumlah 7. Memperluasnya ke kiri menambahkan -4 lalu 2, sehingga totalnya berkurang 2. Memperluasnya ke kanan menambahkan -6 lalu 1, sehingga totalnya berkurang 5. Tidak ada perulangan lain yang hasilnya lebih baik.
challenge icon

Pertanyaan lanjutan

Bisakah kamu juga menyelesaikannya dengan strategi bagi dan taklukkan dalam O(n log n), membagi list menjadi dua dan menangani rangkaian yang melintasi bagian tengah?

Reset kode
def maxSubArray(nums):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

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

Output yang diharapkan

7