📌  相关文章
📜  查找所有矩阵元素,这些元素在其行中的最小值和在其列中的最大值(1)

📅  最后修改于: 2023-12-03 15:10:44.790000             🧑  作者: Mango

查找所有矩阵元素,在其行中的最小值和在其列中的最大值

程序介绍

该程序用于查找矩阵中每个元素在其所在行中的最小值和在其所在列中的最大值。

程序输入为一个矩阵,输出为一个二维数组,每个元素包含两个值,第一个值为该元素所在行的最小值,第二个值为该元素所在列的最大值。

该程序的时间复杂度为O(N^2),其中N为矩阵的大小。

代码示例
def find_min_max(matrix):
    """
    查找矩阵中每个元素在其所在行中的最小值和在其所在列中的最大值
    :param matrix: 矩阵
    :return: 二维数组,每个元素包含两个值,第一个值为该元素所在行的最小值,第二个值为该元素所在列的最大值
    """
    # 初始化结果数组
    result = []
    # 遍历矩阵中的每个元素
    for i in range(len(matrix)):
        for j in range(len(matrix[0])):
            # 找到该元素所在行的最小值
            row_min = min(matrix[i])
            # 找到该元素所在列的最大值
            column_max = max(matrix[x][j] for x in range(len(matrix)))
            # 将该元素的最小值和最大值添加到结果数组中
            result.append([row_min, column_max])
    return result
测试示例
# 测试输入
matrix = [
    [1, 9, 3],
    [4, 5, 6],
    [7, 2, 8]
]

# 预期输出
# [
#     [1, 7], [1, 9], [1, 8],
#     [4, 9], [4, 5], [4, 6],
#     [2, 8], [2, 9], [2, 8]
# ]
print(find_min_max(matrix))
注意事项
  • 该程序处理的是二维矩阵,输入的矩阵必须是一个二维数组。
  • 矩阵的大小不能太大,否则程序的运行时间会很长。