LeetCode刷题2006-简单-差的绝对值为 K 的数对数目

Posted 布小禅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode刷题2006-简单-差的绝对值为 K 的数对数目相关的知识,希望对你有一定的参考价值。

☀️ 前言 ☀️

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

🙀 作者简介 🙀

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

📢 博客主页:❤布小禅❤
📢 作者专栏:
❤Python❤
❤Java❤

❤力扣题❤

这是我刷第 70/100 道力扣简单题

💗 一、题目描述 💗

给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k 。
|x| 的值定义为:
如果 x >= 0 ,那么值为 x 。
如果 x < 0 ,那么值为 -x 。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/count-number-of-pairs-with-absolute-difference-k
著作权归领扣网络所有。
商业转载请联系官方授权,非商业转载请注明出处。

示例1:

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

示例2:

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

提示:
1 <= nums.length <= 200
1 <= nums[i] <= 1001 <= k <= 9

💁 二、题目解析 💁

思 路 1 : \\color{green}{思路1:} 1

 -  双指针
 - 一快一慢
 -  找条件
 - math.h fabs

🏃 三、代码 🏃

☁️ C语言☁️

/*
  双指针
  一快一慢
  找条件
  math.h fabs
*/
int countKDifference(int* nums, int numsSize, int k){
    int ans=0;              // (1) 返回值
    int slow=0;             // (2) 慢指针
    int fast;               // (3) 快指针
    while (slow<numsSize)   // (4) 遍历数组
    {
        fast = slow;        // (5) 令fast的值一直小于等于slow
        while (fast<numsSize)  // (6) 二重循环
        {
            if ((int)fabs(nums[fast]-nums[slow])==k) ans++;  // (7) 计算数目
            fast++;         
        }
        slow++;
    }
    return ans;             // (8) 返回计算结果
}

🌔 结语 🌔

坚持最重要,每日一题必不可少!😸

期待你的关注和督促!😛

以上是关于LeetCode刷题2006-简单-差的绝对值为 K 的数对数目的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode——日常刷题

算法练习85.差的绝对值为 K 的数对数目——计数

LeetCode 1001. 网格照明 / 2006. 差的绝对值为 K 的数对数目 / 1447. 最简分数

LeetCode Java刷题笔记—110. 平衡二叉树

Leetcode刷题100天—219. 存在重复元素 II(哈希表)—day11

「 每日一练,快乐水题 」2006. 差的绝对值为 K 的数对数目