用 Python 实现公平的糖果交换
pythonserver side programmingprogramming更新于 2025/11/2 5:32:17
假设 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 转换为集合
- for i in A
- 如果 i – diff in 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]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

