package com.leetcode.heaps; import javafx.util.Pair; import java.util.*; import java.util.stream.Collectors; import static org.junit.jupiter.api.Assertions.assertEquals; /** * Level: Medium * Link: https://leetcode.com/problems/top-k-frequent-elements/ * Description: * Given a non-empty array of integers, return the k most frequent elements. *
* Example 1: * Input: nums = [1,1,1,2,2,3], k = 2 * Output: [1,2] *
* Example 2: * Input: nums = [1], k = 1 * Output: [1] *
* 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. * * @author rampatra * @since 2019-08-19 */ public class TopKFrequentElements { /** * TODO: A faster approach without using Pair. *
* Runtime: 51 ms.
*
* @param nums
* @param k
* @return
*/
public static List