2006. Count Number of Pairs With Absolute Difference K
Description
Given an integer array nums and an integer k, return the number of pairs (i, j) where i < j such that |nums[i] - nums[j]| == k.
The value of |x| is defined as:
xifx >= 0.-xifx < 0.
Constraints
1 <= nums.length <= 2001 <= nums[i] <= 1001 <= k <= 99
Approach
Links
Binarysearch
GeeksforGeeks
Leetcode
ProgramCreek
YouTube
Examples
Input: nums = [1, 2, 2, 1], k = 1
Output: 4
Explanation: The pairs with an absolute difference of 1 are:
[1, 2, 2, 1]
[1, 2, 2, 1]
[1, 2, 2, 1]
[1, 2, 2, 1]
Input: nums = [1, 3], k = 3
Output: 0
Explanation: There are no pairs with an absolute difference of 3.
Input: nums = [3, 2, 1, 5, 4], k = 2
Output: 3
Explanation: The pairs with an absolute difference of 2 are:
[3, 2, 1, 5, 4]
[3, 2, 1, 5, 4]
[3, 2, 1, 5, 4]
Solutions
/**
* Time complexity :
* Space complexity :
*/
class Solution {
public int countKDifference(int[] nums, int k) {
int n = nums.length, count = 0;
for(int i = 0; i < n; i++) {
for(int j = i+1; j < n; j++) {
if(Math.abs(nums[i]-nums[j]) == k) {
count++;
}
}
}
return count;
}
}/**
* Time complexity :
* Space complexity :
*/
class Solution {
public int countKDifference(int[] nums, int k) {
if(nums == null || nums.length < 1) {
return 0;
}
int[] counter = new int[101];
for(int num: nums) {
counter[num]++;
}
int count = 0;
for(int i = k+1; i < counter.length; i++) {
count += (counter[i-k] * counter[i]);
}
return count;
}
}Follow up
Last updated
Was this helpful?