1. 程式人生 > >python---子矩陣的最大累加和

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