Menu
CoddyTech

Maximum Product Subarray

Pomnóż przez siebie elementy podtablicy nums i zwróć największy iloczyn, jaki może dać dowolna podtablica. Podtablica składa się z kolejnych elementów bez przerw i nigdy nie jest pusta, więc nawet tablica zawierająca liczby ujemne ma odpowiedź. Zera i wartości ujemne są dozwolone.

Funkcja

maxProduct(nums: integer-array) → integer
numsinteger-array
liczby całkowite do pomnożenia, każda z zakresu od -10 do 10
Zwracainteger
największy iloczyn niepustej podtablicy

Ograniczenia

  • 1 ≤ nums.length ≤ 2 × 104
  • -10 ≤ nums[i] ≤ 10
  • Iloczyn każdej podtablicy mieści się w 32-bitowej liczbie całkowitej ze znakiem.

Przykłady

Wejście
nums = [2, -5, 3, -2, 0, 4]
Wyjście
60
Wyjaśnienie
Dwie liczby ujemne się znoszą: 2 × -5 × 3 × -2 = 60. 0 dzieli tablicę na dwie części, a 4 po drugiej stronie nie może przebić 60.
challenge icon

Pytanie dodatkowe

Jak dodatkowo wskazać, gdzie zaczyna się i kończy najlepsza podtablica, nadal w czasie O(n) i przy użyciu O(1) pamięci?

Zresetuj kod
def maxProduct(nums):
    # Wpisz kod tutaj

Test #1

Test #2

Test #3

Argument

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

Oczekiwany wynik

60