Как в python эффективно найти самый большой последовательный набор чисел в списке, который не обязательно смежный?

Например, если у меня есть список

[1,4,2,3,5,4,5,6,7,8,1,3,4,5,9,10,11]

Этот алгоритм должен вернуть [1,2,3,4,5,6,7,8,9,10,11].

Чтобы уточнить, самый длинный список должен идти вперед. Мне было интересно, как это сделать с алгоритмической эффективностью (желательно не за O (n ^ 2))?

Кроме того, я открыт для решения не на python, поскольку важен алгоритм.

Спасибо.

11
задан Raymond Hettinger 19 March 2017 в 07:57
поделиться