找到最大绝对差的解决方案与我的解决方案有什么关系?

时间:2019-02-12 00:09:52

标签: python python-3.x

我想了解用于找到最大绝对差的优化代码与最大差的计算方式之间的关系。

这是挑战。

  

为您提供了N个整数数组A1,A2,…,AN。最大回报   所有1≤i,j≤N的f(i,j)的值。f(i,j)定义为| A [i]-   A [j] | + | i-j |,其中| x |表示x的绝对值。

这是我的方法:

 # *you click a link here....*
${check_popup}=  Run Keyword and Return Status   Wait Until Page Contains Element    locator    6s
 Run Keyword If      ${check_popup} == 'True'     Click Element  locator

部分正确,因为时间复杂度不符合要求,因此我在Github上找到了该解决方案:

def maxArr(self, A):
    if len(A) == 0:
        return 0
    curr_diff = 0
    max_diff = 0
    for i in range(len(A)):
        j = i
        while j < len(A):
            curr_diff = abs(A[i] - A[j]) + abs(i - j)
            max_diff = max(max_diff, curr_diff)
            j += 1
    return max_diff

通过了,我决定逐步阅读每个代码以进行理解。我不确定是否有正确的逐步输出,但是我反复检查了一下,仍然获得了这些值:

def maxArr(self, A):
    max1 = -1000000000
    min1 = +1000000000
    max2 = -1000000000
    min2 = +1000000000
    for i in range(len(A)):
        max1 = max(max1, A[i] + i)
        min1 = min(min1, A[i] + i)
        max2 = max(max2, A[i] - i)
        min2 = min(min2, A[i] - i)

    return max(max1 - min1, max2 - min2)

我又经历了一次,得到了相同的号码。当我逐步执行代码时,得到5,即返回值和[1,3 -1]的输出。但是我只想了解更好的解决方案是如何工作的。

感谢您的帮助。预先感谢。

0 个答案:

没有答案