Menu
CoddyTech

Maximum Product Subarray

Multipliziere die Elemente eines Teilarrays von nums miteinander und gib das größte Produkt zurück, das ein Teilarray ergeben kann. Ein Teilarray besteht aus aufeinanderfolgenden Elementen ohne Lücken und ist niemals leer, daher gibt es auch bei einem Array aus negativen Zahlen eine Antwort. Nullen und negative Werte sind zulässig.

Funktion

maxProduct(nums: integer-array) → integer
numsinteger-array
die zu multiplizierenden ganzen Zahlen, jeweils zwischen -10 und 10
Gibt zurückinteger
das größte Produkt eines nicht leeren Teilarrays

Einschränkungen

  • 1 ≤ nums.length ≤ 2 × 104
  • -10 ≤ nums[i] ≤ 10
  • Das Produkt jedes Teilarrays passt in eine vorzeichenbehaftete 32-Bit-Ganzzahl.

Beispiele

Eingabe
nums = [2, -5, 3, -2, 0, 4]
Ausgabe
60
Erklärung
Die beiden negativen Zahlen heben sich gegenseitig auf: 2 × -5 × 3 × -2 = 60. Die 0 teilt das Array in zwei Teile, und die 4 auf der anderen Seite kann 60 nicht übertreffen.
challenge icon

Weiterführende Frage

Wie würdest du außerdem angeben, wo das beste Teilarray beginnt und endet, und das weiterhin in O(n) Zeit und mit O(1) Speicherplatz?

Code zurücksetzen
def maxProduct(nums):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argument

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

Erwartete Ausgabe

60