2
public int maxAbsValExpr(int[] arr1, int[] arr2) {4
// 1. remove the modulas -5
// i & j are interchangable because they are inside the modulas6
// A[i] - A[j] + B[i] -B[j] + i-j7
// A[i] + B[i] + i - B[j] - A[j] - j8
// (A[i] + B[i] + i) ->X9
// (B[j] - A[j] - j) -> y11
// to get max value X should be max & Y should min13
// Possible cases (Since both arrays have same number of indexes, we can use single for loop & i15
// A[i] + B[i] + i ->116
// A[i] - B[i] + i ->217
// A[i] + B[i] - i ->318
// A[i] - B[i] - i ->420
// Find out max of all response22
int arrayLength = arr1.length;23
int v1[] = new int[arrayLength];24
int v2[] = new int[arrayLength];25
int v3[] = new int[arrayLength];26
int v4[] = new int[arrayLength];28
for (int i = 0; i < arrayLength; i++) {29
v1[i] = i + arr1[i] + arr2[i];30
v2[i] = i + arr1[i] - arr2[i];31
v3[i] = i - arr1[i] + arr2[i];32
v4[i] = i - arr1[i] - arr2[i];34
res = Math.max(res, Arrays.stream(v1).max().getAsInt() - Arrays.stream(v1).min().getAsInt());35
res = Math.max(res, Arrays.stream(v2).max().getAsInt() - Arrays.stream(v2).min().getAsInt());36
res = Math.max(res, Arrays.stream(v3).max().getAsInt() - Arrays.stream(v3).min().getAsInt());37
res = Math.max(res, Arrays.stream(v4).max().getAsInt() - Arrays.stream(v4).min().getAsInt());