Предположим, у меня есть список элементов, таких как [5, 3, 1, 2, 4]
, и я хочу сравнить два элемента по позиции.В зависимости от того, что произойдет первым в списке, оно больше или true
.Итак:
compare(5, 3) # true
compare(2, 1) # false
compare(3, 4) # true
Как я могу сделать это в постоянное время?Один из способов сделать это - использовать карты, где ключ - это элемент, а значение - это позиция в списке:
order = {5: 0, 3: 1, 1: 2, 2: 3, 4: 4}
Тогда мы амортизируем O (1) время, ноO (N) пробел.У кого-нибудь есть более элегантное решение?