Binary Search Leetcode 1011. Capacity To Ship Packages Within D Days


(video 51 )

class Solution {
      public static boolean isPossible(int[] arr,int days , int capacity)
  {
    int temp=0;
    for(int i=0;i<arr.length;i++)
    {
        int val = arr[i];
        if(val > capacity)
        return false;
        if(temp + val > capacity)
        {
            days--;
            temp = 0;
        }
        temp+=val;

        if(days<=0)
        return false;
    }
    return true;
  }
    public int shipWithinDays(int[] weights, int days) {
        int l = 0;
        int r = Integer.MAX_VALUE;

        while(l<=r)
        {
            int mid = l + (r-l)/2;
            if(isPossible(weights,days,mid))
                r = mid - 1;

            else
                 l = mid +1;

        }
       
        return l;
    }
}