Недавно я столкнулся с вопросом о интервью Microsoft для инженеров-программистов.
Учитывая массив положительных и отрицательных целых чисел, переустановите его так, чтобы у вас были положительные целые числа на одном конце и отрицательные целые числа на другом, , но сохранили их порядок появления в исходном массиве.
Например, данный [1, 7, -5, 9, -12, 15]
Ответ будет следующим: [-5, -12, 1, 7, 9, 15]
Это должно быть сделано в O (n).
Мы могли бы легко сделать это в O (n), но я не могу думать, как мы можем поддерживать порядок элементов, как в исходном массиве. Если мы забудем о сложности O (n), может кто-нибудь сказать мне, как мы можем сохранить порядок элементов без учета сложности пространства и времени.
РЕДАКТИРОВАТЬ. В реальном вопросе нам также необходимо иметь пространственную сложность O (1).