1. 题目

给定一个非空且只包含非负数的整数数组 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范围内的整数。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/degree-of-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:int findShortestSubArray(vector<int>& nums) {int degree = 1, n, minlen = INT_MAX;unordered_map<int, int> m, start, end;for (int i = 0; i < nums.size(); ++i){if(m.find(nums[i]) == m.end())//没出现过该数{m[nums[i]] = 1;//计数start[nums[i]] = i;//数字起始位置end[nums[i]] = i;//终止位置}else//出现过该数字{m[nums[i]]++;//计数if(m[nums[i]] > degree)//更新最大频数degree = m[nums[i]];end[nums[i]] = i;//更新终止位置}}for(auto it = m.begin(); it != m.end(); ++it){if(it->second == degree)//等于最大的频数{if(end[it->first]-start[it->first]+1 < minlen)//长度更小minlen = end[it->first]-start[it->first]+1;}}return minlen;}
};

76 ms 13.8 MB

LeetCode 697. 数组的度相关推荐

  1. 3、leetcode 697 数组的度

    leetcode 697 数组的度 给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最 ...

  2. leetcode 697. 数组的度(hashmap)

    给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度. 示例 1 ...

  3. leetcode(3)——697. 数组的度(C++版本注释)(map容器),448. 找到所有数组中消失的数字(取余操作,C++中的auto类型)

    文章目录 前言 697 程序 思路 收获 map容器 448 程序 收获 取模操作的思考 auto 前言 大佬的程序,边刷边总结边学语言. 题目697 697 程序 class Solution {p ...

  4. 【leetcode】数组的度-两个map关联初探

    class Solution {public:unordered_map<int,vector<int>> m;//统计开始和结束坐标 unordered_map<int ...

  5. 【leetcode刷题】 64.数组的度——Java版

    ⭐欢迎订阅<leetcode>专栏,每日一题,每天进步⭐ 看明白了就不难,总结一下就是要找出数组的众数,并且还有找出众数在数组中第一次出现和最后一次出现的位置,两个位置组成区间长度就是答案 ...

  6. LeetCode简单题之数组的度

    题目 给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度. ...

  7. leetcode 697 Degree of an Array

    题目详情 Given a non-empty array of non-negative integers nums, the degree of this array is defined as t ...

  8. angularjs 元素重复指定次数_[LeetCode] 442. 数组中重复的数据

    [LeetCode] 442. 数组中重复的数据 题目链接: https://leetcode-cn.com/problems/find-all-duplicates-in-an-array 难度:中 ...

  9. LeetCode-697. 数组的度

    题目描述: 给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度 ...

最新文章

  1. 2003 SERVER 本地连接 TCP/IP问题[转]
  2. Python错误:TypeError: 'list' object is not callable
  3. win10:tensorflow学习笔记(2)
  4. 前端学习(757):预解析
  5. 对未来人机融合智能领域的思考
  6. C#程序集Assembly学习随笔(增补版,附图)_AX
  7. (39)System Verilog线程停止(disable)
  8. 【Arthas】Arthas classloader类加载器
  9. Java多线程学习总结(7)——创建线程池的正确姿势
  10. 在 Mac 上拷贝(复制)、粘贴的方法
  11. html背景毛玻璃,一秒提高格调!帮你快速生成网页毛玻璃背景的酷站(附CSS代码)...
  12. S3E:用于协作SLAM的大规模多模态数据集
  13. 用数组统计字符串中26个大写字母的个数
  14. 人类基因编辑国际峰会周琪院士谈基因编辑的未来
  15. Hybrid接口、MSTP协议
  16. Cowboy 源码分析(十一)
  17. X Normal使用方法
  18. JavaScript中的垃圾回收和内存泄漏
  19. 从码云git pull代码显示没权限
  20. 教育学院计算机试卷答案,东北财经大学网络教育学院《计算机(高起点)》模拟试卷及答案(共4套)...

热门文章

  1. python 比赛成绩预测_利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!值得,涨知识了!...
  2. 5G毫米波通信中一些量化的概念
  3. 吴裕雄--天生自然 物理学习与探索笔记:电功、电路以及欧姆定律
  4. jdk8 Function
  5. stm32F1使用SD卡实现IAP
  6. Supervised Convolutional Neural Network
  7. ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL(转)
  8. openMP学习笔记(一)
  9. #define va_arg(AP, TYPE)
  10. python求回数_用python求回数