888. 公平的糖果交易(Python)

題目

難度:★☆☆☆☆
類型:數(shù)組,數(shù)學(xué)

愛(ài)麗絲和鮑勃有不同大小的糖果棒:A[i] 是愛(ài)麗絲擁有的第 i 塊糖的大小,B[j] 是鮑勃擁有的第 j 塊糖的大小。

因?yàn)樗麄兪桥笥?,所以他們想交換一個(gè)糖果棒,這樣交換后,他們都有相同的糖果總量。(一個(gè)人擁有的糖果總量是他們擁有的糖果棒大小的總和。)

返回一個(gè)整數(shù)數(shù)組 ans,其中 ans[0] 是愛(ài)麗絲必須交換的糖果棒的大小,ans[1] 是 Bob 必須交換的糖果棒的大小。

如果有多個(gè)答案,你可以返回其中任何一個(gè)。保證答案存在。

提示
1 <= A.length <= 10000
1 <= B.length <= 10000
1 <= A[i] <= 100000
1 <= B[i] <= 100000
保證愛(ài)麗絲與鮑勃的糖果總量不同。
答案肯定存在。

示例

示例 1
輸入:A = [1,1], B = [2,2]
輸出:[1,2]

示例 2
輸入:A = [1,2], B = [2,3]
輸出:[1,2]

示例 3
輸入:A = [2], B = [1,3]
輸出:[2,3]

示例 4
輸入:A = [1,2,5], B = [2,4]
輸出:[5,4]

解答

有這樣的規(guī)律:Alice和Bob的糖果總量之差等于他們交換的糖果大小之差的二倍:

證明:交換前后糖果總量不變,設(shè)交換前后Alice與Bob糖果總量是A_total和B_total,兩人拿出來(lái)的糖果大小是A_exchange和B_extrange,交換后兩人糖果總量都變成H_total,有:

A_total + B_exchange = B_total + A_exchange = H_total = (A_total + B_total) / 2

容易得到:(A_exchange - B_exchange) * 2 = A_total - B_total,即

B_exchange = A_exchange - (A_total - B_total) / 2

我們可以根據(jù)兩人糖果總量的差值,遍歷A中的糖果(A_exchange),查找對(duì)應(yīng)的B_exchange是否在B中即可。

class Solution:
    def fairCandySwap(self, A, B):
        """
        :param A: List[int]
        :param B: List[int]
        :return: List[int]
        """
        diff = sum(A) - sum(B)
        set_B = {}
        for a in A:
            need = a - diff // 2
            if need in set_B:
                return [a, need]

如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,872評(píng)論 0 10
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 11,242評(píng)論 0 23
  • 1. 下列敘述錯(cuò)誤的是()。 (2.0 分) A. 質(zhì)量管理包括QA和QC一切活動(dòng)的全部過(guò)程 B. 影像質(zhì)量是指對(duì)...
    我們村我最帥閱讀 4,412評(píng)論 0 8
  • 為什么世界總不聽(tīng)話 人們總是希望這個(gè)世界按照自己的意愿運(yùn)轉(zhuǎn),希望身邊的任何人都聽(tīng)從自己的安排。事實(shí)上你會(huì)發(fā)現(xiàn),讓別...
    靜888閱讀 13,828評(píng)論 1 45
  • 一葉障目, 不見(jiàn)泰山。 映出的是, 你緋紅的笑臉。
    百葉行閱讀 257評(píng)論 1 0

友情鏈接更多精彩內(nèi)容