2

这是我需要做的

能够反转可变大小的一维数组的内容,而无需使用另一个临时数组。

给定一个整数、数字的一维数组,编写 Java 代码就地反转数字的内容,而不使用临时数组来存储反转的内容。例如,如果 numbers 是 {12, 34, 50, 67, 88},请提供将更改数字的代码,使其内容现在变为 {88, 67, 50, 34, 12}。

这就是我所拥有的 它无法正常工作。

public static int[] reverseArrayWithoutTempArray(int[] array) {

        double array [ ];

        array = new double [10];
        int [ ] num = {12, 34, 50, 67, 88};
        int i = 0;
        int  j = a.length - 1;
        for (i = 0; i < a.length / 2; i++, j—){
            int temp = a[i];
            a[i] = a[j];
            a[j] = temp;
          }
        return array;
    }
4

6 回答 6

3

对于您提供的示例,它实际上可以正常工作。这就是我的代码的样子:

    public static int[] reverseArrayWithoutTempArray(int[] a) {
    int i = 0;
    int  j = a.length - 1;
    for (i = 0; i < a.length / 2; i++, j--){
        int temp = a[i];
        a[i] = a[j];
        a[j] = temp;
      }
    return a;
}
于 2012-12-02T22:17:31.460 回答
1

就是这样:

public static void reverseArrayWithoutTempArray(int[] num) {
     int  j = num.length - 1;
     for (int i = 0; i < num.length / 2; i++, j --){
        int temp = num[i];
        num[i] = num[j];
        num[j] = temp;
     }
}

调用此方法将如下所示:

int [] num = {12, 34, 50, 67, 88};
reverseArrayWithoutTempArray(num);
System.out.println(Arrays.toString(num)); //to log
于 2012-12-02T22:15:30.487 回答
1
于 2012-12-02T22:19:08.693 回答
0

如果这不是课程作业,您可以使用ArrayUtils.reverse.

于 2012-12-02T22:15:20.027 回答
0

这行得通吗?(swap方法没有实现,但是你知道怎么做吧?)

public static void reverseIntArray(int[] input) {

        final int last = input.length - 1;
        if (last < 0) {
            return;
        }
        for (int i = 0; i < input.length / 2 + 1; i++) {
            if (last - i <= i) {
                return;
            }
            swap(input, i, last - i);
        }

    }
于 2012-12-02T22:17:55.777 回答
0

Assuming you know how to implement swap the following reverses a part of array in-place:

public void reverse(int[] a, int low, int hi) {
    while (low < hi) {
        swap(low++, hi--, a);
    }
}

You can then reverse the entire array by calling reverse(a, 0, a.length - 1).

于 2016-01-07T11:46:29.913 回答