需要根据输入中值反转整数数组

时间:2017-07-24 17:17:55

标签: java arrays

需要根据输入数反转整数数组 例如:

Array be [1,2,3,4,5,6,7,8,9] and value of subset be N = 4
then the array after reversal will be [4, 3, 2, 1, 8, 7, 6, 5, 9].
if N = 3 then output should be [3,2,1,6,5,4,9,8,7]

无法用递归方法或任何循环概念来考虑正确的逻辑

1 个答案:

答案 0 :(得分:1)

尝试以下java代码

public static int[] reverse(int[] a, int number) {
    // negative case
    if (number < 0) {
        return a;
    }
    // higher count than array length
    int size = number < a.length ? number : a.length;
    int[] b = new int[size];
    System.arraycopy(a, 0, b, 0, size);
    for (int i = b.length - 1; i >= 0; i--) {
        a[b.length - 1 - i] = b[i];
    }
    return a;
}

Array包含每个元素的索引,因此上面的循环代码简单而有效。