
class Solution {
public:
vector<int> fairCandySwap(vector<int>& A, vector<int>& B)
{
int diff = 0; //A集合元素和与B集合元素和的差值
unordered_set<int> dicB; //B元素的哈希集合
for (auto a : A) diff += a;
for (auto b : B) {
diff -= b;
dicB.insert(b);
}
for (auto a : A) {
if (dicB.count(a - diff / 2))
return {a, a - diff / 2};
}
return {};
}
};
本文介绍了一个解决公平糖果交换问题的算法。该算法通过计算两个集合中糖果价值的差值,并利用哈希集合快速查找配对元素,从而找到能使双方拥有的糖果价值相等的交换方案。适用于需要进行资源平衡分配的问题场景。

被折叠的 条评论
为什么被折叠?



