ソートマトリックス中378 K番目の最小要素**

ソートマトリックス中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は常に有効であると仮定して、 1 K n個 2 1≤K≤N ^ 2

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();
    }
};
公開された455元の記事 ウォンの賞賛8 ビュー20000 +

おすすめ

転載: blog.csdn.net/Eric_1993/article/details/104860233