Time complexity Tapeo(N*N)

Time complexity Tapeo(N*N),time-complexity,Time Complexity,谁能给我解释一下为什么我在这个代码上会变得O(N*N)复杂?我看不见。 下面是我针对这个编码问题的python代码: 给出了一个由N个整数组成的非空数组A。数组A 表示磁带上的数字。 任何整数P,使得0

谁能给我解释一下为什么我在这个代码上会变得O(N*N)复杂?我看不见。 下面是我针对这个编码问题的python代码:

给出了一个由N个整数组成的非空数组A。数组A 表示磁带上的数字。 任何整数P,使得0 两部分之间的差值为:|(A[0]+A[1]+ …+A[P]− 1]) − (A[P]+A[P+1]+…+A[N− 1])| 换句话说,它是第一部分和第二部分之和之间的绝对差值。例如,考虑 排列一个数组,以便: A[0]=3 A[1]=1 A[2]=2 A[3]=4 A[4]=3我们可以将此磁带分为四个位置:

 P = 1, difference = |3 − 10| = 7
 P = 2, difference = |4 − 9| = 5
 P = 3, difference = |6 − 7| = 1
 P = 4, difference = |10 − 3| = 7
  Write a function:

def solution(A)

  that, given a non-empty array A of N integers, returns the minimal difference that can be achieved.
我的Python代码

def solution(A):
    sum_array = []
    for i in range(1, len(A)):
        sum_array.append(abs(sum(A) - 2*sum(A[i:N])))
    return min(sum_array)

计算一个数组的和的时间复杂度为O(N)。这是因为您需要访问每个数组元素。 因为有一个N的循环,每次迭代执行sum(a),所以程序的时间复杂度是O(N*N)