URL: https://leetcode.com/problems/house-robber-iv/ Signed-off-by: Matej Focko <me@mfocko.xyz>
27 lines
643 B
Kotlin
27 lines
643 B
Kotlin
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
|
|
}
|
|
}
|