1. 数组列表中的最大距离
    中等
    相关标签
    相关企业
    给定 m 个数组,每个数组都已经按照升序排好序了。

现在你需要从两个不同的数组中选择两个整数(每个数组选一个)并且计算它们的距离。两个整数 a 和 b 之间的距离定义为它们差的绝对值 |a-b| 。

返回最大距离。

示例 1:

输入:[[1,2,3],[4,5],[1,2,3]]
输出:4
解释:
一种得到答案 4 的方法是从第一个数组或者第三个数组中选择 1,同时从第二个数组中选择 5 。
示例 2:

输入:arrays = [[1],[1]]
输出:0

提示:

m == arrays.length
2 <= m <= 105
1 <= arrays[i].length <= 500
-104 <= arrays[i][j] <= 104
arrays[i] 以 升序 排序。
所有数组中最多有 105 个整数。

思路0:遍历每个数组,获取最大和最小值。遍历完后相减。 错原因:题目中要求不同数组。
思路1: 遍历每个数组 获取当前数组与之前数组的相差最大值,并记录,更新当前最大和最小的元素

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def maxDistance(self, arrays: List[List[int]]) -> int:
min,max =arry[0][0],arry[0][-1]
result = 0
for i in range(len(arrays)):

cur_min = arrays[i][0]
cur_max = arrays[i][-1]
result = max(abs(cur_min-min),abs(max-cur_max),result)
min = min(cur_min,min)
max = max(cur_max,max)
return result