# @lc code=start classSolution: deffindShortestSubArray(self, nums: List[int]) -> int: left, right, count = {}, {}, {} for i, x inenumerate(nums): if x notin left: left[x] = i right[x] = i count[x] = count.get(x, 0) + 1 ans = len(nums) degree = max(count.values()) for x in count: if count[x] == degree: ans = min(ans, right[x] - left[x] + 1) return ans