Menu
CoddyTech

Maximum Product Subarray

Kalikan elemen-elemen dari subarray nums, lalu kembalikan hasil kali terbesar yang dapat dihasilkan oleh subarray mana pun. Subarray terdiri dari elemen-elemen berurutan tanpa celah dan tidak pernah kosong, jadi bahkan array yang berisi nilai negatif pun memiliki jawaban. Nilai nol dan negatif diperbolehkan.

Fungsi

maxProduct(nums: integer-array) → integer
numsinteger-array
bilangan bulat yang akan dikalikan, masing-masing antara -10 dan 10
Mengembalikaninteger
hasil kali terbesar dari subarray yang tidak kosong

Batasan

  • 1 ≤ nums.length ≤ 2 × 104
  • -10 ≤ nums[i] ≤ 10
  • Hasil kali setiap subarray muat dalam bilangan bulat bertanda 32-bit.

Contoh

Input
nums = [2, -5, 3, -2, 0, 4]
Output
60
Penjelasan
Dua bilangan negatif saling meniadakan: 2 × -5 × 3 × -2 = 60. Angka 0 membagi array menjadi dua, dan angka 4 di sisi lain tidak bisa mengalahkan 60.
challenge icon

Pertanyaan lanjutan

Bagaimana kamu juga dapat melaporkan posisi awal dan akhir subarray terbaik, tetap dalam waktu O(n) dan ruang O(1)?

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

Tes #1

Tes #2

Tes #3

Argumen

nums = [2, -5, 3, -2, 0, 4]

Output yang diharapkan

60