class Solution {
public:
int countPairs(vector<int>& deliciousness) {
// 每个键值对的键是元素,每个键值对的值目前为止该元素出现的个数。
unordered_map<int, int> m;
int ans = 0;
int MOD = 1e9 + 7;
for (auto d : deliciousness)
{
// 两个餐品美味程度之和的最大值是2**21,因为每个餐品美味程度的最大值是2**20
for (int i = 0; i < 22; i++)
{
int target = pow(2, i);
// 如果当前元素的互补元素出现在了map中
if (m.count(target - d))
{
ans += m[target - d];
ans %= MOD;
}
}
// 如果map中不存在某个键,该键对应的值为0
m[d]++;
}
return ans;
}
};
Recuento de festines de LeetCode
Supongo que te gusta
Origin blog.csdn.net/qq_32862515/article/details/112251873
Recomendado
Clasificación