int cmp(const void* a,const void* b){
return *(int*)a - *(int*)b;
}
int findPairs(int* nums, int numsSize, int k){
if(numsSize<2)return 0;
qsort(nums,numsSize,sizeof(int),cmp);
int i=0,j=i,n=0,res=0,count=0,pst=0;
for(; i<numsSize-1; j=i,pst=0)
{
while(++j<numsSize && nums[i]+k > nums[j])
{
if (!pst && nums[j] != nums[i]) pst=j; //循环同时找下和i不同的第一个数的位置
}
if(j<numsSize && nums[j]==nums[i]+k) count++;
if (pst) i=pst; // 如果pst有值 证明之前循环顺便找到 如果没值那下面循环继续找
else
{
j=i;
while(i<numsSize && nums[j]==nums[i])i++;
}
}
return count;
}