Python 中查找给定矩阵中第 n 个最小数的程序
假设我们有一个 2D 矩阵,其中每一行和每一列都按非递减顺序排列,我们需要找出第 n 个最小数。
因此,如果输入如下
2 | 4 | 30 |
3 | 4 | 31 |
6 | 6 | 32 |
并且 n = 4,那么输出将是 6。
为了解决这个问题,我们将按照以下步骤进行 -
- lst := 一个新列表
- 对于矩阵中的每一行 i,执行
- 对于 i 中的每一个单元格 j,执行
- 将 j 插入到 lst 的末尾
- 对于 i 中的每一个单元格 j,执行
- 对列表 lst 进行排序
- 返回 lst[n]
让我们看以下实现以获得更好的理解 -
实例
class Solution: def solve(self, matrix, n): lst = [] for i in matrix: for j in i: lst.append(j) lst.sort() return lst[n] ob = Solution() matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32] ] n = 4 print(ob.solve(matrix, n))
输入
matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32] ] n = 4
输出
6
广告