25 lines
631 B
Python
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]
|
|
|