По какой-то причине в один момент array[array.length - s] повторяет предыдущее значение в цикле и алгоритм ломается.