题目

引用实现数组元素逆序

思路

本题用两个引用从数组首尾向中间移动,交换元素,实现逆序(与下标写法等价)。 l 指向首元素,r 指向末元素;当 l<r 时交换 *l 与 *r,然后 l++、r--。

解题分析

用引用 left、right 从两端交换,与下标版第 32 题相同算法。

完整程序

import java.io.*;

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

运行示例

输出:

4 3 2 1