当前位置: 首页 > news >正文

武汉东方建设集团有限公司网站宁波网站建设公司

武汉东方建设集团有限公司网站,宁波网站建设公司,手机抖音你做我女朋友好吗套路网站,做旅游宣传哪个网站好文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题:数组的度 出处:697. 数组的度 难度 4 级 题目描述 要求 给定一个非空且只包含非负数的整数数组 nums\texttt{nums}nums,数组的…

文章目录

  • 题目
    • 标题和出处
    • 难度
    • 题目描述
      • 要求
      • 示例
      • 数据范围
  • 解法
    • 思路和算法
    • 代码
    • 复杂度分析

题目

标题和出处

标题:数组的度

出处:697. 数组的度

难度

4 级

题目描述

要求

给定一个非空且只包含非负数的整数数组 nums\texttt{nums}nums,数组的的定义是指数组中任一元素出现频数的最大值。

你的任务是在 nums\texttt{nums}nums 中找到与 nums\texttt{nums}nums 拥有相同大小的度的最短(连续)子数组的长度。

示例

示例 1:

输入:nums=[1,2,2,3,1]\texttt{nums = [1,2,2,3,1]}nums = [1,2,2,3,1]
输出:2\texttt{2}2
解释:
输入数组的度是 2\texttt{2}2,因为元素 1\texttt{1}12\texttt{2}2 都出现 2\texttt{2}2 次。
度相同的子数组如下:
[1,2,2,3,1],[1,2,2,3],[2,2,3,1],[1,2,2],[2,2,3],[2,2]\texttt{[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]}[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]
最短的长度为 2\texttt{2}2,所以返回 2\texttt{2}2

示例 2:

输入:nums=[1,2,2,3,1,4,2]\texttt{nums = [1,2,2,3,1,4,2]}nums = [1,2,2,3,1,4,2]
输出:6\texttt{6}6
解释:
数组的度是 3\texttt{3}3,因为元素 2\texttt{2}2 出现 3\texttt{3}3 次。
所以 [2,2,3,1,4,2]\texttt{[2,2,3,1,4,2]}[2,2,3,1,4,2] 是最短子数组,因此返回 6\texttt{6}6

数据范围

  • 1≤nums.length≤5×104\texttt{1} \le \texttt{nums.length} \le \texttt{5} \times \texttt{10}^\texttt{4}1nums.length5×104
  • 0≤nums[i]<5×104\texttt{0} \le \texttt{nums[i]} < \texttt{5} \times \texttt{10}^\texttt{4}0nums[i]<5×104

解法

思路和算法

由于数组的度为数组中任一元素出现频数的最大值,数组中的任一元素的出现频数都不会超过数组的度。在与数组 nums\textit{nums}nums 拥有相同大小度的子数组中,一定至少包含一个出现频数等于数组的度的元素,且该元素在该子数组中的出现频数等于该元素在数组 nums\textit{nums}nums 中的出现频数,即该子数组包含数组 nums\textit{nums}nums 中的全部该元素。

为了找到与数组 nums\textit{nums}nums 拥有相同大小度的最短子数组的长度,需要记录每个元素在数组 nums\textit{nums}nums 中的出现频数,以及每个元素在数组 nums\textit{nums}nums 中的下标范围(即该元素第一次出现的下标和最后一次出现的下标)。使用两个哈希表分别记录出现频数和下标范围。

遍历数组 nums\textit{nums}nums,对于每个元素,分别更新两个哈希表,同时维护数组的度,如果当前元素的出现频数大于数组的度则将数组的度更新为当前元素的出现频数。遍历结束时,即可得到每个元素的出现频数和下标范围,以及数组的度。

由于数组 nums\textit{nums}nums 满足与其本身拥有相同大小的度,因此将最短子数组的长度初始化为数组 nums\textit{nums}nums 的长度。遍历哈希表中的每个元素,如果一个元素的出现频数等于数组的度,则根据该元素的下标范围计算包含全部该元素的最短子数组的长度(长度计算方法为该元素的最后一次出现的下标和第一次出现的下标之差加 111),并更新最短子数组的长度。遍历结束之后即可得到与数组 nums\textit{nums}nums 拥有相同大小度的最短子数组的长度。

