Java – using less memory requires reordering array elements
•
Java
I have a recent interview question about reordering elements in an array with minimum memory usage Do not use any other variables or sets, etc
Input:
value 65 7 1 68 90 index 0 1 2 3 4
Output:
value 90 68 1 7 65 index 0 1 2 3 4
Solution
You can use XOR to swap between elements (the first is the last, the second is from the end, and so on), as follows:
int [] arr = {65,7,1,68,90};
for(int i=0; i<arr.length/2; i++){
// the following 3 lines swap between elements arr[i] and arr[arr.length-i-1]
arr[i] = arr[i] ^ arr[arr.length-i-1];
arr[arr.length-i-1] = arr[i] ^ arr[arr.length-i-1];
arr[i] = arr[i] ^ arr[arr.length-i-1];
}
for(int i=0; i<arr.length; i++){
System.out.print(arr[i]+" ");
}
OUTPUT
90 68 1 7 65
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
