Menu
CoddyTech

Maximum Product Subarray

nums dizisinin bir alt dizisinin elemanlarını birbiriyle çarp ve herhangi bir alt dizinin verebileceği en büyük çarpımı döndür. Bir alt dizi, aralarında boşluk olmadan ardışık elemanlardan oluşur ve asla boş değildir; bu nedenle yalnızca negatif sayılardan oluşan bir dizinin bile yanıtı vardır. Sıfır ve negatif değerlere izin verilir.

Fonksiyon

maxProduct(nums: integer-array) → integer
numsinteger-array
çarpılacak tam sayılar, her biri -10 ile 10 arasında
Döndürürinteger
boş olmayan bir alt dizinin en büyük çarpımı

Kısıtlar

  • 1 ≤ nums.length ≤ 2 × 104
  • -10 ≤ nums[i] ≤ 10
  • Her alt dizinin çarpımı 32 bitlik işaretli bir tam sayıya sığar.

Örnekler

Girdi
nums = [2, -5, 3, -2, 0, 4]
Çıktı
60
Açıklama
İki negatif birbirini götürür: 2 × -5 × 3 × -2 = 60. 0 diziyi ikiye böler ve diğer taraftaki 4, 60'ı geçemez.
challenge icon

Ek soru

En iyi alt dizinin nerede başlayıp nerede bittiğini de O(n) zamanda ve O(1) alanda nasıl bildirirdin?

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

Test #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

60