在Python中查找差值为k的所有不同对


在这篇文章中,我们将学习如何计算具有精确差值k的数字对的数量。给定的数字以列表的形式给出,我们将向程序提供k的值。

使用for循环

在这种方法中,我们设计了两个for循环,一个嵌套在另一个里面。外部for循环跟踪访问给定列表的每个元素。内部for循环将每个剩余元素与外部循环的元素进行比较,如果匹配所需的差值,则增加计数变量的值。

示例

listA = [5, 3, 7, 2, 9]

k = 2
count = 0

# Elements of the list
for i in range(0, len(listA)):

# Make pairs
   for j in range(i + 1, len(listA)):

      if listA[i] - listA[j] == k or listA[j] - listA[i] == k:
         count += 1

print("Required Pairs: ",count)

输出

运行上面的代码,我们将得到以下结果:

Required Pairs: 3

使用while循环

在另一种方法中,我们使用while循环以及if else语句。在这里,我们根据两对之间的差值是否与所需的差值匹配来递增当前索引和下一个索引。

示例

演示

listA = [5, 3, 7, 2, 9]

k = 2
count = 0

listA.sort()

next_index = 0
current_index = 0

while current_index < len(listA):
   if listA[current_index] - listA[next_index] == k:
      count += 1
      next_index += 1
      current_index += 1

   elif listA[current_index] - listA[next_index] > k:
      next_index += 1
   else:
      current_index += 1

print("Required Pairs: ",count)

输出

运行上面的代码,我们将得到以下结果:

Required Pairs: 3

更新于:2020年8月26日

308 次浏览

启动你的职业生涯

通过完成课程获得认证

开始
广告