Kth Smallest Element in a Sorted Matrix

378. Kth Smallest Element in a Sorted Matrix

題目的要求是找到在一個排序好的組合矩陣中,找到第 k 個最小的元素。

最簡單的方式當然就是全部排列出來後,再直接找到該元素,但是這樣的記憶體需求是 \(O(n^2)\),題目希望我們可以用更少的記憶體來完成。

class Solution:
    def kthSmallest(self, matrix: List[List[int]], k: int) -> int:
        
        heap = []
        
        for i in range(len(matrix)):
            for j in range(len(matrix)):
                heapq.heappush(heap, -1 * matrix[i][j])
                if len(heap) > k:
                    heapq.heappop(heap)
        
        return heap[0] * -1