小白刷題之路 697 陣列的度

2021-09-25 01:30:32 字數 781 閱讀 3904

小白附上自己的思路。 也是多虧了python中字段的存在,讓不了解hash原理的我能較清洗的解決問題。 分為以下幾個步驟

class solution:

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

num_dict = {}

n = len(nums)

for i in range(n):

if nums[i] not in num_dict.keys():

num_dict[nums[i]] = [1,i,i]

else:

num_dict[nums[i]][0] += 1

num_dict[nums[i]][2] = i

# 個數,起始索引,終止索引

num_max = 0

num_len = n

for i in num_dict.keys():

if num_dict[i][0] > num_max:

num_max = num_dict[i][0]

num_len = num_dict[i][2]-num_dict[i][1] + 1

elif num_dict[i][0] == num_max:

if num_dict[i][2]-num_dict[i][1] + 1 <= num_len:

num_len = num_dict[i][2]-num_dict[i][1] + 1

return num_len

刷題 力扣 697 陣列的度

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

697 陣列的度

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

697 陣列的度

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