Имеется массив, например [1 , 3 , 10 , 11 , 18 , 5] , в данном массиве указаны координаты "плиток" на прямой.
Нужно составить "Дороги", разница в координатах между плитками должна быть не более X (для примера возьмём 2), все элементы используются только один раз. Все элементы из которых нельзя составить дорогу записывать в отдельный массив, идём строго по-порядку.
1) Проходим массив первый раз, с первого элемента и получаем дорогу 1,3,5 , эти элементы использовать больше нельзя, т.е. у нас остался массив [10 , 11 , 18]
2) Проходим оставшийся массив второй раз и получаем дорогу 10, 11, остался массив [18]
3) Проходим оставшийся массив третий раз и записываем 18 в отдельный массив.
Собственно сам вопрос: как лучше организовать подобный перебор массива (с наибольшей скоростью) , с удалением использованных элементов? Элементов, естественно, в разы больше, чем в примере.