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;
}

浙公网安备 33010602011771号