LeetCode 410. 分割数组的最大值
程序员文章站
2022-03-16 11:26:09
...
410. 分割数组的最大值
public class Solution {
public int splitArray(int[] nums, int m) {
int max = 0;
int sum = 0;
for(int num:nums){
max = Math.max(max,num);
sum += num;
}
int left = max;
int right = sum;
while(left < right){
int mid = left + (right - left)/2;
int splits = split(nums,mid);
if(splits > m){
left = mid + 1;
}else{
right = mid;
}
}
return left;
}
private int split(int[] nums,int max){
int splits = 1;
int now = 0;
for(int num:nums){
if(now + num > max){
now = 0;
splits++;
}
now += num;
}
return splits;
}
}
1