【牛客网NC69-20.7.25-二分】链接:牛客网NC69
题意:
文章图片
输入:n,k,a[] (1≤k≤n≤1e5,0≤ai≤1e4)
输出:不同分段方法最小值中的最大值
分析:最小值是其他分段方法的最大值的分段方法是让这些数每个分段的和尽可能的平均,而我们就来对这个"平均值"进行二分,而这个"平均值”也就是要输出的值,“平均值”的范围是【min(a),sum(a)],即是a中元素的最小值与a中元素的和之间。
思路:二分,注意判断临界条件。
代码:
import java.util.*;
public class Solution {
/**
* 分组
* @param n int整型
* @param k int整型
* @param a int整型一维数组
* @return int整型
*/
public int solve (int n, int k, int[] a) {
// write code here
int left=a[0],right=0;
for(int i=0;
i>1;
int cnt=0;
int sum=0;
for(int i=0;
i=mid){
cnt++;
sum=0;
}
}
if(cnt>=k)left=mid;
else right=mid;
}
return left;
}
}