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. ExpressCache

    ExpressCache 非联想.等品牌电脑使用的ExpressCache(带破解文件). (原始安装文件+patch+说明).注意,执行eccmd命令时,需要管理员权限.否则报错. http://a ...

  2. 隐居网V2.0

    经过一个月加班加点的努力,我们终于把隐居网V2.0版做好了(一个设计两个前端三个程序).上一版的隐居网因为经验不够底层架构没搭好(前台和后台都是),又是赶工期,导致后面越做越坑爹.所谓从哪里跌倒从哪里 ...

  3. HihoCoder - 1496:寻找最大值(高维前缀和||手动求子集)

    描述 给定N个数A1, A2, A3, ... AN,小Ho想从中找到两个数Ai和Aj(i ≠ j)使得乘积Ai × Aj × (Ai AND Aj)最大.其中AND是按位与操作. 小Ho当然知道怎么 ...

  4. 第一次Sprint团队贡献分

    201406114105       董婷婷           21 201406114157       容杰龙           22 201406114343       卓炜杰       ...

  5. 使用Costura.Fody将源DLL合并到目标EXE

    本文为原创文章,如转载,请在网页明显位置标明原文名称.作者及网址,谢谢! 一.本文主要是使用Costura.Fody工具将源DLL合并到目标EXE,因此,需要从以下任一链接下载: ①从Github地址 ...

  6. 腾讯加入QQ群,代码生成地址

    腾讯加入QQ群,代码生成地址 http://qun.qq.com/join.html

  7. CF 1093G Multidimensional Queries——线段树(消去绝对值符号)

    题目:http://codeforces.com/contest/1093/problem/G 只好看看题解:https://codeforces.com/blog/entry/63877 主要是把绝 ...

  8. eclipse git 开发操作流程

    1.eclipse git 开发操作流程 1.1流程简介 1)master主分支,当开发版本得到了充分的验证之后,才能将分支合入master,master为可产品化发布的状态. 2)develop分支 ...

  9. C++中const使用注意要点(二)

    当const修饰类的成员变量 1.const修饰类的非静态成员时必须在构造函数初始化列表上初始化: 在构造函数内会提示表达式必须是可修改的左值,因为在构造函数内并不是初始化,仅仅是赋值,而const类 ...

  10. [Java.web][eclipse]经验集

    自动提示部分内容来自:http://www.cnblogs.com/mashuangying2016/p/6549991.html 使用 Eclipse 调试 Tomcat 的设置: Window - ...