Link: https://leetcode.com/problems/minimum-seconds-to-equalize-a-circular-array/description/
## 思路
不能直接greedy找出现频率最多的数字
那样的话会在这个testcase报错```[1,11,11,11,19,12,8,7,19]```
答案应该是2 但如果只看11答案就会是3
If number ```num``` appears at positions ```i``` and ```j```, it will take ```(j - i)/2``` seconds to make all numbers between ```i``` and ```j``` equal ```num```.
So, we need to find the maximum gap for all positions of ```num```
由于是circular array 因此我们还要将每个数字的```pos[0]+len(nums)```加进去
## Code
```python=
class Solution:
def minimumSeconds(self, nums: List[int]) -> int:
allPos = dict()
for i, num in enumerate(nums):
if num not in allPos:
allPos[num] = []
allPos[num].append(i)
ans = math.inf
for num in allPos.keys():
allPos[num].append(allPos[num][0]+len(nums))
maxGap = 0
for i in range(len(allPos[num])-1):
maxGap = max(maxGap, (allPos[num][i+1]-allPos[num][i])//2)
ans = min(ans, maxGap)
return ans
```