LeetCode 2006. 差的绝对值为 K 的数对数目
题目描述
给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k 。
|x| 的值定义为:
如果 x >= 0 ,那么值为 x 。
如果 x < 0 ,那么值为 -x 。
输入:nums = [1,2,2,1], k = 1
输出:4
解释:差的绝对值为 1 的数对为:
- [1,2,2,1]
- [1,2,2,1]
- [1,2,2,1]
- [1,2,2,1]
tips:
1 <= nums.length <= 200
1 <= nums[i] <= 100
1 <= k <= 99
一、解题关键词
1、数组
二、解题报告
1.思路分析
2.时间复杂度
3.代码示例
class Solution {
public int countKDifference(int[] nums, int k) {
int res = 0, n = nums.length;
Map<Integer,Integer> cnt = new HashMap<>();
for(int j = 0; j < n; ++j){
res += cnt.getOrDefault(nums[j] - k,0) + cnt.getOrDefault(nums[j] + k,0);
cnt.put(nums[j],cnt.getOrDefault(nums[j],0) + 1);
}
return res;
}
}
2.知识点