leetcode如何实现数组的度
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下leetcode如何实现数组的度,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、题目内容给定一个非空且
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
曹妃甸区媒体网络技术诚信合作
服务器运行缓慢
计算机网络技术结题报告
服务器多次点卡不出来
软件开发学校费用
商丘市五中网络技术
重庆网络安全监督管理局
数据库的完整分类
企业网络安全意识培训
九域网络安全工作室
空间数据库的数据类型有哪些
技嘉z87p是服务器主板吗
如何访问zkt打卡机数据库
一台服务器挂多个站点
当今信息与网络安全最大威胁
永兴软件开发专业
华为国际网络安全应急论坛
olap服务器是中间件吗
2020十大网络安全案件
织梦安装 数据库密码
海外服务器安全公司
一维套料软件开发
网商网络技术开发有限公司
橘子视频软件开发
杭州应用软件开发大概多少钱
监测软件开发
我的世界网易版奥特曼服务器
芜湖审计局网络安全吗
c 中数据库信息修改代码
杭州边智网络技术