leetpycode/medium/product_of_the_last_k_numbers.py

25 lines
631 B
Python

# https://leetcode.com/problems/product-of-the-last-k-numbers
from typing import List
class ProductOfNumbers:
prefix: List[int]
def __init__(self):
self.prefix = []
def add(self, num: int) -> None:
if num == 0:
self.prefix = []
elif len(self.prefix) >= 1:
self.prefix.append(self.prefix[-1] * num)
else:
self.prefix.append(num)
def getProduct(self, k: int) -> int:
if k > len(self.prefix):
return 0
if k == len(self.prefix):
return self.prefix[-1]
return self.prefix[-1] // self.prefix[-k -1]