领扣LintCode算法问题答案-1078. 数组的度
发布日期:2021-06-30 17:09:45
浏览次数:3
分类:技术文章
本文共 1341 字,大约阅读时间需要 4 分钟。
领扣LintCode算法问题答案-1078. 数组的度
目录
1078. 数组的度
描述
给定由非负整数组成的非空数组,数组的度定义为出现频率最高的元素。
找出最短的连续子数组,并使得它和原数组有相同的度。返回该连续子数组的长度。
- nums.length的范围在1到50,000之间。
- nums[i]是范围为0到49,999的整数。
样例 1:
输入: [2, 2]输出: 2
样例 2:
输入: [1, 2, 2, 3, 1]输出: 2解释: 输入数组的度是2,1和2都出现了两次。具有相同度的子串包括:[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]其中长度最短为2。所以返回2。
题解
public class Solution { /** * @param nums: a list of integers * @return: return a integer */ public int findShortestSubArray(int[] nums) { // write your code here Map> map = new HashMap<>(); int maxNum = 0; int maxCount = 0; for (int i = 0; i < nums.length; i++) { int n = nums[i]; List indexs = map.get(n); if (indexs == null) { indexs = new ArrayList<>(); map.put(n, indexs); } indexs.add(i); if (indexs.size() > maxCount) { maxCount = indexs.size(); maxNum = n; } } if (maxCount == 1) { return 1; } else { List indexs = map.get(maxNum); return indexs.get(indexs.size() - 1) - indexs.get(0) + 1; } }}
鸣谢
非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。
转载地址:https://le-yi.blog.csdn.net/article/details/108809247 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月08日 07时53分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【NLP学习笔记】One-hot encoding:独热编码
2019-04-30
【工具使用】CSDN编辑器markdown字体、颜色与字号的设置
2019-04-30
【NLP学习笔记】词共现矩阵
2019-04-30
【NLP学习笔记】NLP基础知识框架图
2019-04-30
【深度学习笔记】卷积的输入输出的通道、维度或尺寸变化过程
2019-04-30
【NLP学习笔记】训练集、验证集和测试集的概念及划分
2019-04-30
【NLP学习笔记】conda换源
2019-04-30
【深度学习笔记】标准卷积
2019-04-30
【深度学习笔记】组卷积
2019-04-30
【深度学习笔记】循环神经网络和递归神经网络区别
2019-04-30
【学习笔记】英文科技论文常见英语句式积累
2019-04-30
【深度学习笔记】PixelShuffle
2019-04-30
【python3学习笔记】斜杠和双斜杠运算符的区别
2019-04-30
【深度学习笔记】用torch.nn.Sequential()搭建神经网络模型
2019-04-30
【深度学习笔记】用torch.nn.ModuleList搭建神经网络
2019-04-30