- [Leetcode 3741. Minimum Distance Between Three Equal Elements II](#Leetcode 3741. Minimum Distance Between Three Equal Elements II)
- [1. 解题思路](#1. 解题思路)
- [2. 代码实现](#2. 代码实现)
1. 解题思路
这一题是leetcode周赛475的第二题,是一个medium的题目,也是第一题3740. Minimum Distance Between Three Equal Elements I的一个复杂版本,不过两道题本质上只有复杂度要求上有一点区别。
这道题思路上并不难,只要将所有相同元素的位置记录下来,然后比较相连的三个元素的位置,取其绝对值只差的和的最小值即可。
2. 代码实现
给出python代码实现如下:
python
class Solution:
def minimumDistance(self, nums: List[int]) -> int:
locs = defaultdict(list)
ans = math.inf
for i, num in enumerate(nums):
locs[num].append(i)
if len(locs[num]) >= 3:
ans = min(ans, 2*(i-locs[num][-3]))
return ans if ans != math.inf else -1
提交代码评测得到:耗时371ms,占用内存47.88MB。