You are given 3 arrays A, B and C. All 3 of the arrays are sorted.
Find i, j, k such that :
max(abs(A[i] - B[j]), abs(B[j] - C[k]), abs(C[k] - A[i])) is minimized.
Return the minimum max(abs(A[i] - B[j]), abs(B[j] - C[k]), abs(C[k] - A[i]))
**abs(x) is absolute value of x and is implemented in the following manner : **
if (x < 0) return -x;
else return x;
Example :
Input :
A : [1, 4, 10]
B : [2, 15, 20]
C : [10, 12]
Output : 5
With 10 from A, 15 from B and 10 from C.
publicclassSolution {publicintminimize(finalint[] A,finalint[] B,finalint[] C) {int i, j, k; i =A.length-1; j =B.length-1; k =C.length-1;int min_diff, current_diff, max_term; min_diff =Math.max(Math.abs(A[i] -B[j]),Math.max(Math.abs(B[j] -C[k]),Math.abs(C[k] -A[i])));while (i >=0&& j >=0&& k >=0) { current_diff =Math.max(Math.abs(A[i] -B[j]),Math.max(Math.abs(B[j] -C[k]),Math.abs(C[k] -A[i]))); min_diff =Math.min(min_diff, current_diff); max_term =Math.max(A[i],Math.max(B[j],C[k]));if (A[i] == max_term) i--;elseif (B[j] == max_term) j--;else k--; }return min_diff; }}