697. 数组的度(简单)- LeetCode

题目描述

697. 数组的度(简单)- LeetCode_第1张图片

解法

首先要确定数组中最大频数的元素,如果有多个最大频数的元素,要比较其最短连续数组的长度,取其最小值

def findShortSubArray(nums):
    left,right,count = {},{},{}
    for i,val in enumerate(nums):
        if val not in left:
            left[val] = i
        right[val] = i
        count[val] = count.get(val,0) + 1

    ans = len(nums)
    degree = max(count.values())

    for val in count:
        if count[val] == degree:
            ans = min(ans,right[val]-left[val]+1)
    return ans

697. 数组的度(简单)- LeetCode_第2张图片

你可能感兴趣的:(LeetCode)