题意整理
- 输入6个整数。
- 先输出所有的数,然后将所有的数倒转,再次输出。
方法一(双指针)
1.解题思路
- 定义两个指针,一个指向数组开头,记为l,一个指向数组结尾,记为r。
- 建立一个while循环,每次交换l、r位置的元素,同时l后移,r前移。直到l大于等于r,结束循环。
动图展示:
2.代码实现
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] arr = new int[6];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
System.out.println(Arrays.toString(arr));
//定义两个指针,一个指向数组开头,一个指向数组结尾
int l=0;
int r=arr.length-1;
//循环
while(l<r){
//交换l、r位置的元素
int temp=arr[l];
arr[l]=arr[r];
arr[r]=temp;
//l指针后移
l++;
//r指针前移
r--;
}
System.out.println(Arrays.toString(arr));
}
}
3.复杂度分析
- 时间复杂度:假设数组长度为n,最多循环次,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为。