python---子矩阵的最大累加和

# 一个数组中的最大子数组
def maxSubArray(nums):
    if len(nums) < 2:
        return nums[0]
    tem = nums[0]
    max_num = nums[0]
    for i in range(1, len(nums)):
        if tem < 0:
            tem = nums[i]
        else:
            tem += nums[i]
        if tem > max_num:
            max_num = tem

    return max_num


# 将一个矩阵分成数组的形式
def max_sum(matrix):
    if not matrix:
        return
    low = len(matrix)
    max_num = 0
    for i in range(low):
        res1 = list(matrix[i])
        for j in range(i + 1, low):
            res1 = list(map(lambda x: x[0] + x[1], zip(res1, matrix[j])))
            max_num = max(maxSubArray(res1), max_num)
    return max_num

你可能感兴趣的:(python---子矩阵的最大累加和)