日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode题库第888题 公平的糖果棒交换

發(fā)布時間:2024/2/28 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode题库第888题 公平的糖果棒交换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

LeetCode題庫第888題 公平的糖果棒交換

LeetCode第888道題 公平的糖果棒交換

首先,題目中說他們兩個人的糖果的總數(shù)量是不一樣的,并且要將A中的一個糖果和B的一個糖果交換后使得他們兩個人的糖果的總數(shù)量相等。由此,交換糖果的目的是使得兩個人的糖果的總數(shù)量相等,而要用A的那一個糖果和B中的那一個糖果交換是和他們兩個糖果的總數(shù)量之差是相關(guān)的,例如:如果A的糖果的總數(shù)量比B的糖果的總重量多2,那么,就需要用A中重量為n的糖果來交換B中重量為n-1的糖果,注意:不是交換B中重量為n-2的糖果,因?yàn)?#xff1a;假如用A中的2交換B中的1,A的總重量減少了1,而B的糖果總重量是增加了1。
解題的思路是:

  • 將A和B的糖果的總數(shù)量分別算出來
  • 求出它們的糖果總數(shù)量之差
  • 根據(jù)A的糖果總數(shù)和B的糖果總數(shù)的大小關(guān)系來遍歷A或B,在遍歷的過程中根據(jù)當(dāng)前糖果大小和糖果總數(shù)之差在另一個人的糖果列表中尋找滿足條件的糖果
  • 注意返回的是列表,其中的兩個元素都是糖果的大小且它們是有順序關(guān)系的,第一個元素是愛麗絲必須交換的糖果棒的大小,第二個元素是Bob必須交換的糖果棒的大小。題目說如果有多個答案,你可以返回其中的任何一個,且保證答案存在。
public int[] fairCandySwap(int[] A, int[] B) {int sum_A = 0;int sum_B = 0;HashMap<Integer, Integer> map_A = new HashMap<Integer, Integer>();HashMap<Integer, Integer> map_B = new HashMap<Integer, Integer>();for (int i = 0; i < A.length; i++) {sum_A+=A[i];map_A.put(A[i], i);}for (int i = 0; i < B.length; i++) {sum_B+=B[i];map_B.put(B[i], i);}int space = Math.max(sum_A, sum_B)-Math.min(sum_A, sum_B);if (sum_A>sum_B) {for (int i = 0; i < A.length; i++) {if (map_B.containsKey(A[i]-space/2)) {return new int[] {A[i], A[i]-space/2};}}}else {for (int i = 0; i < B.length; i++) {if (map_A.containsKey(B[i]-space/2)) {return new int[] {B[i]-space/2, B[i]};}}}return new int[] {};}

學(xué)了Python,用Python3也實(shí)現(xiàn)了一下,大家可以參考一下:

class Solution:def fairCandySwap(self, A: List[int], B: List[int]) -> List[int]:space = abs(sum(A)-sum(B))if sum(A)>sum(B):for i in A:if i-space/2 in B:return [i, i-space//2]else:for i in B:if i-space/2 in A:return [i-space//2, i]return []

總結(jié)

以上是生活随笔為你收集整理的LeetCode题库第888题 公平的糖果棒交换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。