下面给出了检查列表是否排序的两种不同方法。
方法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)])
这两种方法是相同的,但第二种方法在某些情况下失败了,怎么会发生?
上面提到的问题是参考HackerRank提出的问题。请查看以下链接以获取完整代码:https://www.hackerrank.com/challenges/is-binary-search-tree/forum/comments/522743
这里有两个问题:
-1
而不是-2
。False
。在另一种方法中,排序不会改变相同元素的顺序,因此它最终会返回True
。您想检查单调递增或严格单调递增的值吗?这有帮助吗?