跳到主要内容

888.公平的糖果交换

链接:888.公平的糖果交换
难度:Easy
标签:数组、哈希表、二分查找、排序
简介:爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。

题解 1 - typescript

  • 编辑时间:2021-02-01
  • 执行用时:132ms
  • 内存消耗:49.2MB
  • 编程语言:typescript
  • 解法介绍:利用 set 进行比较存在值。
function fairCandySwap(A: number[], B: number[]): number[] {
const num =
(A.reduce((total, cur) => total + cur, 0) - B.reduce((total, cur) => total + cur, 0)) / 2;
const set = new Set(A);
for (const y of B) {
const x = y + num;
if (set.has(x)) return [x, y];
}
return [];
}