URL: https://leetcode.com/problems/product-of-the-last-k-numbers/ Signed-off-by: Matej Focko <me@mfocko.xyz>
22 lines
518 B
Kotlin
22 lines
518 B
Kotlin
class ProductOfNumbers() {
|
|
private val prefix: MutableList<Int> = mutableListOf(1)
|
|
private val size: Int
|
|
get() = prefix.size - 1
|
|
|
|
fun add(num: Int) =
|
|
when (num) {
|
|
0 -> {
|
|
prefix.clear()
|
|
prefix.add(1)
|
|
}
|
|
else -> {
|
|
prefix.add(prefix[size] * num)
|
|
}
|
|
}
|
|
|
|
fun getProduct(k: Int): Int =
|
|
when {
|
|
k > size -> 0
|
|
else -> prefix[size] / prefix[size - k]
|
|
}
|
|
}
|