题目

数组元素逆序存放

思路

本题把数组元素首尾对调,得到逆序数组。 设两个下标 i=0、j=n-1;当 i<j 时交换 a[i] 与 a[j],然后 i++、j-- 向中间收拢。n<=1 时无需交换。

解题分析

原地逆序双引用首尾交换。若允许额外数组,也可 forward 读入 backward 输出,空间换写法简单。

完整程序

import java.io.*;

public class Main {
    public static void main(String[] args) {
        int n = 5;
        int[] a = new int[n];
        for (int i = 0; i < n; i++) a[i] = 1;
        for (int i = 0, j = n - 1; i < j; i++, j--) {
            int t = a[i];
            a[i] = a[j];
            a[j] = t;
        }
        for (int i = 0; i < n; i++) System.out.print(a[i] + (i + 1 < n ? " " : "\n"));
    }
}

运行示例

输出:

5 4 3 2 1