### 问题描述

Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth smallest element in the matrix.

Note that it is the kth smallest element in the sorted order, not the kth distinct element.

Example:

matrix = [
[ 1,  5,  9],
[10, 11, 13],
[12, 13, 15]
],
k = 8,

return 13.


### 解题思路

1. 使用暴力解法，直接将所有元素集中到一个数组中，然后排序（快速），最后返回第k个数；
2. 维护一个最小堆

### 代码

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

/*

*/

class Solution {
public:
int kthSmallest(vector<vector<int> >& matrix, int k) {
int n = matrix.size();
int c = 0;
vector<int> target;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
target.push_back(matrix[i][j]);
}
}

sort(target.begin(), target.end());
return target[k-1];
}

};

int main(){
int x[3][3] = {
{
1,5,9
},
{
10,11,13
},
{
12,13,15
}
};
vector<vector<int> > matrix;
int a = 1;
for(int i=0;i<3;i++) {
vector<int> t;
for(int j=0;j<3;j++) {
t.push_back(x[i][j]);
}
matrix.push_back(t);
}
Solution s;
int kth = s.kthSmallest(matrix, 8);
cout<<kth;
}