every blog every motto: You will never know unless you try
0. 前言
无
1. 正文
1.1 题目
1.2 题解
python:
class Solution:
def findShortestSubArray(self, nums: List[int]) -> int:
# 数字和其对应出现的位置
number_position = {
}
for i in range(len(nums)):
if nums[i] not in number_position:
number_position[nums[i]] = [i]
else:
number_position[nums[i]].append(i)
# print(number_position)
max_degree = 0 # 最大的度
for i in number_position:
# print(i)
max_degree = max(max_degree, len(number_position[i]))
# 子数组的最小长度
min_length_degree = len(nums)
# print('=====')
for i in number_position:
# print(i)
if len(number_position[i]) == max_degree:
min_length_degree = min(min_length_degree, number_position[i][-1] - number_position[i][0] + 1)
# print(min_length_degree)
return min_length_degree