我正在學習編碼課(https://codility.com/media/train/2-CountingElements.pdf),我需要幫助來理解最快的解決方案。編碼計數課程2:交換陣列元素
我想知道是什麼計數功能是指:
count = counting(A, m)
問題:
您將得到一個整數M(1<米< 1000000)和兩個非空,零索引陣列A和B分別爲n個整數,a0,a1,...,an-1和b0,b1,...,bn-1(0 < ai,bi < m)。我們的目標是檢查是否存在可以在這些數組上執行的交換操作,使得數組A中元素的總和等於交換後數組B中元素的總和。通過交換操作,我們指的是從數組A中選取一個元素並從數組B中選取一個元素並交換它們。 解決辦法:
def fast_solution(A, B, m):
n = len(A)
sum_a = sum(A)
sum_b = sum(B)
d = sum_b - sum_a
if d % 2 == 1:
return False
d //= 2
count = counting(A, m)
for i in xrange(n):
if 0 <= B[i] - d and B[i] - d <= m and count[B[i] - d] > 0:
return True
return False
'counting'不是Python中的內置函數,它必須來自它們。你能提供它的來源嗎? – L3viathan