Codility Tape Equilibrium in Python
算法复杂度分析
情况 | 时间复杂度 | 空间复杂度 |
---|---|---|
最优 | O(N) | O(1) |
平均 | O(N) | O(1) |
最差 | O(N) | O(1) |
算法分析
构造数组前段总和first = A[0]
以及数组后端总和last = sum(A) - A[0]
,第一个差值便是abs(first - last)
。遍历数组时,不必每次都重新构造数组前段总和以及数组后端总和,只需向first增加当前遍历元素,想las减去当前遍历元素,另外,也只要一个变量min_diff来记录最小差值即可。
源代码
1 | def solution(A): |