достаточно простенькая задачка: есть массив состоящий вперемешку из нулей и единиц, нужно за O(n) его отсортировать без использования доп массивов для хранения результата.
Придумал решения с 2-мя доп индексами для хранения отсортированных границ: один хранит границу нулей слева, другой — границу единиц справа, далее итерируемся к центру и swap-им елементы если надо, перемещая к друг другу эти 2 метки. заканчиваем когда они сойдутся, в итоге O(n/2 + n/n) = O(n)