题目链接 | 3275. 第 K 近障碍物查询 |
---|---|
思路 | 大根堆 |
题解链接 | 最大堆维护前 k 小(Python/Java/C++/Go) |
关键点 | “第k小元素”应转换为“大根堆” |
时间复杂度 | \(O(n \log k)\) |
空间复杂度 | \(O(n)\) |
代码实现:
class Solution:def resultsArray(self, queries: List[List[int]], k: int) -> List[int]:answer = [-1] * len(queries)h = []for i, (x, y) in enumerate(queries):heappush(h, -abs(x)-abs(y))if len(h) > k:heappop(h)if len(h) == k:answer[i] = -h[0]return answer