Leetcode 1675 Solution

This article provides solution to leetcode question 1675 (magnetic-force-between-two-balls)

https://leetcode.com/problems/magnetic-force-between-two-balls

Solution

class Solution: def maxDistance(self, position: List[int], m: int) -> int: position.sort()
def isfit(force): nonlocal position nonlocal m
last_ball_pos = position[0] c = 1
for i in range(1, len(position)): if position[i] < last_ball_pos + force: continue
last_ball_pos = position[i] c += 1 return c >= m
l = 1 r = position[-1] - position[0]
while l < r: force = (l + r + 1) // 2 if not isfit(force): r = force - 1 else: l = force
return l