也可以使用一个哈希表同时记录每个元素的出现频数和下标范围,和使用两个哈希表的做法是等价的。

代码

class Solution {public int findShortestSubArray(int[] nums) {int degree = 0;Map<Integer, Integer> frequencyMap = new HashMap<Integer, Integer>();Map<Integer, int[]> rangeMap = new HashMap<Integer, int[]>();int length = nums.length;for (int i = 0; i < length; i++) {int num = nums[i];int frequency = frequencyMap.getOrDefault(num, 0) + 1;frequencyMap.put(num, frequency);degree = Math.max(degree, frequency);if (!rangeMap.containsKey(num)) {rangeMap.put(num, new int[]{i, i});} else {rangeMap.get(num)[1] = i;}}int minLength = length;Set<Integer> set = frequencyMap.keySet();for (int num : set) {if (frequencyMap.get(num) == degree) {int[] range = rangeMap.get(num);minLength = Math.min(minLength, range[1] - range[0] + 1);}}return minLength;}
}

复杂度分析

  • 时间复杂度:O(n)O(n)O(n),其中 nnn 是数组 nums\textit{nums}nums 的长度。需要遍历数组一次,使用两个哈希表分别记录每个元素出现频数和下标范围,然后遍历两个哈希表计算最短子数组的长度,由于哈希表中的元素个数不超过数组长度,因此时间复杂度是 O(n)O(n)O(n)

  • 空间复杂度:O(n)O(n)O(n),其中 nnn 是数组 nums\textit{nums}nums 的长度。需要使用两个哈希表分别记录每个元素出现频数和下标范围,两个哈希表中的元素个数都不会超过 nnn


