Kth Smallest Element in a Sorted Matrix (第十二周 二分法)

来源:互联网 发布:win7服务器端口开放 编辑:程序博客网 时间:2024/06/05 15:42

Kth Smallest Element in a Sorted Matrix (第十二周 二分法)

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.

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

Note:
You may assume k is always valid, 1 ≤ k ≤ n2.

算法思路

这道题让我们求有序矩阵中第K小的元素。数据是蛇形的,我们只需要把数据扫一遍,放入一个一维的数组当中,再使用二分查找,就能够做出。

算法代码

class Solution {  public:      int kthSmallest(vector<vector<int>>& matrix, int k) {          int row=matrix.size(); //行          int col=matrix[0].size();  //列          vector<int> number;          for(int i=0; i<row; i++){              for(int j=0; j<col; j++){                  number.push_back(matrix[i][j]);              }//for          }//for          sort(number.begin(), number.end());          return number[k-1];      }  };
阅读全文
0 0
原创粉丝点击