Python 中流中的第 K 大元素
假设我们想要设计一个类来查找流中的第 k 大元素。它是经过排序的第 k 大元素,而不是第 k 个不同的元素。
KthLargest 类将有一个构造函数,该函数接受一个整数 k 和一个包含流中初始元素的数组 nums。对于 KthLargest.add 方法的每次调用,都将返回表示流中第 k 大元素的元素。
因此,如果输入类似 k = 3,初始元素 = [4,5,8,2],然后调用 add(3),add(5),add(10),add(9),add(4),则输出将分别是 4、5、5、8、8。
为了解决这个问题,我们将按照以下步骤进行操作:
- 定义初始化程序,它将采用 k、nums
- array := nums
- 定义一个函数 add()。它将采用 val
- 在 array 末尾插入 val
- 对数组进行排序
- 返回 array[array 大小 - k]
让我们看看以下实现以获得更好的理解:
示例
class KthLargest: def __init__(self, k, nums): self.array = nums self.k = k def add(self, val): self.array.append(val) self.array.sort() return self.array[len(self.array)-self.k] ob = KthLargest(3, [4,5,8,2]) print(ob.add(3)) print(ob.add(5)) print(ob.add(10)) print(ob.add(9)) print(ob.add(4))
输入
ob.add(3) ob.add(5) ob.add(10) ob.add(9) ob.add(4)
输出
4 5 5 8 8
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP