链接:
描述,示例和提示:
代码:
class Solution {
public:
int findPairs(vector<int>& nums, int k) {
sort(nums.begin(),nums.end());
int res = 0;
int len = nums.size();
int j = 0;
for(int i = 0;i<len;i++)
{
if(i==0 || nums[i]!=nums[i-1])
{
while(j<len && (nums[j]<nums[i]+k || j<=i))
j++;
if(j<len && nums[i]+k==nums[j])
res++;
}
}
return res;
}
};
题目解析:
先排序,然后定义两个指针遍历数组,
一个在前一个在后
前面的while(j<len && (nums[j]<nums[i]+k || j<=i))方式来前进,
寻找符合的if(j<len && nums[i]+k==nums[j])