查找数组中最远的有效对

  • 本文关键字:有效 数组 查找 arrays
  • 更新时间 :
  • 英文 :


对于由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] = 2A[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;
}
}
}
}
}

最新更新