欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode 410. 分割数组的最大值

程序员文章站 2022-03-16 11:26:09
...

410. 分割数组的最大值

LeetCode 410. 分割数组的最大值

LeetCode 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