两种不同排序方法。但是获得了错误的输出

2024-09-23 06:24:47 发布

您现在位置:Python中文网/ 问答频道 /正文

下面给出了检查列表是否排序的两种不同方法

方法1

for i in range(len(inord) - 2):
    if (inord[i] >= inord[i + 1]):
        return False
return True

方法2

temp = sorted(inord)
return min([1 if i==j else 0 for i,j in zip(temp,inord)])

这两种方法是一样的,但是第二种方法在某些情况下失败了,怎么会这样呢

上述问题是针对哈克朗的问题提出的。请检查以下链接以获取完整的代码: https://www.hackerrank.com/challenges/is-binary-search-tree/forum/comments/522743


Tags: 方法infalsetrue列表forlenreturn
1条回答
网友
1楼 · 发布于 2024-09-23 06:24:47

这里有两个问题:

  1. 第一行中的范围不会比较最后两个元素。它应该是-1,而不是-2
  2. 如果两个相邻元素相同,则第一个代码块返回False。在另一种方法中,排序不会改变相同元素的顺序,因此它最终返回True。要检查单调递增还是严格单调递增的值

这有用吗

相关问题 更多 >