← 返回 amazon 的题目列表Find Top K Elements from Data Stream
类型:online_judge
amazon
Given an integer data stream and an integer k, design a class that supports the following operations:
addElement(int val) - Adds the integer to the data stream.
getTopK() - Returns a list of the top k largest numbers in the data stream, sorted in descending order.
Please implement the code for the above operations. Assume all integers are in the range [−10^4, 10^4], and the addElement operation will be called at most 10^5 times. If k is greater than the number of elements in the stream, return all available elements sorted in descending order.
Example:
StreamTopK topK = new StreamTopK(3);
// Add elements
addElement(1);
addElement(5);
addElement(3);
// Get top k largest elements
getTopK(); // Returns [5, 3, 1]
addElement(4);
getTopK(); // Returns [5, 4, 3]
Example
Input
StreamTopK(3)
addElement(1)
addElement(5)
addElement(3)
getTopK()
addElement(4)
getTopK()