Python 中查找给定矩阵中第 n 个最小数的程序


假设我们有一个 2D 矩阵,其中每一行和每一列都按非递减顺序排列,我们需要找出第 n 个最小数。

因此,如果输入如下

2430
3431
6632

并且 n = 4,那么输出将是 6。

为了解决这个问题,我们将按照以下步骤进行 -

  • lst := 一个新列表
  • 对于矩阵中的每一行 i,执行
    • 对于 i 中的每一个单元格 j,执行
      • 将 j 插入到 lst 的末尾
  • 对列表 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

更新于:20-11-2020

138 人次浏览

启动你的职业

通过完成课程来获得认证

开始
广告