703. Kth Largest Element in a Stream
2024-08-25 13:51:14
题目来源:
https://leetcode.com/problems/kth-largest-element-in-a-stream/
自我感觉难度/真实难度:
题意:
这个题目的意思解读了半天,没搞明白什么意思,后来画了一下图,一下子就明了
分析:
自己的代码:
代码效率/结果:
优秀代码:
class KthLargest: def __init__(self, k, nums):
"""
:type k: int
:type nums: List[int]
"""
self.pool=nums
self.size=len(self.pool)
self.k=k
heapq.heapify(self.pool)
while self.size>k:
heapq.heappop(self.pool)
self.size-=1 def add(self, val):
"""
:type val: int
:rtype: int
"""
if self.size<self.k:
heapq.heappush(self.pool,val)
self.size+=1
elif val>self.pool[0]:
heapq.heapreplace(self.pool,val)
return self.pool[0]
代码效率/结果:
自己优化后的代码:
反思改进策略:
1.熟悉了一下怎么使用heapqd的常规函数
2.最后这个
if self.size<self.k:
是不是可以省略呢,size是不是不可能大于K,因为初始化的时候,数组就只有K那么大?后面用的replace,不会变大的
验证了一下,不行的:因为输入的list,有可能是空的,这样会报错,out of index
最新文章
- 招聘.NET开发人员(截止于2015-06-15)
- Web前端代码页面布局总结
- EXT 省市三级联动及默认选择
- string和vector
- SQLSERVER数据库中批量导入数据的几种方法
- C# 页面抓取获取快递信息
- jquery控制css的display(控制元素的显示与隐藏)
- mysql优化之查询优化
- Dynamics 365中极特殊语言的文字搜索结果异常
- 马拉车算法——求回文子串个数zoj4110
- CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置
- Javascript的DOM总结
- django之 基于queryset和双下划线的跨表查询
- 虚拟机下Linux操作Ubuntu
- 配置Synwrite作为Python的IDE
- HDU.3571.N-dimensional Sphere(高斯消元 模线性方程组)
- nvidia-smi failed because it couldn&#39;t communicate with the nvidia driver
- finecms栏目文章页seo设置
- App上架流程[利用Archive进行上传]
- 洛谷 P1073 最优贸易 解题报告