当前位置:   article > 正文

leetcode 378. 有序矩阵中第K小的元素(堆)_给定一个n×n的矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素

给定一个n×n的矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素

题目描述:

 

给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。
请注意,它是排序后的第k小元素,而不是第k个元素。

示例:

matrix = [
   [ 1,  5,  9],
   [10, 11, 13],
   [12, 13, 15]
],
k = 8,

返回 13。

说明: 
你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。

 

代码:

class Solution {
public:
    int kthSmallest(vector<vector<int>>& matrix, int k) {
        priority_queue<int,vector<int>,less<int> >q;
        for(int i=0;i<matrix.size();i++){
            for(int j=0;j<matrix[i].size();j++){
                q.push(matrix[i][j]);
                if(q.size()>8)
                    q.pop();
            }
        }
        return q.top();
    }
};

使用的是优先队列。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/982680
推荐阅读
相关标签
  

闽ICP备14008679号