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. kubeadm搭建kubernetes集群之一:构建标准化镜像

    使用docker可以批量管理多个容器,但都是在同一台电脑内进行的,这在实际生产环境中是不够用的,如何突破单机的限制?让多个电脑上的容器可以像单机上的docker-compose.yml管理的那样方便呢 ...

  2. laravel 修改重置密码模板

    Laravel里我们可以使用php artisan make:auth来生成一套默认的登陆注册重置邮箱的Authentication System,但是如何修改系统发送给用户的重置密码邮件的样式和内容 ...

  3. 51nod 1118 机器人走方格

    M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果. 收起   输入 第1行,2个数M,N,中间用空格隔开 ...

  4. callback回调函数-python

    链接:http://www.zhihu.com/question/19801131/answer/27459821来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 编程分 ...

  5. {Reship}{Sparse Representation}稀疏表示

    ===================================================== http://blog.sina.com.cn/s/blog_6d0e97bb01015wo ...

  6. apache编译参数详解

    常用编译参数: ./configure     //配置源代码树–prefix=/usr/local/apache    //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录.–e ...

  7. 通过修改注册表建立Windows自定义协议

    引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对 ...

  8. Python——你应该知道这些

    1. Python的出生 1989年 Guido van Rossum开始编写Python语言编辑器(龟叔为了打发无聊的圣诞节) 1991年 第一个Python编译器诞生(正式诞生) 1994年 Py ...

  9. awk:NF-NR-OFS-ORS-RS等参数

    ARGC 命令行参数个数ARGV 命令行参数排列ENVIRON 支持队列中系统环境变量的使用FILENAME awk浏览的文件名FNR 浏览文件的记录数FS 设置输入域分隔符,等价于命令行 -F选项N ...

  10. rapidjson的read和write的sample

    头文件 #include "json/document.h" #include "json/prettywriter.h" #include "jso ...