697. Degree of an Array
Approach 1: Storing Count, Left and Right Index
def findShortestSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
di = {}
le = len(nums)
for i in range(le):
if nums[i] not in di:
di[nums[i]] = [1,i,i]
else:
di[nums[i]][2] = i
di[nums[i]][0] += 1
ma, ans = -1, float('inf')
for i in di:
if di[i][0] > ma:
ma = di[i][0]
ans = di[i][2] - di[i][1] + 1
elif di[i][0] == ma and ans > di[i][2] - di[i][1] + 1:
ma = di[i][0]
ans = di[i][2] - di[i][1] + 1
return ansLast updated