Skip to main content
Latest
File
export default function kthSmallest(matrix: number[][], k: number): number { const n = matrix.length; let left = matrix[0][0]; let right = matrix[n - 1][n - 1]; while (left < right) { const mid = left + ((right - left) >> 1); if (check(matrix, mid, k, n)) { right = mid; } else { left = mid + 1; } } return left;}
function check(matrix: number[][], mid: number, k: number, n: number) { let i = n - 1; let j = 0; let num = 0; while (i >= 0 && j < n) { if (matrix[i][j] <= mid) { num += i + 1; j++; } else { i--; } } return num >= k;}