📅  最后修改于: 2023-12-03 15:08:00.344000             🧑  作者: Mango
给定一个由整数组成的二维数组 matrix,每行为奇数位或者偶数位,其中偶数行先升序排列,奇数行先降序排列。请你找出其中的最大元素对,并返回该最大元素对的值之和。
输入:matrix = [[1,5],[7,3],[3,5]]
输出:8
解释:最大元素对是 (7,1),其中 7 是第二行奇数行中最大的整数,1 是第一行偶数行中最大的整数,两者之和为 8。
由于偶数行是升序排列的,因此每行偶数行的最大值肯定是最后一个元素。而奇数行是降序排列的,因此每行奇数行的最大值肯定是第一个元素。
我们可以通过遍历每一行,找到该行最大元素对,并记录最大值。时间复杂度为 $O(mn)$,其中 $m$ 和 $n$ 分别为 matrix 的行数和列数。
class Solution:
def maxSumPair(self, matrix: List[List[int]]) -> int:
n, m = len(matrix), len(matrix[0])
res = 0
for i in range(n):
if i % 2 == 0:
res += matrix[i][-1]
else:
res += matrix[i][0]
return res
时间复杂度:$O(mn)$,其中 $m$ 和 $n$ 分别为 matrix 的行数和列数。
空间复杂度:$O(1)$,我们只需要常数级别的额外空间。