class Solution {
public:
bool check(vector<vector<int>>& matrix, int mid, int k, int n) {
int i = n - 1;
int j = 0;
int num = 0;
while (i >= 0 && j < n) {
if (matrix[i][j] <= mid) {
num += i + 1;
j++;
} else {
i--;
}
}
return num >= k;
}
int kthSmallest(vector<vector<int>>& matrix, int k) {
int n = matrix.size();
int left = matrix[0][0];
int right = matrix[n - 1][n - 1];
while (left < right) {
int mid = left + (right - left)/2;
if (check(matrix, mid, k, n)) {
right = mid;
} else {
left = mid + 1;
}
}
return left;
}
};
[leetcode]kth-smallest-element-in-a-sorted-matrix 有序矩阵中第k小元素
xiaocong19902024-07-11 9:01
相关推荐
XH华1 小时前
初识C语言之二维数组(下)南宫生1 小时前
力扣-图论-17【算法学习day.67】不想当程序猿_1 小时前
【蓝桥杯每日一题】求和——前缀和落魄君子2 小时前
GA-BP分类-遗传算法(Genetic Algorithm)和反向传播算法(Backpropagation)菜鸡中的奋斗鸡→挣扎鸡2 小时前
滑动窗口 + 算法复习Lenyiin2 小时前
第146场双周赛:统计符合条件长度为3的子数组数目、统计异或值为给定值的路径数目、判断网格图能否被切割成块、唯一中间众数子序列 Ⅰ郭wes代码2 小时前
Cmd命令大全(万字详细版)scan7242 小时前
LILAC采样算法菌菌的快乐生活3 小时前
理解支持向量机大山同学3 小时前
第三章线性判别函数(二)