原题地址(简单)

方法1—哈希表加速查找

思路

这道题蛮简单的,直接用官方题解思路就好了。
image.png
核心就是这个公式,然后遍历A中每一个数x,查看B中是否有相对应的y
可用哈希表加速查看。

代码

  1. class Solution:
  2. def fairCandySwap(self, A: List[int], B: List[int]) -> List[int]:
  3. diff = (sum(A) - sum(B)) // 2
  4. B = set(B)
  5. for num in A:
  6. if num - diff in B:
  7. return [num, num - diff]
  8. return []

时空复杂度

时间O(m+n) 空间O(n),n是B的大小