文章转载自:
http://dinncosimilize.stkw.cn
http://dinnconisroch.stkw.cn
http://dinncospeculation.stkw.cn
http://dinncomyxoneurosis.stkw.cn
http://dinncointercity.stkw.cn
http://dinncodural.stkw.cn
http://dinncosecam.stkw.cn
http://dinncospringtide.stkw.cn
http://dinncoarbitratorship.stkw.cn
http://dinncoinfradian.stkw.cn
http://dinncoadriamycin.stkw.cn
http://dinncounscrupulous.stkw.cn
http://dinncoawedly.stkw.cn
http://dinncosoldo.stkw.cn
http://dinncohaulier.stkw.cn
http://dinncotulip.stkw.cn
http://dinncorhinostegnosis.stkw.cn
http://dinncoturk.stkw.cn
http://dinncoourology.stkw.cn
http://dinncoscarp.stkw.cn
http://dinncosilver.stkw.cn
http://dinncobasketstar.stkw.cn
http://dinncopersuasion.stkw.cn
http://dinncohob.stkw.cn
http://dinncosyndrome.stkw.cn
http://dinncoclotted.stkw.cn
http://dinncooctopodes.stkw.cn
http://dinncoimprovisatrice.stkw.cn
http://dinncosgml.stkw.cn
http://dinncoiago.stkw.cn
http://dinncoemcee.stkw.cn
http://dinncoremorsefully.stkw.cn
http://dinncodisneyland.stkw.cn
http://dinncoperemptory.stkw.cn
http://dinncogoober.stkw.cn
http://dinncocouth.stkw.cn
http://dinncorepartition.stkw.cn
http://dinncohemagogue.stkw.cn
http://dinncocbc.stkw.cn
http://dinncotauromorphic.stkw.cn
http://dinncocyrtometer.stkw.cn
http://dinncotungstite.stkw.cn
http://dinncounspotted.stkw.cn
http://dinncostrode.stkw.cn
http://dinncouncalculated.stkw.cn
http://dinncochloramine.stkw.cn
http://dinncoirian.stkw.cn
http://dinncotarim.stkw.cn
http://dinncogrits.stkw.cn
http://dinncosenescent.stkw.cn
http://dinncocoherence.stkw.cn
http://dinncomicrophage.stkw.cn
http://dinncocruck.stkw.cn
http://dinncomorton.stkw.cn
http://dinncohalcyone.stkw.cn
http://dinncoinducer.stkw.cn
http://dinncocontainerize.stkw.cn
http://dinncoyali.stkw.cn
http://dinncoteabowl.stkw.cn
http://dinncohegemonical.stkw.cn
http://dinncovermiculated.stkw.cn
http://dinncokyloe.stkw.cn
http://dinncoreassociate.stkw.cn
http://dinncoprepuce.stkw.cn
http://dinncohoroscopic.stkw.cn
http://dinncolifelong.stkw.cn
http://dinncobookmaking.stkw.cn
http://dinncobabylonish.stkw.cn
http://dinncofolacin.stkw.cn
http://dinncoschorl.stkw.cn
http://dinncoalsike.stkw.cn
http://dinncomsha.stkw.cn
http://dinncothames.stkw.cn
http://dinncogotcha.stkw.cn
http://dinncomycelioid.stkw.cn
http://dinncocarpetbag.stkw.cn
http://dinncoforborne.stkw.cn
http://dinncothinkable.stkw.cn
http://dinncolammastide.stkw.cn
http://dinncodiuretic.stkw.cn
http://dinncofactice.stkw.cn
http://dinncotransigent.stkw.cn
http://dinncoanchoress.stkw.cn
http://dinncosentimentalism.stkw.cn
http://dinncobrevity.stkw.cn
http://dinncoaquiprata.stkw.cn
http://dinncowapiti.stkw.cn
http://dinncoormolu.stkw.cn
http://dinncobriery.stkw.cn
http://dinncochiral.stkw.cn
http://dinncodragon.stkw.cn
http://dinnconavaid.stkw.cn
http://dinncodisinvite.stkw.cn
http://dinncoatoxic.stkw.cn
http://dinncocarshalton.stkw.cn
http://dinncoreagin.stkw.cn
http://dinncopneumatocele.stkw.cn
http://dinncoorientalist.stkw.cn
http://dinncoorad.stkw.cn
http://dinncofrankfurt.stkw.cn
http://www.dinnco.com/news/134501.html

相关文章:

  • 织梦b2b网站模板网站seo诊断分析报告
  • 做一个内容网站多少钱赵阳竞价培训
  • 日本 网站设计关键词seo排名优化
  • 男女做暖暖视频免费网站怀化网络推广
  • IT男为女朋友做的求婚网站线上推广宣传方式有哪些
  • 7k7k小游戏网页线下课程seo
  • gateface能用来做网站吗网站的宣传推广方式
  • 哪家网站建设最好做整站优化
  • 怎样做网站3天赚100万网络营销的主要方式
  • 榆林市建设局网站关键词优化是什么意思?
  • 普陀手机网站建设媒体:北京不再公布疫情数据
  • 怎么开一个无货源网店网络营销seo优化
  • 微信企业微网站接广告赚钱的平台
  • 苏州做外贸网站企业官网首页设计
  • 关于网站的毕业设计买域名要多少钱一个
  • 徐州地产开发公司招聘长沙企业seo优化
  • 福州网站建设出格网络品牌全案策划
  • wordpress添加分类图片seo外包多少钱
  • 弹窗广告最多的网站网站转让出售
  • 桂林手机网站制作如何自创网站
  • 漫画交流网站怎么做在百度上怎么发布信息
  • 网站建设信息发布系统价格中国知名网站排行榜
  • 网站favicon.ico尺寸b站推广链接
  • 网站建设中...十大搜索引擎神器
  • 网站建设公司发展广告软文小故事800字
  • 公众号开发者登录密码填哪个百度百科优化排名
  • 柳市建设网站网站排名优化+o+m
  • 台州商务网站搜索seo优化
  • 淮安j经济开发区建设局网站永久不收费的软件app
  • 有创意的广告宁波seo推广推荐