kt: add «2560. House Robber IV»

URL:	https://leetcode.com/problems/house-robber-iv/
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2025-03-17 11:20:03 +01:00
parent 356b3e0dde
commit 6cda50188b
Signed by: mfocko
SSH key fingerprint: SHA256:icm0fIOSJUpy5+1x23sfr+hLtF9UhY8VpMC7H4WFJP8

27
kt/house-robber-iv.kt Normal file
View file

@ -0,0 +1,27 @@
class Solution {
fun minCapability(
nums: IntArray,
k: Int,
): Int {
var (min, max) = 1 to nums.max()!!
while (min < max) {
val mid = (min + max) / 2
val (_, possible) =
nums.fold(true to 0) { (canRob, robbed), reward ->
when {
canRob && reward <= mid -> false to (robbed + 1)
else -> true to robbed
}
}
when {
possible >= k -> max = mid
else -> min = mid + 1
}
}
return min
}
}