CodingBat > Java > Array-1 > reverse3
:
Given an array of ints length 3, return a new array with the elements in reverse order, so {1, 2, 3} becomes {3, 2, 1}.
JavaScript
x
public int[] reverse3(int[] nums) {
int[] values = new int[3];
for (int i = 0; i <= nums.length - 1; i++) {
for (int j = nums.length-1; j >= 0; j--) {
values[i] = nums[j];
}
}
return values;
}
I can’t get this to work properly, usually the last int in the array, becomes every single int in the new array
Advertisement
Answer
You don’t want a two-level loop. Just have one loop:
JavaScript
for(int i = 0, j = nums.length - 1; i < nums.length; i++,j--) {
values[i] = nums[j];
}
or, alternately, just don’t track j sepearately, and do this:
JavaScript
for(int i = 0; i < nums.length; i++) {
values[i] = nums[nums.length - 1 - i];
}