您的位置:首页 > 娱乐 > 八卦 > 阿里云服务器一个月多少钱_科技布沙发优缺点_网络营销师是干什么的_网络推广工作好做不

阿里云服务器一个月多少钱_科技布沙发优缺点_网络营销师是干什么的_网络推广工作好做不

2025/2/27 17:32:29 来源:https://blog.csdn.net/weixin_41500467/article/details/144052641  浏览:    关键词:阿里云服务器一个月多少钱_科技布沙发优缺点_网络营销师是干什么的_网络推广工作好做不
阿里云服务器一个月多少钱_科技布沙发优缺点_网络营销师是干什么的_网络推广工作好做不

BM47 寻找第k大

第一天就随便记录吧,万事开头难,我好不容易开的头,就别难为自己,去追求高质量了。嘿嘿嘿
题目 传送门

解题思路一:维护一个大小为k的最小堆。最后返回堆顶元素。
代码:

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param a int整型一维数组
# @param n int整型
# @param K int整型
# @return int整型
#
from heapq import heappushpop
from typing import List#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param a int整型一维数组
# @param n int整型
# @param K int整型
# @return int整型
#
from heapq import heappushpop
from typing import Listclass Solution:def findKth(self , a: List[int], n: int, K: int) -> int:# write code here# 维护一个大小为k的最小堆。最后返回堆顶元素import heapqheap = []# 将前k个数压进数组for i in range(K):heapq.heappush(heap, a[i])print(f"heap = {heap}")for i in range(K,n):# 取堆顶元素,如果堆顶元素小,poppush,如果堆顶元素一样,push。如果堆顶元素大,passheap_top = heap[0]print(f"{a[i], heap_top}")if a[i] > heap_top:heapq.heappop(heap)heapq.heappush(heap,a[i])elif a[i] == heap_top:heapq.heappush(heap,a[i])else:passprint(heap)return heap[-K]
so = Solution()
a,n,K = [10,10,9,9,8,7,5,6,4,3,4,2],12,3
print(so.findKth(a,n,K)) 

解题思路二:二分查找,这个思路很值得学习
思路二 原帖传送门
等我实现实现

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com