1、
写的很差,调试了好几个错误案例。。。。。
判断条件没考虑全
k==0要和其他区分开来
class Solution {
public:
int findPairs(vector<int>& nums, int k) {
unordered_map<int,int> mp;
int res=0;
if(k<0) return 0;
int temp=0;
for(int a : nums)
{
mp[a]++;
}
for(int a : nums)
{
if(mp[a]>0)
{
if(k==0)
{
if(mp[a]>1)
{
res++;
}
}
mp[a]=0;
if(mp[k+a]>0)
{
res++;
}
if(mp[a-k]>0&&a-k!=k+a)
{
res++;
}
}
}
return res;
}
};
这样写更简单一些
class Solution {
public:
int findPairs(vector<int>& nums, int k) {
unordered_map<int,int> mp;
int res=0;
if(k<0) return 0;
for(int a : nums)
{
mp[a]++;
}
for(auto a : mp)
{
if(k==0)
{
if(a.second>1)
{
res++;
}
}
// else if(mp.find(k+a.first)!=mp.end())
else if(mp.count(k+a.first)>0)
{
res++;
}
}
return res;
}
};