leetcode 697 陣列的度

2021-10-07 14:45:48 字數 985 閱讀 1933

697. 陣列的度

難度簡單142

給定乙個非空且只包含非負數的整數陣列nums, 陣列的度的定義是指數組裡任一元素出現頻數的最大值。

你的任務是找到與nums擁有相同大小的度的最短連續子陣列,返回其長度。

示例 1:

輸入:[1, 2, 2, 3, 1]輸出:2解釋:輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.

連續子陣列裡面擁有相同度的有如下所示:

[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]

最短連續子陣列[2, 2]的長度為2,所以返回2.

示例 2:

輸入:[1,2,2,3,1,4,2]輸出:6
class solution:

def findshortestsubarray(self, nums: list[int]) -> int:

left , right , count = {},{},{}

for i,x in enumerate(nums):

if x not in 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

Leetcode 697 陣列的度

題目 給定乙個非空且只包含非負數的整數陣列 nums,陣列的度的定義是指數組裡任一元素出現頻數的最大值。你的任務是找到與 nums 擁有相同大小的度的最短連續子陣列,返回其長度。示例 1 輸入 1,2,2,3,1 輸出 2 解釋 輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.連續子陣列裡面...

LeetCode697 陣列的度

給定乙個非空且只包含非負數的整數陣列nums,陣列的度的定義是指數組裡任一元素出現頻數的最大值。你的任務是找到與nums擁有相同大小的度的最短連續子陣列,返回其長度。示例 1 輸入 1,2,2,3,1 輸出 2 解釋 輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.連續子陣列裡面擁有相同度的...

LeetCode 697 陣列的度

給定乙個非空且只包含非負數的整數陣列 nums,陣列的度的定義是指數組裡任一元素出現頻數的最大值。你的任務是找到與 nums 擁有相同大小的度的最短連續子陣列,返回其長度。示例輸入 1,2,2,3,1 輸出 2 解釋 輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.連續子陣列裡面擁有相同度的...