对于由N个整数组成的数组A。我正在寻找最大的K(从0到N − 1
),使得存在一对位置(i, j)
满足K = |i − j| = |A[i] − A[j]|
,其中|x|
表示x的绝对值。换句话说,位置之间的距离等于值之间的差。一个位置和它自己(当i = j
)总是K = 0
的有效配对(看第三个例子)。
需要帮助写一个函数:
class Solution { public int
solution(int[] A); }
,给定一个包含N个整数的数组A,返回可能的最大k。
样本输入:A = [2, 2, 2, 1]
,该函数应该返回1作为A[2] = 2
和A[3] = 1
的最远有效对,作为1 = |2 − 3| = |2 − 1|
。
你可以这样做。
private static void print(int[] arr) {
int length = arr.length;
int k = 0;
for (int i = 0; i < length; i++) {
for (int j = i+1; j < length; j++) {
if ((j - i) == Math.abs(arr[j] - arr[i])) {
if (k < (j - i)) {
k = j - i;
}
}
}
}
}