kt: add «2064. Minimized Maximum of Products Distributed to Any Store»

URL:	https://leetcode.com/problems/minimized-maximum-of-products-distributed-to-any-store/
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2024-11-14 22:45:40 +01:00
parent cd0ad4d7d5
commit 784547b4a2
Signed by: mfocko
SSH key fingerprint: SHA256:icm0fIOSJUpy5+1x23sfr+hLtF9UhY8VpMC7H4WFJP8

View file

@ -0,0 +1,43 @@
class Solution {
private fun canDistribute(
n: Int,
quantities: IntArray,
pivot: Int,
): Boolean {
var j = 0
var remaining = quantities[j]
return (1..n).any {
if (remaining <= pivot) {
j += 1
if (j == quantities.size) {
return@any true
}
remaining = quantities[j]
} else {
remaining -= pivot
}
return@any false
}
}
fun minimizedMaximum(
n: Int,
quantities: IntArray,
): Int {
var (left, right) = 0 to quantities.max()
while (left < right) {
val middle = (left + right) / 2
if (canDistribute(n, quantities, middle)) {
right = middle
} else {
left = middle + 1
}
}
return left
}
}