leetcode如何实现数组的度
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,小编给大家分享一下leetcode如何实现数组的度,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、题目内容给定一个非空且
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
网站服务器种类
玩游戏最快的dns服务器
计算机网络技术学的框架有哪些
烟台公交软件开发者
安徽信息软件开发销售
哪个数据库能获取学术期刊全文
服务器上无法访问指定设备
软件开发工程师技术工作内容
审计系统网络安全信息情况
数据库中的表可以有几个关键字
乱斗堂3最新服务器多久开
往数据库传日期
上海先进网络技术
玉田信息网络技术售后服务
济南地区浪潮服务器哪里有
医疗设备网络安全风险评估
网络安全 常识
4月网络安全
三层交换机文件服务器网关
molap 数据库
云服务器能换ip吗
沈阳鑫华科技互联网学校
access 数据库事务
河北明优网络技术有限公司
兴义网络安全系统哪家靠谱
软件开发技术部和研发部一样吗
服务器与客户端交互
服务器对端是什么样的
呈贡区智能化软件开发价格信息
互联网科技公司有哪些业务