LeetCode 347. Top K Frequent Elements
Posted Live In A Dream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 347. Top K Frequent Elements相关的知识,希望对你有一定的参考价值。
题目链接:https://leetcode.com/problems/top-k-frequent-elements/
最近一直在练用java写题做比赛,也在学java 8的特性,这题主要是用来练一下java 8的,题目的算法可以写个基于堆的nlog(k),这个没什么好多说的了。
不保证我的java 8程序是最简洁的,我很可能还是写了啰嗦了。
1 public class Solution { 2 public List<Integer> topKFrequent(int[] nums, int k) { 3 Map<Integer, Integer> map = new HashMap<>(); 4 Arrays.stream(nums).forEach(x -> map.merge (x, 1, Integer::sum)); 5 Queue<Integer> queue = new PriorityQueue<>((x, y) -> map.get(x).compareTo(map.get(y))); 6 map.forEach((key,value) ->{ 7 if (queue.size()<k) { 8 queue.add(key); 9 } 10 else if (map.get(queue.peek())<value){ 11 queue.poll(); 12 queue.add(key); 13 } 14 }); 15 List<Integer> list = new ArrayList<>(); 16 queue.forEach(list::add); 17 return list; 18 } 19 }
以上是关于LeetCode 347. Top K Frequent Elements的主要内容,如果未能解决你的问题,请参考以下文章
#Leetcode# 347. Top K Frequent Elements
Leetcode 347: Top K Frequent Elements
LeetCode OJ 347. Top K Frequent Elements hashmap+排序求解
leetcode347 - Top K Frequent Elements - medium