[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
相關文章
相關標籤/搜索