没事刷刷题之-数组列表中的最大距离
January 01, 2017
题目
给定 m 个数组,每个数组都已经按照升序排好序了。现在你需要从两个不同的数组中选择两个整数(每个数组选一个)并且计算它们的距离。两个整数 a 和 b 之间的距离定义为它们差的绝对值 |a-b| 。你的任务就是去找到最大距离
输入:
[[1,2,3],
[4,5],
[1,2,3]]
输出: 4
解释:
一种得到答案 4 的方法是从第一个数组或者第三个数组中选择 1,同时从第二个数组中选择 5 。
代码
function maxDistance(list) {
let res = 0,
min_val = list[0][0],
max_val = list[0][list[0].length - 1]
for (let i = 1; i < list.length; i++) {
res = Math.max(
res,
Math.max(
Math.abs(list[i][list[i].length - 1] - min_val),
Math.abs(max_val - list[i][0])
)
)
min_val = Math.min(min_val, list[i][0])
max_val = Math.max(max_val, list[i][list[i].length - 1])
}
return res
}
阅读量
Written by xi ming You should follow him on Github