gpt4 book ai didi

python - 第 2 课 : swap elements from arrays

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:44:52 25 4
gpt4 key购买 nike

我正在学习 Codility 计数课 ( https://codility.com/media/train/2-CountingElements.pdf ),我需要帮助来了解最快的解决方案。

我想知道计数函数是什么意思:

count = counting(A, m)

问题:

给定一个整数 m (1 < m < 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

最佳答案

计数在文中前面定义,实现如下:

def counting(A, m):
n = len(A)
count = [0] * (m + 1)
for k in xrange(n):
count[A[k]] += 1
return count

它只是统计每个元素在数组中出现的次数。

关于python - 第 2 课 : swap elements from arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com