给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。
请注意,它是排序后的第k小元素,而不是第k个元素。
示例:
matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。
说明:
你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。
C++
class Solution {
public:
int kthSmallest(vector<vector<int>>& matrix, int k)
{
int n=matrix.size();
priority_queue<int> que;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
que.push(matrix[i][j]);
if(que.size()>k)
{
que.pop();
}
}
}
return que.top();
}
};