最大绝对差值

时间:2017-06-29 18:59:51

标签: arrays

您将获得一个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;
}

有很多关于堆栈溢出的问题有相同的标题,但没有一个被正确回答。 上面的代码显示超出了时间限制。我也没有得到正确的问题。我提出了这个问题,并提出了一些有用的理解和方程式。它通过了样本测试用例,但在其余情况下超出了时间限制。 任何帮助理解问题以及我在解决方案中出错的地方都将受到赞赏。

0 个答案:

没有答案