Сортировка двумя разными способами.Но получаю неправильный вывод - PullRequest
0 голосов
/ 10 декабря 2018

ниже приведены два различных способа проверки, отсортирован ли список.

Метод 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

1 Ответ

0 голосов
/ 10 декабря 2018

Здесь есть две проблемы:

  1. Диапазон в первой строке не сравнивает последние два элемента.Оно должно быть -1 вместо -2.
  2. Первый блок кода возвращает False, если два соседних элемента совпадают.В другом методе сортировка не меняет порядок тех же элементов, поэтому в итоге возвращает True.Вы хотите проверить монотонно увеличивающиеся или строго монотонно увеличивающиеся значения?

Помогает ли это?

...