Один из подходов, которые вы можете попробовать здесь, - это просто поменять местами каждый элемент массива по средней позиции:
int[] arr = new int[] {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(arr));
for (int i=0; i < arr.length/2; i++) {
int temp = arr[i];
int j = arr.length - i - 1;
arr[i] = arr[j];
arr[j] = temp;
}
System.out.println(Arrays.toString(arr));
Это выдает:
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
Проблема с вашей текущей логикойв основном это строка:
int j = 4;
Вы назначаете верхний указатель на массив как 4
, для для каждой итерации цикла.Вместо этого значение j
должно быть инициализировано как 4
вне цикла, а затем уменьшаться во время каждой итерации.Но я, вероятно, использовал бы версию, которую я дал выше.