leetcode 888. 公平的糖果棒交换

链接
https://leetcode-cn.com/problems/fair-candy-swap/

思路:假设从A中拿出y给B,从B中拿出x给A,则sumA+x-y=sumB-x+y, 即y=(sumA-sumB)/2+x

public int[] fairCandySwap(int[] A, int[] B) {
        int sumA= Arrays.stream(A).sum();
        int sumB= Arrays.stream(B).sum();
        Set<Integer> st=new HashSet<>();
        for (int i:A){
            st.add(i);
        }
        int[] ans=new int[2];
        for (int i:B){
            int y=i+(sumA-sumB)/2;
            if (st.contains(y)){
                ans[0]=y;
                ans[1]=i;
                return ans;
            }
        }
        return ans;
    }
posted @ 2021-02-02 10:44  withwind777  阅读(60)  评论(0)    收藏  举报