题目

给你一个整数数组 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
    来源:力扣(LeetCode)

解题思路

  根据题目的意思,我们需要寻找两数之差绝对值等于k的值,故两个数是对称对等的关系。按照示例1的做法,每次访问当前元素并试图查找符合条件的另一个元素时,都是往后寻找的例如第一对,1和2,找完1,当遍历到2的时候便不再计算2和1是一对了,所有1和2,或者2和1是对称等价的,只需要计算一对即可。那么,为了能够加速计算,我们利用哈希表计算2和1这一对。这是一个非常巧妙地思想,在前面的两数之和也出现过。

class Solution:def countKDifference(self, nums: List[int], k: int) -> int:d={}ans=0for i in nums:ans+=d.get(i+k,0)+d.get(i-k,0)d[i]=d.get(i,0)+1return ans

LeetCode简单题之差的绝对值为 K 的数对数目相关推荐

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

    ✅力扣原题: 力扣链接:2006. 差的绝对值为 K 的数对数目 ✅题目简述: 给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums ...

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

    ⭐加入组队刷题,抱团生长,每天进步⭐ 可暴力,也可计数. --leetcode此题热评 前言 哈喽,大家好,我是一条. 糊涂算法,难得糊涂 点击<糊涂算法>系统学习 Question 20 ...

  3. JavaScript——leetcode2006 差的绝对值为k的数对数目

    JavaScript--leetcode2006差的绝对值为k的数对数目 题目描述 给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nu ...

  4. 哈希表 -leetcode-2006. 差的绝对值为 K 的数对数目

    2006. 差的绝对值为 K 的数对数目 提示: 1<=nums.length<=2001 <= nums.length <= 2001<=nums.length< ...

  5. 2006. 差的绝对值为 K 的数对数目

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

  6. 合并数字 — m个数字消除相邻的差的绝对值为1的两个数中较大的那一个,直到没有两个相邻的差的绝对值为 1 的数(动态数组定义)

    题目:合并数字 消除相邻的差的绝对值为1的两个数中较大的那一个.这一天,她得到了 m 个数字,她只能选出最左边的相邻的差的绝对值为 1 的两个数,保留较小的数,泯灭较大的数,直到没有两个相邻的差的绝对 ...

  7. LeetCode简单题之二叉搜索树的最小绝对差/最小距离

    题目 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 差值是一个正数,其数值等于两值之差的绝对值. 示例 1: 输入:root = [4,2,6,1,3] 输出: ...

  8. LeetCode简单题之两个数对之间的最大乘积差

    题目 两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) . 例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) ...

  9. LeetCode简单题之整数的各位积和之差

    题目 给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差. 示例 1: 输入:n = 234 输出:15 解释: 各位数之积 = 2 * 3 * 4 = 24 各位数之和 ...

最新文章

  1. 知识产权创业的比赛结果
  2. Oracle中的pfile和spfile详解
  3. vector内存扩容
  4. [gkk传智]static与多态及向下向上转型,及多态调用总结
  5. linux 网络命令 dns,[LN_03] Linux网络环境查看(网卡|路由|DNS|IP)、网络测试命令(端口探测|路由跟踪|抓包|ssh连接)...
  6. python获取html文本框内容_Python3处理HTML获取所需内容
  7. 阿里云宣布与国内规模最大的汽车企业上汽集团合作
  8. datatable java实现_在JAVA实现DataTable对象(一)
  9. ZigBee 集中式网络与分布式网络
  10. 远程重装Win11系统图文教程
  11. 17-[案例1]奇虎导航案例
  12. php拆分excel,PHPExcel合并与拆分单元格的方法
  13. 高速单行道 IN Name Id”:道路入口有一辆车请求进入
  14. centos解压与压缩zip格式文件
  15. ASO苹果搜索广告审核不通过的原因
  16. 服务器检测到恶意发送文件,微软认证:文件服务器上与恶意文件夹的战争
  17. NES专题——NES的游戏硬件
  18. 知识图谱初探(二)三体人物关系图谱构建
  19. 点线面的意义_1.点线面三元素在平面构成中的造型意义是什么?
  20. 计算机win7几位,Win7 32位与64位有什么区别 Win7系统32位和64位的区别科普篇

热门文章

  1. restTemplate http请求报错:no suitable HttpMessageConverter found for response type and content type
  2. Spring AOP + Redis解决重复提交的问题
  3. Docker入门六部曲——Swarm
  4. 2022-2028年中国房地产金融行业投资分析及前景预测报告
  5. 2022-2028年中国冶金工业节能减排投资分析及前景预测报告
  6. 并发 vs 并行 (Concurrency Is Not Parallelism)
  7. 实践学习:首次项目合作
  8. SQLALchemy之Python连接MySQL
  9. 线程的状态、调度、同步
  10. 如何在 GPU 上优化卷积