-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path697.py
More file actions
22 lines (21 loc) · 730 Bytes
/
Copy path697.py
File metadata and controls
22 lines (21 loc) · 730 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution:
def findShortestSubArray(self, nums: List[int]) -> int:
class Num:
def __init__(self, i):
self.count = 1
self.start = i
self.end = i
dict = {}
max_count = 0
min_len = sys.maxsize
for i in range(len(nums)):
if nums[i] not in dict:
dict[nums[i]] = Num(i)
else:
dict[nums[i]].count += 1
dict[nums[i]].end = i
max_count = max(max_count, dict[nums[i]].count)
for key, value in dict.items():
if max_count == value.count:
min_len = min(min_len, value.end - value.start)
return min_len + 1