Пара зеркальных элементов формируется путем объединения первого элемента с последним, второго элемента со вторым последним и т. д.
Если массив имеет нечетную длину, средний элемент должен быть добавлен как есть. Я хочу реализовать это эффективно, в идеале используя подход с двумя указателями.
Например, с помощью ввода:
Код: Выделить всё
5
1 2 3 4 5
Код: Выделить всё
15
Я попробовал код:
Код: Выделить всё
import java.util.*;
public class MirrorSum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] A = new int[N];
for(int i = 0; i < N; i++) {
A[i] = sc.nextInt();
}
int sum = 0;
// I am not sure how to correctly add mirrored pairs efficiently
System.out.println(sum);
}
}
Обновление: чтобы просто суммировать элементы, вы можете просто добавить их все. Но в упражнении речь идет о зеркальных парах, которые являются обычным методом программирования для симметричной обработки массивов. Использование зеркальных пар подготавливает вас к проблемам, когда вы можете умножать пары, проверять условия или находить зеркальные максимумы, а не просто суммировать. –
Суммирование зеркальных пар в этой задаче дает тот же результат, что и суммирование всех элементов. Целью использования зеркальных пар, вероятно, является обучение технике двух указателей и подготовка к задачам, в которых операции над зеркальными парами отличаются от общей суммы.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ay-in-java
Мобильная версия