题目大意
https://leetcode.com/problems/split-array-largest-sum/
给你非负整数数组和整数m,让你把数组分成连续的m段子数组,求所有分法的m字段和的最大值的最小化
题目分析
最小化最大值问题,可以考虑二分查找,二分check的条件是所有m子段和都小于等于某个数字d,而check方法的实现利用贪心的思想,从前向后扫描原数组,每次凑连续几个数,是这几个数的和尽可能接近d,但不能大于d,这样就得到一组,然后继续向后扫描,一直到数组结尾,看看最后能得到几组,这个组数如果小于等于m,那么d是可行的,check返回true。
代码
|
|