[codility] Lesson 1 Time Complexity

TapeEquilibrium测试

好吧,我一开始都是拿的41分,由于没有彻底理解题意,边界条件很重要。ui

肯定边界条件之后就一遍过了。另外本身应该好好准备一些边界测试用例。spa

 1 def solution(A):
 2     left, right, total = A[0], 0, sum(A)
 3     res = abs(total - left * 2)
 4     for i in range(1, len(A) - 1):  # N > P > 0
 5         left += A[i]
 6         right = total - left
 7         if abs(left - right) < res:
 8             res = abs(left - right)
 9         if res == 0:
10             break
11     return res

PermMissingElem
code

1 def solution(A):
2     n = len(A)
3     expect = (1 + n + 1) * (n + 1) / 2
4     total = sum(A)
5     return expect - total

FrogJmpblog

这一题我也拿了44分先,由于O(n)的遍历作加法,可是基础知识是数学,能够用除法解决的问题。数学

想起我以前Google电面有过一道题,power的实现,能够循环调用。io

因此数学也很重要。边界继续重要,有没有余数决定结果是否须要加一class

1 def solution(X, Y, D):
2     if X >= Y:
3         return 0
4     if (Y - X) % D == 0:  # equal
5         return (Y - X) / D
6     return (Y - X) / D + 1
相关文章
相关标签/搜索