题目要求
给定一个整型数组(也可以是其他类型),将数组中的元素逆置输出
代码思路
我们首先找到起始下标和末尾下标,定义一个循环条件是起始下标小于末尾下标,当起始下标等于末尾下标时,就不用再进行转换。进入循环将将两元素调换,同时起始下标+1,末尾下标-1,缩小判断范围,直至起始下标等于末尾下标结束。
原理图
实现代码
//整型
import java.util.Arrays;
public class Main {
public static void reverse(int[] array){
int left = 0;
int right = array.length-1;
while(left<right){
int tmp = array[left];
array[left] = array[right];
array[right] = tmp;
left++;
right--;
}
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6,7};
System.out.println("逆置前:"+Arrays.toString(array));
reverse(array);
System.out.println("逆置后:"+Arrays.toString(array));
}
}
输出结果
逆置前:[1, 2, 3, 4, 5, 6, 7]
逆置后:[7, 6, 5, 4, 3, 2, 1]
//字符串
import java.util.Arrays;
public class blank43 {
public static void reverse(String[] array){
int left = 0;
int right = array.length-1;
while(left<right){
String tmp = array[left];
array[left] = array[right];
array[right] = tmp;
left++;
right--;
}
}
public static void main(String[] args) {
String[] array = {"国","中","爱","我"};
System.out.println("逆置前:"+Arrays.toString(array));
reverse(array);
System.out.print("逆置后:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+"");
}
}
}
输出结果
逆置前:[国, 中, 爱, 我]
逆置后:我爱中国
觉得写得不错的话点个赞呗😊