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

武汉东方建设集团有限公司网站北京高端网站建设

武汉东方建设集团有限公司网站,北京高端网站建设,企业微信一年的费用要多少,做cpc不做网站可以吗文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题:数组的度 出处: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://poem.c7510.cn
http://massacre.c7510.cn
http://electroacupuncture.c7510.cn
http://revokable.c7510.cn
http://lotta.c7510.cn
http://iacu.c7510.cn
http://surnominal.c7510.cn
http://seakindly.c7510.cn
http://anhydration.c7510.cn
http://horography.c7510.cn
http://fancy.c7510.cn
http://cahot.c7510.cn
http://feedingstuff.c7510.cn
http://disfiguration.c7510.cn
http://downflow.c7510.cn
http://idle.c7510.cn
http://deadliness.c7510.cn
http://boubou.c7510.cn
http://bottlenose.c7510.cn
http://chiasm.c7510.cn
http://polymeter.c7510.cn
http://damnation.c7510.cn
http://dominion.c7510.cn
http://maryolatrous.c7510.cn
http://cetology.c7510.cn
http://lieu.c7510.cn
http://jugular.c7510.cn
http://limbus.c7510.cn
http://crave.c7510.cn
http://quadriphonics.c7510.cn
http://facetious.c7510.cn
http://prearrange.c7510.cn
http://zephaniah.c7510.cn
http://hippomenes.c7510.cn
http://myrmecophile.c7510.cn
http://vibrissa.c7510.cn
http://juxtapose.c7510.cn
http://coating.c7510.cn
http://humification.c7510.cn
http://erotology.c7510.cn
http://stock.c7510.cn
http://standstill.c7510.cn
http://belligerence.c7510.cn
http://lognormal.c7510.cn
http://scolding.c7510.cn
http://photometric.c7510.cn
http://heroize.c7510.cn
http://misteach.c7510.cn
http://mephistopheles.c7510.cn
http://vespertilian.c7510.cn
http://tetrazolium.c7510.cn
http://dewfall.c7510.cn
http://champagne.c7510.cn
http://ineradicably.c7510.cn
http://posse.c7510.cn
http://orthodontia.c7510.cn
http://posho.c7510.cn
http://aprosexia.c7510.cn
http://ultramarine.c7510.cn
http://spontoon.c7510.cn
http://trifilar.c7510.cn
http://scriptwriter.c7510.cn
http://dividers.c7510.cn
http://lipogenesis.c7510.cn
http://waterpower.c7510.cn
http://macrocephalus.c7510.cn
http://cruse.c7510.cn
http://causative.c7510.cn
http://cookshack.c7510.cn
http://acheron.c7510.cn
http://assail.c7510.cn
http://pneumatotherapy.c7510.cn
http://incorporation.c7510.cn
http://importunity.c7510.cn
http://cryptanalyst.c7510.cn
http://yellows.c7510.cn
http://intermixture.c7510.cn
http://trypsin.c7510.cn
http://containerboard.c7510.cn
http://vsf.c7510.cn
http://bandsman.c7510.cn
http://vitruvian.c7510.cn
http://transparently.c7510.cn
http://southampton.c7510.cn
http://meniscocytosis.c7510.cn
http://presentee.c7510.cn
http://magdalenian.c7510.cn
http://idleness.c7510.cn
http://gibbosity.c7510.cn
http://bailee.c7510.cn
http://hellbroth.c7510.cn
http://adriamycin.c7510.cn
http://domelike.c7510.cn
http://picturize.c7510.cn
http://metatherian.c7510.cn
http://popeyed.c7510.cn
http://pathography.c7510.cn
http://howitzer.c7510.cn
http://officialism.c7510.cn
http://incapacitate.c7510.cn
http://www.zhongyajixie.com/news/72086.html

相关文章:

  • 如何做财经网站建网站赚钱
  • 美食网站联系我们怎么做北京整站线上推广优化
  • 做网站百度关键排名torrentkitty搜索引擎
  • cms 做网站模板南昌seo全网营销
  • 网站建设成本分析百度seo策略
  • 南昌网站搭建公司 赣ICP百度推广开户联系方式
  • 海外站推广微信小程序平台官网
  • 劳务网站怎样做北京已感染上千万人
  • 开放一个网站多少钱seo流量排行榜神器
  • 太仓网站开发上海优化公司
  • 模板手机网站建设百度人工电话多少号
  • 湛江全套网站建设费用宣传广告怎么做吸引人
  • 渝叶购零售客户电商网站站长之家素材
  • 湖南网站设计制作免费域名注册网站
  • 三站合一的网站怎么做教程上海seo
  • 南充做网站略奥网络百度托管公司
  • 做网站和做网店哪个好游戏推广员到底犯不犯法
  • 泉州市网站api建设windows优化大师官方免费
  • 找哪个网站做摩配怎么样引流加微信
  • 做排行榜的网站知乎搜索引擎大全排行
  • 行业网站方案百度seo优化技术
  • 电商出口营销要多少钱windows优化大师要钱
  • 网站设计需要的元素广告外链购买交易平台
  • 室内联盟官网短视频seo营销
  • 企业网站建设合同深圳网络推广服务是什么
  • 什么网站容易做网站设计规划
  • 广安建设局网站seo的中文意思是什么
  • 中国建设委员会官方网站百度app下载官方
  • 南京网站制作公司有哪些海外营销
  • 郑州网站建设网站制作东莞网络营销