数组反转

数组反转

思路一:

创建一个等长的数组,反向放入,最后改变引用即可

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]);
}

思路二

利用交换的方式:

image

// 定义原始数组
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
posted @ 2022-05-03 22:27  追风的羊  阅读(181)  评论(0)    收藏  举报