Возможно взять 1 цикл и брать каждый элемент для сравнения, а потом вторым циклом сравнивать n - 1 элементов, вылезут ли таким образом дубли пар (сочетаний) я хз, думаю что нет, у меня оперативки не хватает, сейчас целиком погрузилась в решение своих гребанных задач.
Опять же если брать коллекцию, которая хранит уникальные пары, а не дубли, то это может помочь.
Но, возможно, следовало начать с уровня Easy.
Поскольку одно число можно использовать только один раз, то можно решать через HashSet.
Идем по массиву, перебираем числа. Для каждого числа n смотрим, есть ли уже в сете второе число искомой суммы target-n. Если есть, то это ответ. Если нет, кладем n в сет и ищем дальше.
типа
Берёшь первый элемент массива и складываешь его со вторым, если он не равен цели, то складываешь его с третьим и проверяешь равен ли он цели. И так далее, потом будешь складывать второй элемент с третьим и до конца массива, потом третий и до конца массива, пока не найдешь совпадение. И тд.
Не знаю, кто тебе что посоветовал, но почему бы просто не решать задачи джава раш? Многим этого вполне достаточно.