排序后取数组第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
时间: 2024-11-05 22:37:56