Sobes.tech
Senior

Dots ir pozitīvu un negatīvu veselu skaitļu masīvs. Sakārtojiet to tā, lai sākumā būtu visi pozitīvie skaitļi pēc to sākotnējā secības. Kas būs masīva otrajā pusē, nav svarīgi.

sobes.tech AI

Atbilde no AI

Задача — переставить элементы массива так, чтобы все положительные числа оказались в начале, сохраняя их исходный порядок. Порядок отрицательных чисел во второй части не важен.

Решение можно реализовать, создав новый массив и сначала скопировав туда все положительные числа в порядке их появления, а затем добавив оставшиеся элементы (отрицательные и нули) в любом порядке.

Пример на Python:

arr = [3, -1, 2, -5, 4, -2]

positives = [x for x in arr if x > 0]
others = [x for x in arr if x <= 0]

result = positives + others
print(result)  # [3, 2, 4, -1, -5, -2]

Если нужно сделать это in-place с минимальным дополнительным пространством, можно использовать алгоритм с двумя указателями, но сохранение порядка положительных чисел усложняет задачу и обычно требует дополнительной памяти.