leetcode

Description:

leetcode-697

Submission:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class :
def findShortestSubArray(self, nums: List[int]) -> int:
maxDict, maxCount = {}, {}
for i, x in enumerate(nums):
if x not in maxDict:
maxDict[x] = [i, i]
maxCount[x] = 1
else:
maxDict[x][1] = i
maxCount[x] += 1

degree = max(maxCount.values())
ans = len(nums)
for x in maxDict:
if maxCount[x] == degree:
ans = min(ans, maxDict[x][1] - maxDict[x][0] + 1)

return ans

Acceptance:

ac