Поддержка отсортированного списка элементов с произвольным доступом - PullRequest
0 голосов
/ 07 апреля 2019

Дан список неупорядоченных номеров с дубликатами и еще один список номеров с индексами. Найдите число, которое появляется в отсортированном порядке по данному индексу.

Мы должны рассматривать ввод только до точки индекса index массива, в котором мы находимся в настоящее время.

Если мы рассматриваем элемент 2 в массиве index, нам следует искать второй отсортированный элемент во входном массиве 3 7 9 10

I/P   => 3 7 9 10 1 2
Index => 1 1 3  2 5 1

The output should be 

3 3 9 7 10 1

Ex. элемент 5 в массиве Index будет иметь соответствующий отсортированный входной массив как 1 3 7 9 10, поэтому 5-й элемент - 10

Мое решение состояло в том, чтобы использовать multiset , а затем использовать advance, чтобы найти n-й индекс в наборе.

For i : [1 : len(I/P)]
   set.add(I/P[i])
   advance(I/P, Index[i])
   print

Но заданная проблема не поддерживает произвольный доступ и advance ухудшается до линейного времени.

Как мне решить эту проблему в N Log(n)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...