LeetCode 703 資料流中的最k大元素

2021-09-22 13:01:21 字數 828 閱讀 9037

703 資料流中的最k大元素

題目:設計乙個找到資料流中第k大元素的類(class)。注意是排序後的第k大元素,不是第k個不同的元素。

你的 kthlargest 類需要乙個同時接收整數 k 和整數陣列nums 的構造器,它包含資料流中的初始元素。每次呼叫 kthlargest.add,返回當前資料流中第k大的元素。

示例:

int k = 3;

int arr = [4,5,8,2];

kthlargest kthlargest = new kthlargest(3, arr);

kthlargest.add(3); // returns 4

kthlargest.add(5); // returns 5

kthlargest.add(10); // returns 5

kthlargest.add(9); // returns 8

kthlargest.add(4); // returns 8

方法:優先佇列法

思路:建立乙個優先佇列,輸入後判斷佇列是否滿了,沒滿就進棧,滿了就判斷是否大於佇列頂部元素,大於則將清楚佇列頂部元素,放入新元素,優先佇列則會自動排序,最小的放在頂部

**:

static priorityqueuequeue;

static int k;

public leetcode703(int k, int nums)

}public static int add(int val) else

}return queue.peek();

}

Leetcode 703 資料流中的第K大元素

設計乙個找到資料流中第k大元素的類 class 注意是排序後的第k大元素,不是第k個不同的元素。你的 kthlargest 類需要乙個同時接收整數 k 和整數陣列nums 的構造器,它包含資料流中的初始元素。每次呼叫 kthlargest.add,返回當前資料流中第k大的元素。示例 int k 3 ...

leetcode 703 資料流中第K大元素

題目 設計乙個找到資料流中第k大元素的類 class 注意是排序後的第k大元素,不是第k個不同的元素。你的 kthlargest 類需要乙個同時接收整數 k 和整數陣列nums 的構造器,它包含資料流中的初始元素。每次呼叫 kthlargest.add,返回當前資料流中第k大的元素。示例 int k...

LeetCode 703 資料流中的第K大元素

本題的解題過程如下,首先要明確題目的意思 本題目要求給定vector在放入最小堆之後第k大的元素,我們可以在新增元素的時候 也就是add函式 檢查隊中的元素格式是否大於k,一旦發現大於k那麼就將多餘的數字彈出,當我們將目標值val加入堆中之後,仍然要維護堆的大小,其過程同上,最後將堆頂元素返回即可。...