数组反转
数组反转
思路一:
创建一个等长的数组,反向放入,最后改变引用即可
int[] nums = new int[]{3,4,6};
int[] temp = new int[nums.length];
for (int i = nums.length - 1; i >= 0; i--) {
temp[i] = nums[nums.length - 1 - i];
}
nums = temp;
for (int i = 0; i < nums.length; i++) {
System.out.println(temp[i]);
}
思路二
利用交换的方式:

// 定义原始数组
int[] nums = new int[]{3,4,6};
// 交换反转
for (int i = 0; i < nums.length/2; i++) {
int temp = nums[nums.length - 1 - i];//保存
nums[nums.length - 1 - i] = nums[i];
nums[i] = temp;
}
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
public class ArrayReverse {
public static void main(String[] args) {
int[] nums = {1,2,3,4,5,6};
//创建一个新数组
int[] temp = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
temp[i] = nums[nums.length-1-i];//将nums反着放
}
nums = temp;
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i]+",");
}
}
}
6,5,4,3,2,1,
Process finished with exit code 0
public class ArrayReverse2 {
public static void main(String[] args) {
int[] nums = {1,2,3,4,5,6,7};
//首尾两两交换,效率更高,更省空间和内存
for (int i = 0; i < nums.length/2 ; i++) {//遍历nums长度一半
int temp = nums[i];//先创建一个临时值把nums遍历出来的值赋值给这个临时值
nums[i] = nums[nums.length-1-i];//nums[nums.length-1-i]是遍历nums从尾到头的规律
nums[nums.length-1-i] = temp;
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i]+",");
}
}
}
7,6,5,4,3,2,1,
Process finished with exit code 0

浙公网安备 33010602011771号