1. 暴力记录前k个
class Solution {
public:
int kthSmallest(vector<vector<int>>& mat, int k) {
vector<int> pre(k,0); //存储前k个最小的和
int cur[mat[0].size() * k]; //存储
int size = 1;//用于记录pre当前大小
for (auto& row : mat) {//遍历每一行
int i = 0; //从0开始, 对当前行
for (int j = 0; j < size; ++j) { //遍历pre里面所有数
for (int& v : row) { //遍历当前行所有数
cur[i++] = pre[j] + v; //计算当前轮次所有数组和
}
}
sort(cur, cur + i); //对cur里面的数排序
size = min(i, k); //更新pre数组大小,刚开始pre可能放不满
for (int j = 0; j < size; ++j) //记录前k个
pre[j] = cur[j];
}
return pre[k - 1];
}
};
标签:pre,数组,int,mat,矩阵,++,有序,size,cur
From: https://www.cnblogs.com/929code/p/17438294.html