# 1552. Magnetic Force Between Two Balls ###### tags: `Leetcode` `Medium` `Binary Search` Link: https://leetcode.com/problems/magnetic-force-between-two-balls/ ## 思路 $O(Nlog(max(position)))$ $O(1)$ ## Code ```java= class Solution { public int maxDistance(int[] position, int m) { Arrays.sort(position); int start=1, end=position[position.length-1]-position[0]+1; while(start<end){ int mid = start+(end-start)/2; int num = compute(position, mid); if(num>=m){ start = mid+1; } else{ end = mid; } } if(compute(position, start-1)>=m) return start-1; return start; } private int compute(int[] position, int dist){ int num = 1; int prev = position[0]; for(int i=1; i<position.length; i++){ if(position[i]-prev>=dist){ num++; prev = position[i]; } } return num; } } ```