题解 | #数组倒转#
数组倒转
http://www.nowcoder.com/practice/3a90caee736a45e1ad70b1d4105dec5f
题意整理
- 输入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,最多循环次,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为。
xqxls的题解 文章被收录于专栏
牛客题解