LeetCode简单题之公平的糖果交换
題目
愛麗絲和鮑勃擁有不同總數量的糖果。給你兩個數組 aliceSizes 和 bobSizes ,aliceSizes[i] 是愛麗絲擁有的第 i 盒糖果中的糖果數量,bobSizes[j] 是鮑勃擁有的第 j 盒糖果中的糖果數量。
兩人想要互相交換一盒糖果,這樣在交換之后,他們就可以擁有相同總數量的糖果。一個人擁有的糖果總數量是他們每盒糖果數量的總和。
返回一個整數數組 answer,其中 answer[0] 是愛麗絲必須交換的糖果盒中的糖果的數目,answer[1] 是鮑勃必須交換的糖果盒中的糖果的數目。如果存在多個答案,你可以返回其中 任何一個 。題目測試用例保證存在與輸入對應的答案。
示例 1:
輸入:aliceSizes = [1,1], bobSizes = [2,2]
輸出:[1,2]
示例 2:
輸入:aliceSizes = [1,2], bobSizes = [2,3]
輸出:[1,2]
示例 3:
輸入:aliceSizes = [2], bobSizes = [1,3]
輸出:[2,3]
示例 4:
輸入:aliceSizes = [1,2,5], bobSizes = [2,4]
輸出:[5,4]
提示:
1 <= aliceSizes.length, bobSizes.length <= 10^4
1 <= aliceSizes[i], bobSizes[j] <= 10^5
愛麗絲和鮑勃的糖果總數量不同。
題目數據保證對于給定的輸入至少存在一個有效答案。
來源:力扣(LeetCode)
解題思路
??這是一道數學題,假設a一共有A個糖,b一共有B個糖,a給出去一塊x的糖b給出去一塊y的糖,那么應該有等式A-x+y=B-y+x,這樣就可以檢查一方的糖果類型嘗試地進行交換看看等式是否成立。
class Solution:def fairCandySwap(self, aliceSizes: List[int], bobSizes: List[int]) -> List[int]:A=sum(aliceSizes)B=sum(bobSizes)a=set(aliceSizes)b=set(bobSizes)for i in a:if i-(A-B)//2 in b:return [i,i-(A-B)//2]
總結
以上是生活随笔為你收集整理的LeetCode简单题之公平的糖果交换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode中等题之在排序数组中查找
- 下一篇: LeetCode简单题之爬楼梯