题目: 思考:
实现:
class Solution {
public:
int kthSmallest(vector<vector<int>>& matrix, int k) {
int n=matrix.size();
auto getCount=[&] (int mid)->int
{
int count=0;
int x=0;
int y=n–1;
while(y>–1&&x<n)
{
if (matrix[x][y]<=mid)
{
count+=y+1;
x++;
}
else
{
y—;
}
}
return count;
};
int l=matrix[0][0];
int r=matrix[n–1][n–1];
while(l<=r)
{
int mid=(l+r)/2;
int count=getCount(mid);
if (count<k)
{
l=mid+1;
}
else
{
r=mid–1;
}
}
return l;
}
};
评论前必须登录!
注册