Go語言題解LeetCode888公平糖果交換示例詳解
一 描述
888. 公平的糖果交換 - 力扣(LeetCode) (leetcode-cn.com)
愛麗絲和鮑勃擁有不同總數(shù)量的糖果。給你兩個(gè)數(shù)組 aliceSizes
和 bobSizes
,aliceSizes[i]
是愛麗絲擁有的第 i
盒糖果中的糖果數(shù)量,bobSizes[j]
是鮑勃擁有的第 j
盒糖果中的糖果數(shù)量。
兩人想要互相交換一盒糖果,這樣在交換之后,他們就可以擁有相同總數(shù)量的糖果。一個(gè)人擁有的糖果總數(shù)量是他們每盒糖果數(shù)量的總和。
返回一個(gè)整數(shù)數(shù)組 answer
,其中 answer[0]
是愛麗絲必須交換的糖果盒中的糖果的數(shù)目,answer[1]
是鮑勃必須交換的糖果盒中的糖果的數(shù)目。如果存在多個(gè)答案,你可以返回其中 任何一個(gè) 。題目測試用例保證存在與輸入對應(yīng)的答案。
示例 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
愛麗絲和鮑勃的糖果總數(shù)量不同。
題目數(shù)據(jù)保證對于給定的輸入至少存在一個(gè)有效答案。
二 分析
計(jì)算若A與B相同時(shí),A所需要的糖果大小,遍歷B,尋找該糖果
- 首先計(jì)算A與B的糖果總和
- A與B相等所需要的糖果差值是(sum_B-sum_a)/2
- 構(gòu)建哈希表,哈希表為A的每個(gè)元素,加上2的差值
- 遍歷B,尋找B中是否有某一糖果與哈希表某一數(shù)值相等
- 輸出數(shù)值
三 答案
class Solution { public: vector<int> fairCandySwap(vector<int>& A, vector<int>& B) { int sum_A=0;//1 首先計(jì)算A與B的糖果總和 int sum_B=0; for(auto a:A) { sum_A=sum_A+a; } for(auto b:B) { sum_B=sum_B+b; } unordered_map<int,int> map;//2 A與B相等所需要的糖果差值是(sum_B-sum_a)/2 for(auto a:A)//3 構(gòu)建哈希表,哈希表為A的每個(gè)元素,加上2的差值 { map[a+(sum_B-sum_A)/2]; } for(auto b:B)//4 遍歷B,尋找B中是否有某一糖果與哈希表某一數(shù)值相等 { if(map.find(b)!=map.end()) { return{b+(sum_A-sum_B)/2,b};//5 輸出數(shù)值 } } return {}; } };
以上就是Go語言題解LeetCode888公平糖果交換示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Go題解公平糖果交換的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
golang?cache帶索引超時(shí)緩存庫實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了golang?cache帶索引超時(shí)緩存庫實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Go語言實(shí)戰(zhàn)之實(shí)現(xiàn)均衡器功能
這篇文章主要為大家詳細(xì)介紹了如何利用Golang?實(shí)現(xiàn)一個(gè)簡單的流浪均衡器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-04-04解析go語言調(diào)用約定多返回值實(shí)現(xiàn)原理
這篇文章主要為大家介紹了解析go語言調(diào)用約定多返回值實(shí)現(xiàn)原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Golang使用gin框架實(shí)現(xiàn)一個(gè)完整的聊天室功能
由于我們項(xiàng)目的需要,我就研究了一下關(guān)于websocket的相關(guān)內(nèi)容,去實(shí)現(xiàn)一個(gè)聊天室的功能,經(jīng)過幾天的探索,現(xiàn)在使用Gin框架實(shí)現(xiàn)了一個(gè)完整的聊天室+消息實(shí)時(shí)通知系統(tǒng),感興趣的小伙伴歡迎閱讀本文2023-08-08Golang defer延遲語句的實(shí)現(xiàn)
defer擁有注冊延遲調(diào)用的機(jī)制,本文主要介紹了Golang defer延遲語句的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07