Minimum Seconds to Equalize a Circular Array

1
2
3
4
5
6
7
8
class Solution:
    def minimumSeconds(self, nums: List[int]) -> int:
        pos, gap = {}, defaultdict(lambda: 0)
        for i, n in enumerate(nums + nums):
            if n in pos:
                gap[n] = max(gap[n], (i - pos[n]) // 2)
            pos[n] = i
        return min(gap.values())