摘要:前言的的題目公平的糖果交換,原題目描述如下愛麗絲和鮑勃有不同大小的糖果棒是愛麗絲擁有的第塊糖的大小,是鮑勃擁有的第塊糖的大小。返回一個整數(shù)數(shù)組,其中是愛麗絲必須交換的糖果棒的大小,是必須交換的糖果棒的大小。
前言
LeetCode的Weekly Contest 98的題目公平的糖果交換,原題目描述如下:
愛麗絲和鮑勃有不同大小的糖果棒:A[i] 是愛麗絲擁有的第 i 塊糖的大小,B[j] 是鮑勃擁有的第 j 塊糖的大小。解題思路因為他們是朋友,所以他們想交換一個糖果棒,這樣交換后,他們都有相同的糖果總量。(一個人擁有的糖果總量是他們擁有的糖果棒大小的總和。)
返回一個整數(shù)數(shù)組 ans,其中 ans[0] 是愛麗絲必須交換的糖果棒的大小,ans[1] 是 Bob 必須交換的糖果棒的大小。
如果有多個答案,你可以返回其中任何一個。保證答案存在。
示例 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]
根據(jù)題目的描述可以知道實際上愛麗絲和鮑勃只是交換了雙方的一個糖果就能夠讓雙方的糖果棒大小一致。所以其實這道題目十分簡單,只要窮舉各自互換糖果后的大小是否一致就可以找出雙方互換的糖果了。
實現(xiàn)代碼/** * 888. 公平的糖果交換 * @param A * @param B * @return */ public int[] fairCandySwap(int[] A, int[] B) { int[] result = new int[2]; //獲取雙方糖果的總大小 int sumA = sum(A); int sumB = sum(B); for (int i = 0; i < A.length; i++) { int a = A[i]; for (int j = 0; j < B.length; j++) { int b = B[j]; //計算交換糖果后糖果的總大小 int tmpA = sumA - a + b; int tmpB = sumB - b + a; if (tmpA == tmpB) {//判斷交換后是否一致 result[0] = a; result[1] = b; break; } } } return result; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76798.html
前端LeetCode刷題 下面是已刷的題目的目錄。GitHub:https://github.com/cunzaizhuy...每日打卡更新中,歡迎關(guān)注。 數(shù)組類 26 刪除排序數(shù)組中的重復(fù)項 27 移除元素 35 搜索插入位置 66 加1 80 medium 刪除排序數(shù)組中的重復(fù)項2 88 合并兩個有序數(shù)組 167 兩數(shù)之和II - 輸入有序數(shù)組 118 楊輝三角 169 easy 求眾數(shù) 1...
摘要:重構(gòu)舊代碼,取而代之方式是將動作委托給狀態(tài)類。注這個模式是將狀態(tài)封裝成為獨立地類,并將動作委托給代表當(dāng)前狀態(tài)的對象。 通過改變對象內(nèi)部狀態(tài)幫助對象控制行為 以一個簡單例子說明,假設(shè)我們要模擬制造一臺糖果機器,對方給你的機器流程圖如下 showImg(https://segmentfault.com/img/bVXuWe?w=512&h=466); ok,我們現(xiàn)在簡單分析這張狀態(tài)圖,可...
摘要:重復(fù)上述過程每次都比上一次多給出一顆糖果,當(dāng)?shù)竭_隊伍終點后再次從隊伍起點開始,直到我們分完所有的糖果。返回一個長度為元素之和為的數(shù)組,以表示糖果的最終分發(fā)情況即表示第個小朋友分到的糖果數(shù)。 前言 Weekly Contest 143的 分糖果 II 排排坐,分糖果。 我們買了一些糖果 candies,打算把它們分給排好隊的 n = num_people 個小朋友。 給第一個小朋友 1...
摘要:今日題目老師想給孩子們分發(fā)糖果,有個孩子站成了一條直線,老師會根據(jù)每個孩子的表現(xiàn),預(yù)先給他們評分。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。示例輸入輸出解釋你可以分別給這三個孩子分發(fā)顆糖果。第三個孩子只得到顆糖果,這已滿足上述兩個條件。 今日題目 老師想給孩子們分發(fā)糖果,有N個孩子站成了一條直線,老師會根據(jù)每個孩子的表現(xiàn),預(yù)先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發(fā)糖...
摘要:對象改變條件對象當(dāng)前線程要等待線程終止之后才能從返回。如果線程在上的操作中被中斷,通道會被關(guān)閉,線程的中斷狀態(tài)會被設(shè)置,并得到一個。清除線程的中斷狀態(tài)。非公平性鎖雖然可能造成饑餓,但極少的線程切換,保證其更大的吞吐量。 聲明:Java并發(fā)的內(nèi)容是自己閱讀《Java并發(fā)編程實戰(zhàn)》和《Java并發(fā)編程的藝術(shù)》整理來的。 showImg(https://segmentfault.com/im...
閱讀 3000·2021-10-12 10:17
閱讀 1604·2021-09-01 11:38
閱讀 1096·2019-08-30 15:44
閱讀 3491·2019-08-26 18:36
閱讀 526·2019-08-26 13:25
閱讀 1895·2019-08-26 10:29
閱讀 2848·2019-08-23 15:58
閱讀 768·2019-08-23 12:59