public class Solution
{
public int FindShortestSubArray(int[] nums)
{
//先找到最大频度的数字都有哪些,加入到一个集合中
var dic = new Dictionary<int, int>();
var dic2 = new Dictionary<int, List<int>>();
for (int i = ; i < nums.Length; i++)
{
var num = nums[i];
if (!dic.ContainsKey(num))
{
dic.Add(num, );
dic2.Add(num, new List<int>());
}
else
{
dic[num]++;
} dic2[num].Add(i);//记录此数字的所有下标 }
var list = dic.OrderByDescending(x => x.Value).ToList();
int maxFreq = list[].Value;
var list2 = dic.Where(x => x.Value == maxFreq).ToList(); //遍历集合,一次判断每个数最早出现的位置和最晚出现的位置
int min = int.MaxValue;
foreach (var l in list2)
{
var num = l.Key;
var begin = dic2[num].First();
var end = dic2[num].Last();
var dif = end - begin;
if (min > dif)
{
min = dif;
}
}
//寻找最小间隔
return min + ;
}
}

leetcode697的更多相关文章

  1. [Swift]LeetCode697. 数组的度 | Degree of an Array

    Given a non-empty array of non-negative integers nums, the degreeof this array is defined as the max ...

  2. Leetcode697.Degree of an Array数组的度

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

随机推荐

  1. 【剑指offer】包含min函数的栈,C++实现

    博客文章索引地址 博客文章中代码的github地址 1.题目 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数.在该栈中调用push.pop.top.min的时间复杂度都是o(1) ...

  2. xgboost系列之应用xgboost的注意事项

    问题:win和mac平台运行相同的xgboost代码,效果不同? 解决:xgboost的参数colsample_bytree设置为1.

  3. 分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

    本篇导读: 上篇介绍了一款Windows环境下的Git服务器工具GitStack ,搭建了最简单的Windows下的Git服务器,需要再次提醒的是GitStack是打包了相对较稳定的Git原生版本的, ...

  4. js缓动函数

    tween: { easeInQuad: function(pos){ return Math.pow(pos, 2); }, easeOutQuad: function(pos){ return - ...

  5. Windows 10 自带那么多图标,去哪里找呢?

    无意间发现我的 D 盘根目录中大部分的文件夹都是系统专用文件夹,有自己的独特图标,偶有一两个开发用的文件夹是默认图标.于是想把它们改成独特样式,而且是 Windows 10 那些新图标样式! 这是我的 ...

  6. python(八):反射

    反射机制是通过python3内置的hasattr.getattr.setattr来实现的.即根据变量名的字符串形式来获取变量名的属性或方法. 一.通过反射查看已知对象的属性和方法 getattr(ob ...

  7. Git之安装管理

    1.Git安装部署 Git是分布式的版本控制系统,我们只要有了一个原始Git版本仓库,就可以让其他主机克隆走这个原始版本仓库,从而使得一个Git版本仓库可以被同时分布到不同的主机之上,并且每台主机的版 ...

  8. Ecel 粘贴图片并调整大小,移到底层

    Sub Click() ActiveSheet.Pictures.Paste.Select Selection.ShapeRange.ScaleWidth 1.4, msoTrueSelection. ...

  9. python模块--json \ pickle \ shelve \ XML模块

    一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...

  10. 在Centos中yum安装和卸载软件的使用方法(转)

    在Centos中yum安装和卸载软件的使用方法 安装方法 安装一个软件时 yum -y install httpd 安装多个相类似的软件时 yum -y install httpd* 安装多个非类似软 ...