"""
问题描述:
给定一个整数数组和一个整数k,这里k-diff对被定义为整数对(i, j), 其中i和j都是数组中的数字,
他们的局对差是k,本例中将找到数组中k-diff对的数量。
问题示例:
输入[3, 1, 4, 1, 5],k=2, 输出2,数组中有两个2-diff对, (1, 3)和(3, 5)。虽然在输入中有两个1,但只返回唯一对的数量。
输入中{1, 2, 3, 4, 5], k=1, 输出4, 数组有四个k-diff对,(1, 2),(2, 3),(3, 4)和(4, 5)。
输入[1, 3, 1, 5, 4], k=0, 输出1, 数组中有一个0-diff对,(1, 1)。
"""
class Solution:
def findPairs(self, nums, k):
if k >0:
print(set(nums) & set(n + k for n in nums))
return len(set(nums) & set(n + k for n in nums))
if k == 0: # 计数所有出现的数字>1
return sum(v > 1 for v in collections.Counter(nums).value())
return 0
if __name__ == '__main__':
temp = Solution()
List1 = [6, 3, 4, 2, 5, 1]
num = 2
print("输入:" + str(List1) + " " + str(num))
print("输出:" + str(temp.findPairs(List1, num)))
"""
运行结果:
输入:[6, 3, 4, 2, 5, 1] 2
{3, 4, 5, 6}
输出:4
"""
【day005】数组中的k-diff对的数量
最新推荐文章于 2024-08-11 15:15:33 发布