文章目录
题目
代码(9.12 首刷看解析)
优先队列
class Solution {
public:
int kthSmallest(vector<vector<int>>& matrix, int k) {
int m = matrix.size(), n = matrix[0].size();
priority_queue<vector<int>, vector<vector<int>>, greater<vector<int>>> q;
for(int i = 0; i < m; i++)
q.push({
matrix[i][0], i, 0});
while(!q.empty() && k) {
k--;
auto cur = q.top();
q.pop();
if(k == 0) {
return cur[0];
}
int i = cur[1], j = cur[2];
if(j+1 < n) {
q.push({
matrix[i][j+1], i, j+1});
}
}
return -1;
}
};