leetcode378 有序矩阵中第k小的元素

 排序后取数组第k个元素,遍历需要n^2的复杂度,查找插入logn,时间复杂度O(n^2logn)。方法很笨,完全就是STL过于牛x运行通过的。

class Solution {
public:
    int kthSmallest(vector<vector<int>>& matrix, int k) {
        //O(n2logn)
        vector<int> arr;
        for(int j=0;j<matrix[0].size();j++){
            arr.push_back(matrix[0][j]);
        }
        for(int i=1;i<matrix.size();i++){
            for(int j=0;j<matrix[0].size();j++){
                auto ptr=lower_bound(arr.begin(),arr.end(),matrix[i][j]);
                arr.insert(ptr,matrix[i][j]);
            }
        }
        return arr[k-1];
    }
};

原文地址:https://www.cnblogs.com/joelwang/p/11981173.html