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–B中的差异,则返回[i,i–差异]
示例
让我们看下面的实现以更好地理解-
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]