每日一题 2006. 差的绝对值为 K 的数对数目

简介: 每日一题 2006. 差的绝对值为 K 的数对数目

题:给定数组nums和整数k,求数组中 满足|nums[i]-nums[j]| = k(i<j)的数对数目。

解:1. 直接两重循环

class Solution:
    def countKDifference(self, nums: List[int], k: int) -> int:
        cnt = 0
        for i in range(len(nums)):
            for j in range(i+1,len(nums)):
                if abs(nums[j]-nums[i]) == k:
                    cnt += 1
        return cnt

2.哈希表

class Solution:
    def countKDifference(self, nums: List[int], k: int) -> int:
        cnt, ans = Counter(nums), 0
        for key in cnt:
            if (key + k) in cnt:
                ans += cnt[key] * cnt[key + k]                
        return ans
相关文章
|
4月前
leetcode-2006:差的绝对值为 K 的数对数目
leetcode-2006:差的绝对值为 K 的数对数目
62 0
|
4月前
|
人工智能 Java C++
计算逆序对数
计算逆序对数
33 0
|
11月前
【Leetcode -746.使用最小花费爬楼梯 -747.至少是其他数字两倍的最大数】
【Leetcode -746.使用最小花费爬楼梯 -747.至少是其他数字两倍的最大数】
67 0
|
4月前
每日一题(最大连续1的个数,完全数计算)
每日一题(最大连续1的个数,完全数计算)
27 0
|
4月前
求十个数的乘积
求十个数的乘积
29 0
|
算法 C++ Python
【每日算法Day 91】求解数组中出现次数超过1/3的那个数
【每日算法Day 91】求解数组中出现次数超过1/3的那个数
|
算法 C++ Python
【每日算法Day 90】5种方法:求解数组中出现次数超过一半的那个数
【每日算法Day 90】5种方法:求解数组中出现次数超过一半的那个数
158 0
|
索引
每日一题—— 最小差值 I
每日一题—— 最小差值 I
149 0
每日一题—— 最小差值 I
|
Python
LeetCode 2006. 差的绝对值为 K 的数对数目
给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k 。
94 0
|
测试技术
软件测试面试题:如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。 例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加, 1+2+3=6。第二个完全
软件测试面试题:如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。 例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加, 1+2+3=6。第二个完全
449 0