leetcode 888. 公平的糖果棒交换(set)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 888. 公平的糖果棒交换(set)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
愛麗絲和鮑勃有不同大小的糖果棒:A[i] 是愛麗絲擁有的第 i 根糖果棒的大小,B[j] 是鮑勃擁有的第 j 根糖果棒的大小。
因為他們是朋友,所以他們想交換一根糖果棒,這樣交換后,他們都有相同的糖果總量。(一個人擁有的糖果總量是他們擁有的糖果棒大小的總和。)
返回一個整數數組 ans,其中 ans[0] 是愛麗絲必須交換的糖果棒的大小,ans[1] 是 Bob 必須交換的糖果棒的大小。
如果有多個答案,你可以返回其中任何一個。保證答案存在。
示例 1:
輸入:A = [1,1], B = [2,2]
輸出:[1,2]
代碼
class Solution {public int[] fairCandySwap(int[] A, int[] B) {Set<Integer> set=new HashSet<>();//記錄B數組元素int a=0,b=0;for(int i=0;i<A.length;i++)a+=A[i];for(int i=0;i<B.length;i++){b+=B[i];set.add(B[i]);}int tar=-(a-b)/2;//需要交換的數字之間的差值for(int i=0;i<A.length;i++)if(set.contains(A[i]+tar))//如果存在滿足差值的數字,則交換return new int[]{A[i],A[i]+tar};return new int[0];} }總結
以上是生活随笔為你收集整理的leetcode 888. 公平的糖果棒交换(set)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 老是梦到一个人是什么意思
- 下一篇: leetcode 424. 替换后的最长