A23983. 给定一个 n x n 的矩阵 matrix ,矩阵的每一行和每一列都按升序排列。下面代码返回矩阵中第 k 小的元素,则两处横线上应分别填写( )。def countLE(matrix, x): n = len(matrix) i, j = n - 1, 0 cnt = 0 while i >= 0 and j < n: if matrix[i][j] <= x: cnt += i + 1 j +…
单选题
困难
知识点
题目描述
给定一个 n x n 的矩阵 matrix ,矩阵的每一行和每一列都按升序排列。下面代码返回矩阵中第 k 小的元素,则两处横线上应分别填写( )。
def countLE(matrix, x):
n = len(matrix)
i, j = n - 1, 0
cnt = 0
while i >= 0 and j < n:
if matrix[i][j] <= x:
cnt += i + 1
j += 1
else:
i -= 1
return cnt
def kthSmallest(matrix, k):
n = len(matrix)
lo = matrix[0][0]
hi = matrix[n-1][n-1]
while lo < hi:
mid = lo + (hi - lo) // 2
if countLE(matrix, mid) >= k:
_______
else:
_______
return lo选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员
上一题
下一题