首页 > 其他 > 详细

LC 1439. Find the Kth Smallest Sum of a Matrix With Sorted Rows

时间:2020-05-03 20:10:27      阅读:40      评论:0      收藏:0      [点我收藏+]

link

技术分享图片

 

 

class Solution {
public:
    struct Comp{
        bool operator()(vector<int>& v1, vector<int>& v2){
            return v1[0]+v1[1]>v2[0]+v2[1];
        }
    };
    
    int kthSmallest(vector<vector<int>>& mat, int k) {
        vector<int> sum=mat[0];
        int m=mat.size();
        for(int i=1;i<m;i++){
            sum=helper(sum,mat[i]);
        }
        return sum[k-1];
    }
    
    vector<int> helper(vector<int>& num1, vector<int>& num2){
        priority_queue<vector<int>, vector<vector<int>>, Comp> pq; 
        for(int i=0;i<num2.size();i++){
            pq.push({num2[i],num1[0],0});
        }
        vector<int> res;
        while(!pq.empty()){
            auto cur=pq.top();
            pq.pop();
            res.push_back(cur[0]+cur[1]);
            if(res.size()==200) break;
            if(cur[2]<num1.size()-1){
                pq.push({cur[0],num1[cur[2]+1],cur[2]+1});
            }
        }
        return res;
    }
};

 

LC 1439. Find the Kth Smallest Sum of a Matrix With Sorted Rows

原文:https://www.cnblogs.com/FEIIEF/p/12823072.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!