Binary serach ( 410. Split Array Largest Sum )
video 56
class Solution {
public boolean isPossible(int [] arr , int k ,int m )
{
int sum = 0 ;
k--;
for(int i=0;i<arr.length;i++)
{
int val = arr[i];
if(val > m )
return false;
if(sum + val > m)
{
k--;
sum = 0 ;
}
sum+=val;
if(k<0)
return false;
}
return true;
}
public int splitArray(int[] nums, int k) {
int l = 0 ;
int r = 1000000000;
while(l<=r)
{
int mid = l + (r-l)/2;
if(isPossible(nums,k,mid))
r = mid -1 ;
else
l = mid + 1;
}
return l;
}
}