![472ad602cbbea122821287de2dec7d9d.png](https://img-blog.csdnimg.cn/img_convert/472ad602cbbea122821287de2dec7d9d.png)
@TOC
给定一个整型数组arr, 数组中的每个值都为正数,表示完成一个工作需要的时间,再给定一个整数num,表示工人的数量,每个工人只能完成连在一起的工作。所有工人并行工作,请返回完成所有的工作的最少时间。
本题的问题可以理解为给定一个数组arr[] 将其尽可能的等分为k份,其中每一份中的最大值的最小值是多少?
测试用例
输入 3 2 3 1 4 输出 4 说明: 划分为[3 1]、[4]
输入 5 3 1 1 1 4 3 输出 4 说明:划分为[1 1 1]、[4]、[3]
本题思路
最终所求是完成工作最多的那个工人的工作时长,问题需要使得这个时长尽可能小,即数组尽可能的均匀分配
设定每个工人的工作时长限制为limit 如果limit=sum 那么只需要一个工人就可以完成所有工作 如果limit=0 那么无法完成
因此可以划分为一个二分的思路,即存在这样一个人均工作时长(均分每部分的上限),使得完成arr[]所有工作,恰好k个工人能完成,这里恰好的意思是:即不会出现工人空闲的情况(之前人