顺序表8:2006. 差的绝对值为 K 的数对数目

题目链接
https://leetcode.cn/problems/count-number-of-pairs-with-absolute-difference-k/description/
给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k 。

|x| 的值定义为:

如果 x >= 0 ,那么值为 x 。
如果 x < 0 ,那么值为 -x 。

示例 1:

输入: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]
    示例 2:

输入:nums = [1,3], k = 3
输出:0
解释:没有任何数对差的绝对值为 3 。
示例 3:

输入:nums = [3,2,1,5,4], k = 2
输出:3
解释:差的绝对值为 2 的数对为:

  • [3,2,1,5,4]
  • [3,2,1,5,4]
  • [3,2,1,5,4]

提示:

1 <= nums.length <= 200
1 <= nums[i] <= 100
1 <= k <= 99
一:

点击查看代码
class Solution {
public:
    int countKDifference(vector<int>& nums, int k) {
        int ret=0;
        for(int i=0;i<nums.size();++i){
            for(int j=0;j<nums.size();++j){
                if(i<j&&abs(nums[i]-nums[j])==k){
                    ret++;
                }
            }
        }
        return ret;
    }
};

二:更优

点击查看代码
class Solution {
public:
    int countKDifference(vector<int>& nums, int k) {
        int ret=0;
        for(int i=0;i<nums.size();++i){
            for(int j=i+1;j<nums.size();++j){
                if(abs(nums[i]-nums[j])==k){
                    ret++;
                }
            }
        }
        return ret;
    }
};
posted @ 2025-03-06 15:23  一点都不无聊  阅读(320)  评论(0)    收藏  举报