【问题标题】:I'm trying to count the number of distinct pairs but I get error [closed]我正在尝试计算不同对的数量,但出现错误 [关闭]
【发布时间】:2019-03-17 10:16:56
【问题描述】:

我最近决定开始解决编码问题,我已经为这个“计数对”问题苦苦挣扎了两天。

问题表明,如果 (a,b) 的至少一个元素不在 (c,d) 中(例如;给定 a列表 (1,3,3,4), (1,3) 与 (1,4) 和 (3,4) 不同,但与 (1,3) 不同,其中 2 从列表中的不同索引中选择。如果 a 对是有效的

所以我必须编写一个函数来返回我的列表中具有指定差异 X ( a + X = b ) 的有效对的计数

def countPairs(liste, X):
    # Write your code here
    count = 0
    liste.sort()
    j=0
    d=0
    while d<len(liste):
        if liste[d]-liste[j]==X:
            count=count+1
            j=j+1
            d=d+1
        elif liste[d]-liste[j]>X:
            j=j+1
        else:
            d=d+1
    return count

谢谢!

【问题讨论】:

  • 你遇到了什么错误?请不要只提及错误。说出它是什么,它出现在哪一行。
  • 它不适用于所有测试用例。
  • 什么测试用例没有通过?你做了什么来尝试调试它?请给minimal reproducible example

标签: python python-3.x algorithm list


【解决方案1】:

您不检查解决方案中的 distinct 对。看看liste = [1, 1, 3, 3]X = 2 会发生什么。您将计算两对,一对具有索引 (0,2) 和其他 (1,3) 的元素。

要省略重复项,您可以使用不允许它们的数据结构:set。您可以像这样在数据结构之间进行转换:

set(liste)
list(set(liste))

我想假设是X &gt;= 0

【讨论】:

  • 是的,你说得对!我不知道如何检查不同的配对
  • @prepari ,如果我设法提供帮助,请接受答案
猜你喜欢
  • 1970-01-01
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 2022-11-13
  • 2020-10-31
  • 1970-01-01
  • 2023-02-14
  • 1970-01-01
相关资源
最近更新 更多