1796. K-Difference
In this challenge, you will be given an array of integers, each unique within the array, and an integer representing a target difference. Determine the number of pairs of elements in the array that have a difference equal to the target difference.
For example, consider the array [1, 3, 5] and a target difference 2. There are two pairs:[1, 3] and [3, 5],that have the target difference.you must return an integer count of the number of pairs within a having a difference of k.
Example
Example 1:
Input: nums = [1, 3, 5, 7], target = 2
Output: 3
Explanation:
3 - 1 = 2
5 - 3 = 2
7 - 5 = 2
Example 2:
Input: nums = [7, 2, 6], target = 2
Output: 0
Explanation:
no pair have a difference of k
Notice
5 <= n <= 10^5.
Each element of a,a[i] <= 2 * 10^9.
Each a[i] is unique within a.
1 <= k <= 10^9.
解法1:双指针
class Solution { public: /** * @param nums: a integer array * @param target: * @return: return a integer */ int KDifference(vector<int> &nums, int target) { int count = 0; int len = nums.size(); int start = 0, end = 1; sort(nums.begin(), nums.end()); while(end < len) { int diff = nums[end] - nums[start]; if (diff == target) { count++; end++; } else if (diff < target) { end++; } else { start++; } } return count; } };