首页 > 其他分享 >LEETCODE 982. 按位与为零的三元组

LEETCODE 982. 按位与为零的三元组

时间:2023-03-04 10:31:57浏览次数:35  
标签:cnt nums 982 mask 三元组 int 按位 哈希 ans

这题暴力的话会超时,考虑用哈希表来存储前两位与的结果的数量

然后在另一个循环中枚举第三位和哈希表每个下标相与,找到结果为0的,

对应的哈希表值加入ans中

class Solution {
public:
int countTriplets(vector<int>& nums) {
vector <int> cnt(1<<16);
for(int x:nums)//枚举i&j,计数存到cnt里
for(int y:nums){
++cnt[x&y];
}
int ans=0;
for(int x:nums)//枚举k和cnt下标相与,找到为0的计入ans
for(int mask=0;mask<(1<<16);++mask)
if((x&mask)==0)
ans+=cnt[mask];
return ans;
}
};

标签:cnt,nums,982,mask,三元组,int,按位,哈希,ans
From: https://blog.51cto.com/u_15983387/6099733

相关文章