您将获得一个N个整数的数组,A1,A2,...,AN。对于所有1≤i,j≤N,返回f(i,j)的最大值。 f(i,j)定义为| A [i] -A [j] | + | i - j |,其中| x |表示x的绝对值。
例如,
A=[1, 3, -1] f(1, 1) = f(2, 2) = f(3, 3) = 0 f(1, 2) = f(2, 1) = |1 - 3| + |1 - 2| = 3 f(1, 3) = f(3, 1) = |1 - (-1)| + |1 - 3| = 4 f(2, 3) = f(3, 2) = |3 - (-1)| + |2 - 3| = 5 So, we return 5.
https://www.interviewbit.com/problems/maximum-absolute-difference/
int Solution::maxArr(vector<int> &A) {
int size = A.size();
int max_diff = 0;
for(int i = 0 ; i < size ; i++)
{
for(int j = i ; j < size ; j++)
{
int diff = abs(A[i]-A[j])+abs(i-j);
max_diff = max(max_diff,diff);
}
}
return max_diff;
}
有很多关于堆栈溢出的问题有相同的标题,但没有一个被正确回答。 上面的代码显示超出了时间限制。我也没有得到正确的问题。我提出了这个问题,并提出了一些有用的理解和方程式。它通过了样本测试用例,但在其余情况下超出了时间限制。 任何帮助理解问题以及我在解决方案中出错的地方都将受到赞赏。