力扣410.分割数组的最大值
-
分割数组 使得子数组最大值最小
- 凡是最小化最大值和最大化最小值的题都是二分答案
- 二分子数组最大值 求当前数组可以分为几段
-
class Solution {public:int splitArray(vector<int>& nums, int k) {auto check = [&](int mid) -> bool {int cnt = 1,s = 0;for(int x:nums){if(s + x <= mid)s += x;else{if(cnt ++ == k) return false;s = x;}}return true;};int l = ranges::max(nums) , r = accumulate(nums.begin(),nums.end(),0);while(l<r){int mid = l + r >> 1;if(check(mid)) r = mid;else l = mid + 1;}return l;}};