Binary Search Leetcode problem ( 1552. Magnetic Force Between Two Balls )
video 53
Following is java code.
class Solution {
public boolean isPossible(int[] arr , int m , int k )
{
int prev = 0;
m--;
for(int i=0;i<arr.length;i++)
{
if(arr[i] - arr[prev] >= k)
{
m--;
prev = i ;
}
if(m<=0)
return true;
}
return false;
}
public int maxDistance(int[] position, int m) {
Arrays.sort(position);
int l=0;
int r = (int)Math.pow(10,9);
while(l<=r)
{
int mid = l + (r-l)/2; // using the right most
if(isPossible(position , m , mid))
l = mid + 1;
else
r = mid - 1;
}
return r;
}
}