LeetCode 532 数组中的k-diff数对[双指针] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 532 数组中的k-diff数对[双指针] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
用双指针的方法,一个指针i从0开始走,另一个指针j不断找i所在位置的对应k-diff,代码如下:

class Solution 
public:
    int findPairs(vector<int>& nums, int k) 
        int n = nums.size();
        int ans = 0;
        sort(nums.begin(), nums.end());
        for(int i = 0, j = 0; i < n; i ++) 
            if(i == 0 || nums[i] != nums[i - 1]) 
                while(j < n && (nums[j] - nums[i] < k || j <= i)) 
                    j ++;
                
                if(j < n && nums[j] - nums[i] == k) 
                    ans ++;
                
            
        
        return ans;
    
;

以上是关于LeetCode 532 数组中的k-diff数对[双指针] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

Python描述 LeetCode 532. 数组中的 k-diff 数对

LeetCode 532 数组中的k-diff数对[双指针] HERODING的LeetCode之路

532-数组中的K-diff数对

easy532. K-diff Pairs in an Array

k-diff 数对

leetcode 532. K-diff Pairs in an Array