leetcode如何实现数组的度
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下leetcode如何实现数组的度,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、题目内容给定一个非空且
千家信息网最后更新 2026年11月02日leetcode如何实现数组的度
小编给大家分享一下leetcode如何实现数组的度,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
一、题目内容
给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。
你的任务是在 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
提示:
nums.length 在1到 50,000 区间范围内。
nums[i] 是一个在 0 到 49,999 范围内的整数。
二、解题思路
记录每个数字出现的位置,然后得到最大长度(度数最大),最后记录度数最大时最短连续子数组。
三、代码
class Solution: def findShortestSubArray(self, nums: list) -> int: nums_dict = {} for i in range(len(nums)): if nums[i] not in nums_dict: nums_dict[nums[i]] = [i] else: nums_dict[nums[i]].append(i) max_length = 0 for num in nums_dict: max_length = max(max_length, len(nums_dict[num])) min_length = len(nums) for num in nums_dict: if len(nums_dict[num]) == max_length: min_length = min(min_length, nums_dict[num][-1] - nums_dict[num][0] + 1) return min_lengthif __name__ == '__main__': s = Solution() nums = [1,2,2,1,2,1,1,1,1,2,2,2] ans = s.findShortestSubArray(nums) print(ans)以上是"leetcode如何实现数组的度"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数组
最大
内容
篇文章
长度
输入
相同
元素
度数
整数
示例
范围
频数
输出
不怎么
代码
任务
位置
区间
大小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技
百单网互联网科技有限公司怎么样
互联网科技工作委员会主任
互联网科技会
互联网巨头反垄断金融科技
顺玮阁互联网科技
掌上梦互联网科技
华中科技有哪些互联网大佬
科技与互联网的利与弊
互联网科技项目计划书材料类
港股科技和互联网
花神(南京)互联网科技有限公司
互联网科技公司有风险吗
呼和浩特新华互联网科技学院
电子科技大学互联网创业大赛
浙南科技城互联网大厦建设工程
电子商务与互联网科技的关系
江苏互联网智能科技产品出厂价
青岛易易互联网科技
前海云享互联网科技
互联网是第几次科技革命的成果
互联网科技行业发展
世界互联网领先科技成果
云电互联网科技
苏州大垚互联网科技
长亮科技互联网金融
互联网科技博客
互联网科技人工智能实验室
新氧科技和美国互联网有关系吗
互联网科技大会大佬