博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 347: Top K Frequent Elements
阅读量:4959 次
发布时间:2019-06-12

本文共 1520 字,大约阅读时间需要 5 分钟。

Given a non-empty array of integers, return the k most frequent elements.

For example,

Given [1,1,1,2,2,3] and k = 2, return [1,2].

Note: 

    • You may assume k is always valid, 1 ≤ k ≤ number of unique elements.
    • Your algorithm's time complexity must be better than O(n log n), where n is the array's size.
1 public class Solution { 2     public IList
TopKFrequent(int[] nums, int k) { 3 var dict = new Dictionary
(); 4 5 foreach (var n in nums) 6 { 7 if (!dict.ContainsKey(n)) 8 { 9 dict[n] = 0;10 }11 12 dict[n]++;13 }14 15 var freq = new List
[nums.Length + 1];16 17 foreach (var kv in dict)18 {19 if (freq[kv.Value] == null)20 {21 freq[kv.Value] = new List
();22 }23 24 freq[kv.Value].Add(kv.Key);25 }26 27 var result = new List
();28 for (int i = nums.Length; i >= 0; i--)29 {30 if (freq[i] != null)31 {32 foreach (var v in freq[i])33 {34 result.Add(v);35 if (result.Count >= k) return result;36 }37 }38 }39 40 return result;41 }42 }

 

转载于:https://www.cnblogs.com/liangmou/p/8030652.html

你可能感兴趣的文章
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C3P0 WARN: Establishing SSL connection without server's identity verification is not recommended
查看>>
iPhone在日本最牛,在中国输得最慘
查看>>
动态方法决议 和 消息转发
查看>>
js 基础拓展
查看>>
C#生成随机数
查看>>
Android应用程序与SurfaceFlinger服务的连接过程分析
查看>>
Java回顾之多线程
查看>>
sqlite
查看>>
机电行业如何进行信息化建设
查看>>
9、总线
查看>>
Git 笔记 - section 1
查看>>
HDU6409 没有兄弟的舞会
查看>>
2018 Multi-University Training Contest 10 - TeaTree
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
《人人都是产品经理》书籍目录
查看>>
如何在git bash中运行mysql
查看>>
OO第三阶段总结
查看>>
构建之法阅读笔记02
查看>>