LeetCode 2560. 打家劫舍 IV C#
原题链接
中等
作者:
hpstory
,
2023-02-06 17:27:16
,
所有人可见
,
阅读 121
C# 代码
public class Solution {
private int[] nums;
public int MinCapability(int[] nums, int k) {
int n = nums.Length;
this.nums = nums;
int max = 0, min = int.MaxValue;
for (int i = 0; i < n; i++){
if (max < nums[i]) max = nums[i];
if (min > nums[i]) min = nums[i];
}
while (min < max){
int mid = min + max >> 1;
if (Check(mid, k)){
max = mid;
}
else{
min = mid + 1;
}
}
return min;
}
private bool Check(int x, int k){
int count = 0;
int last = -2;
for (int i = 0; i < nums.Length; i++){
if (nums[i] <= x && i - last > 1){
count++;
last = i;
}
}
return count >= k;
}
}