题目
代码
执行用时:76 ms, 在所有 Python3 提交中击败了57.34% 的用户
内存消耗:17.1 MB, 在所有 Python3 提交中击败了12.54% 的用户
通过测试用例:75 / 75
class Solution:
def fairCandySwap(self, aliceSizes: List[int], bobSizes: List[int]) -> List[int]:
A=Counter(aliceSizes)
B=Counter(bobSizes)
sum_a=sum(aliceSizes)
sum_b=sum(bobSizes)
diff=abs(sum_a-sum_b)//2
flag=1
if sum_a>sum_b:
flag=0
A,B=B,A
for key in A:
if key+diff in B:
if flag:return [key,key+diff]
else:return [key+diff,key]
return []
【方法2】
执行用时:2360 ms, 在所有 Python3 提交中击败了25.87% 的用户
内存消耗:16.6 MB, 在所有 Python3 提交中击败了51.16% 的用户
通过测试用例:75 / 75
class Solution:
def fairCandySwap(self, aliceSizes: List[int], bobSizes: List[int]) -> List[int]:
sum_a=sum(aliceSizes)
sum_b=sum(bobSizes)
diff=abs(sum_a-sum_b)//2
flag=1
if sum_a>sum_b:
flag=0
aliceSizes,bobSizes=bobSizes,aliceSizes
for key in aliceSizes:
if key+diff in bobSizes:
if flag:return [key,key+diff]
else:return [key+diff,key]
return []
【方法3】简化版
执行用时:2276 ms, 在所有 Python3 提交中击败了27.22% 的用户
内存消耗:16.3 MB, 在所有 Python3 提交中击败了85.71% 的用户
通过测试用例:75 / 75
class Solution:
def fairCandySwap(self, aliceSizes: List[int], bobSizes: List[int]) -> List[int]:
diff=(sum(aliceSizes)-sum(bobSizes))//2
for key in aliceSizes:
if key-diff in bobSizes:
return [key,key-diff]
return []