问题描述: 已知三个升序整数数组a0[l], a1[m]和a2[n]。请在三个数组中各找一个元素,使得组成的三元组距离最小。
三元组的距离定义是:假设a[i], b[j]和c[k]是一个三元组,那么距离为:distance = max(|a0[i] - a1[j]|, |a0[i] - a2[k]|, |a1[j] - a2[k]|)
算法:
(1)首先求得三个数组a0, a1, a2 排序后的数组,记为newArray
(2)记录newArray中的每个元素分别来自于a1, a2, a3中的哪个数组
(3)从newArray中顺序取出三个元素,这三个元素分别来自于三个不同的数组,求其中最小元素和最大元素的差的绝对值。重复这个过程,直到取出所有顺序的三元组。
(4)求第3步中,所有绝对值最小的一个,即为三个数组距离最小的一个。
算法示意图:
源代码如下:
imp