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]
廣告