我知道这个问题已经用其他语言(包括Java本身)问过了。
我只想澄清一下,我知道如何反转数组,但是如果有任何解决方案,我希望提供帮助。
因此,请勿将其标记为重复项。
import java.util.Scanner;
class TestClass {
public static void main(String args[] ) throws Exception {
/*
Code for User input
*/
/* The problem was with the Swapping Code below */
for(int i=0; i<=n/2; i++)
swap(i,n-i-1,a);
/* Output Code. */
}
/*Swap function*/
public static void swap(int x, int y, int[] arr){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
我已经根据注释中提供的链接更改了解决方案。在一些测试用例中我还可以,但是在某些情况下,代码失败了。我认为我做得正确,因此将不胜感激。
最佳答案
多亏了conscells,ajb和Amadan带领我到达了解决此问题的正确位置。
这是在Java中反转数组的正确解决方案。我知道这里已经提供了解决方案,但只是想让这个问题对将来的用户有所帮助。
import java.util.Scanner;
class TestClass {
public static void main(String args[] ) throws Exception {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int a[] = new int[n];
for(int i=0; i<n; i++)
a[i] = scan.nextInt();
for(int i=0; i<n/2; i++)
swap(i,n-i-1,a);
for(int i=0; i<n; i++)
System.out.println(a[i]);
}
public static void swap(int x, int y, int[] arr){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}