首页 > 其他分享 >697 数组的度

697 数组的度

时间:2022-09-29 15:02:31浏览次数:35  
标签:right 697 res counter num 数组 left

 

1、找到数组的度

2、找到与nums相同度的最短连续子数组

使用三个字典,left用于记录每个元素在数组中第一次出现的位置,right用于记录每个元素在数组中最后一次出现的位置,counter用于记录每个元素在数组中出现的次数。

 1 def findShortestSubArray(nums):
 2     left, right = dict(), dict()
 3     counter = collections.Counter()
 4     for i, num in enumerate(nums):
 5         if num not in left:
 6             left[num] = i
 7         right[num] = i
 8         counter[num] += 1
 9     degree = max(counter.values())
10     res = len(nums)
11     for k, v in counter.items():
12         if v == degree:
13             res = min(res, right[k] - left[k] + 1)
14     return res

 

标签:right,697,res,counter,num,数组,left
From: https://www.cnblogs.com/wanxueyu/p/16741577.html

相关文章