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]