我正在学习编码课(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