Третий вариант с неотсортированным массивом не пойдет -- Вы "испортите" массив, и индексы в результате будут по сортированному массиву, а не по исходному. В постановке задачи не указано, что числа в массиве не повторяются. Если массив будет содержать повторяющиеся значения, то второй и третий варианты найдут не все пары.
Третий вариант с неотсортированным массивом не пойдет -- Вы "испортите" массив, и индексы в результате будут по сортированному массиву, а не по исходному.
В постановке задачи не указано, что числа в массиве не повторяются. Если массив будет содержать повторяющиеся значения, то второй и третий варианты найдут не все пары.
Да, все верно, если возвращать именно индексы. Если возращать сами числа, тогда будет неважно, есть там дубли или нет и в какой они находятся позиции.