Skip to content

Commit 20aaff7

Browse files
committed
Time: 327 ms (100%), Space: 47.7 MB (100%) - LeetHub
1 parent f74c37b commit 20aaff7

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# time complexity: O(n)
2+
# space complexity: O(n)
3+
from collections import defaultdict
4+
from typing import List
5+
6+
class Solution:
7+
def minimumDistance(self, nums: List[int]) -> int:
8+
hashMap = defaultdict(list)
9+
for i, num in enumerate(nums):
10+
hashMap[num].append(i)
11+
result = float('inf')
12+
13+
for idxs in hashMap.values():
14+
if len(idxs) >= 3:
15+
for i in range(len(idxs) - 2):
16+
dist = 2 * (idxs[i + 2] - idxs[i])
17+
result = min(result, dist)
18+
return result if result != float('inf') else -1
19+
20+
21+
22+
nums = [1, 2, 1, 1, 3]
23+
print(Solution().minimumDistance(nums))
24+
nums = [1, 1, 2, 3, 2, 1, 2]
25+
print(Solution().minimumDistance(nums))
26+
nums = [1]
27+
print(Solution().minimumDistance(nums))

0 commit comments

Comments
 (0)