3622
правки
Изменения
→Псевдокод
Map<E, E> previous
<font color = green>// формирование стопок</font>
List<Stack<E>> createPiles(E[] source):
List<Stack<E>> piles
'''for''' i = 0..n - 1
<font color = green>// Получение отсортированного массива</font>
'''bool''' comparePiles(Stack<E> x, Stack<E> y):
return x.peek() < y.peek()
E[] getSortedArray(E[] source)
List<Stack<E>> piles = createPiles(source):
priorityQueue<Stack<E>> q(piles, comparator: comparePiles)
'''for''' i = 0..n - 1
<font color = green>// Получение наибольшей возрастающей подпоследовательности</font>
E[] getLIS(List<Stack<E>> piles):
lis[n - 1] = piles[piles.size - 1].peek()
E prev = previous.get(lis[n - 1])