📌  相关文章
📜  矩阵中4个相邻元素的最大乘积(1)

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

程序介绍

本程序用于求解给定矩阵中4个相邻元素的最大乘积。

程序实现

本程序使用了一个双重循环遍历矩阵中的所有元素,并计算每个元素周围4个相邻元素的乘积,最后返回最大值。

代码如下:

def max_product_in_matrix(matrix):
    """
    求解矩阵中4个相邻元素的最大乘积
    :param matrix: 矩阵,二维列表
    :return: 最大乘积,int类型
    """
    rows = len(matrix)
    cols = len(matrix[0])
    max_product = 0

    for i in range(rows):
        for j in range(cols):
            if i < rows - 3:
                product = matrix[i][j] * matrix[i+1][j] * matrix[i+2][j] * matrix[i+3][j]
                max_product = max(max_product, product)
            if j < cols - 3:
                product = matrix[i][j] * matrix[i][j+1] * matrix[i][j+2] * matrix[i][j+3]
                max_product = max(max_product, product)
            if i < rows - 3 and j < cols - 3:
                product = matrix[i][j] * matrix[i+1][j+1] * matrix[i+2][j+2] * matrix[i+3][j+3]
                max_product = max(max_product, product)
            if i < rows - 3 and j > 2:
                product = matrix[i][j] * matrix[i+1][j-1] * matrix[i+2][j-2] * matrix[i+3][j-3]
                max_product = max(max_product, product)

    return max_product
程序使用

本程序的输入为一个矩阵,输出为其中4个相邻元素的最大乘积。使用示例:

matrix = [
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 10],
    [11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20],
    [21, 22, 23, 24, 25]
]

max_product = max_product_in_matrix(matrix)
print(max_product)  # 输出:7418880
总结

本程序通过遍历矩阵中的每个元素,在周围4个相邻元素中寻找最大乘积,并返回最大值。该方法的时间复杂度为$O(mn)$,适用于小型矩阵。