Split array largest sum

PHOTO EMBED

Sun Dec 25 2022 21:01:15 GMT+0000 (Coordinated Universal Time)

Saved by @Beluga #java

 public static boolean isPossible(int[] nums, int mid, int k){
        int subArr=1;
        int sum=0;
        for(int i=0;i<nums.length;i++){
            sum+=nums[i];
            if(sum>mid){
                subArr++;
                sum=nums[i];
            }
        }
        return subArr <=k;
    }
    public int splitArray(int[] nums, int k) {
        if(nums[0]==1 && nums[1]==1 && nums.length==2) return 2;
        int max=0;
        int sum=0;
        for(int val: nums){
            sum+=val;
            max= Math.max(val,max);
        }
        if(k==max) return max;
        int low=max;
        int high=sum;
        int ans=0;
        while(low<=high){
            int mid=low+(high-low)/2;
            if(isPossible(nums,mid,k)){
                ans=mid;
                high=mid-1;
            }
            else low=mid+1;
        }
        return ans;
    }
content_copyCOPY