思路:分两种情况:k=0和k!=0
class Solution {
public:
int findPairs(vector<int>& nums, int k) {
if(nums.size()<=1)
return 0;
sort(nums.begin(),nums.end());
vector<int> t;
int flag=0;
int count=0;
int count0=0;
t.push_back(nums[0]);
//k=0的情况
if(k==0)
{
for(int i=0;i<nums.size();i++)
{
//当两个元素相等时,计数+1,并设置此数的flag为1——即该元素相等的情况已经统计完了
if(nums[i]==nums[i+1] && flag==0)
{
count0++;
flag=1;
}
//当两个元素的值不相等的时候,flag=0——让程序进入上面的统计中
if(nums[i]!=nums[i+1])
{
flag=0;
}
}
return count0;
}
//k!=0的情况
if(k!=0)
{
//把相同元素删除
for(int i=1;i<nums.size();i++)
{
if(nums[i-1]!=nums[i])
t.push_back(nums[i]);
}
//两次遍历,统计
for(int i=0;i<t.size();i++)
{
for(int j=i+1;j<t.size();j++)
{
if(t[j]-t[i]==k)
count++;
}
}
return count;
}
}
};