Python 中的公平糖果交换
假设 A 和 B 是两个朋友。他们有不同大小的糖果棒。这里 A[i] 是 A 拥有的第 i 个糖果棒的大小,而 B[j] 是 B 拥有的第 j 个糖果棒的大小。
因为他们是朋友,他们想交换一个糖果棒,以便交换后,A 和 B 都有相同的糖果总数。(一个人拥有的糖果总数是其拥有的糖果棒大小之和。)我们必须返回一个整数数组假设为 ans,其中 ans[0] 是 A 必须交换的糖果棒的大小,而 ans[1] 是 B 必须交换的糖果棒的大小。如果有多个答案,我们只会返回其中一个。
例如,如果 A = [1, 2] 和 B = [2, 3],那么输出将是 [1, 2]
要解决这个问题,我们将遵循以下步骤 −
- 计算 A 的总和和 B 的总和之间的差,然后将其除以 2,并将整数部分放入 diff 中
- 转换 B 为集合
- 对于 A 中的 i
- 如果 i – diff 在 B 中,则返回 [i, i – diff]
范例
让我们看看以下实现,以便更好地理解 −
class Solution(object): def fairCandySwap(self, A, B): diff = (sum(A) - sum(B))//2 B=set(B) for i in A: if i- diff in B: return [i,i-diff] ob1 = Solution() print(ob1.fairCandySwap([1,2], [2,3]))
输入
[1,2] [2,3]
输出
[1,2]
广告