ソートマトリックス中378 K番目の最小要素**
https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/
タイトル説明
与えられたn x n
行と列のそれぞれは、昇順にソートされているマトリックス、マトリックス中のk番目の最小の要素を見つけます。
それはソート順ではなく、k番目の別個の要素でk番目の最小要素であることに留意されたいです。
例:
matrix = [
[ 1, 5, 9],
[10, 11, 13],
[12, 13, 15]
],
k = 8,
return 13.
注:
あなたは、kは常に有効であると仮定して、
。
C ++の実装1
最大ヒープ。
class Solution {
public:
int kthSmallest(vector<vector<int>>& matrix, int k) {
priority_queue<int> q;
int n = matrix.size();
for (int i = 0; i < n; ++ i) {
for (int j = 0; j < n; ++ j) {
q.push(matrix[i][j]);
if (q.size() > k) q.pop();
}
}
return q.top();
}
};