150强访谈简单

流中第 K 个最大元素

“流中第 K 个最大元素”问题的详细指南和 Python 实现。

问题陈述

简单

设计一个类来查找流中的第 k 大元素。请注意,它是排序顺序中的第 k 个最大元素,而不是第 k 个不同元素。

实现 KthLargest 类:

- KthLargest(k: int, nums: List[int]) 使用整数 k 和整数流 nums 初始化对象。

- add(val: int) -> int 将整数 val 追加到流中并返回表示第 k 个最大元素的元素。

输入是操作和参数的列表。实现一个函数 kthLargest(operations: list, arguments: list) -> list 返回结果列表(构造函数为 None,add 为 int)。

约束条件
  • 1 <= k <= 10^4
  • 0 <= len(nums) <= 10^4
  • -10^4 <= nums[i], val <= 10^4
  • At most 10^4 calls will be made to add

示例

Example 1
Input
operations = ["KthLargest", "add", "add", "add", "add", "add"], arguments = [[3, [4, 5, 8, 2]], [3], [5], [10], [9], [4]]
Output
[None, 4, 5, 5, 8, 8]
Explanation

KthLargest class is initialized with k=3 and nums=[4,5,8,2]. add(3) returns 4. add(5) returns 5. add(10) returns 5. add(9) returns 8. add(4) returns 8.

Need a Hint?
考虑使用堆/优先级队列特定的数据结构,例如集合或堆。
Edge Cases to Watch
  • 空输入结构
  • 单元素输入
  • 大数值范围

准备好解决了吗?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

在编辑器中打开
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

推荐的 Python 资源

通过相关的交互式教程、备忘单和代码比较来扩展您的知识。