【发布时间】:2017-11-06 15:05:12
【问题描述】:
我正在尝试从对角数组中删除重复项。 如果你运行我的代码,你会更好地理解我想要做什么。
我想从该辅助数组中删除重复项,但我的重复部分代码适用于所有数字而不是对角线部分。另外,请不要在集合中包含答案。 这是我遇到问题的部分:
boolean dup = false;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j <array[i].length; j++) {
if (i+j ==array.length-1){
if(i == j) {
System.out.println("Duplicate "+array[i][j]);
}
if(array[i] ==array[j]){
System.out.println("Duplicate "+array[i][j]);
dup = true;
break;
}
System.out.print(array[i][j] + " ");
}
else System.out.print(" " + " ");
}
System.out.println();
}
这就是全部内容:
class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter length of N array: ");
int n = input.nextInt();
System.out.print("Enter length of M array: ");
int m = input.nextInt();
intarray[][] = new int[n][m];
Random rand = new Random();
System.out.print("Random nums:");
for (int i = 0; i <array.length; i++) {
for (int j = 0; j <array[i].length; j++) {
System.out.print("X[" +i+ "," +j +"]"+ "-->");
array[i][j] = rand.nextInt(10);
}
}
for (int i = 0; i <array.length; i++) {
System.out.println();
for (int j = 0; j <array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
}
System.out.println();
System.out.println("Numbers: ");
boolean dup = false;
for (int i = 0; i <array.length; i++) {
for (int j = 0; j <array[i].length; j++) {
if (i+j ==array.length-1){
if(i == j) {
System.out.println("Duplicate "+array[i][j]);
}
if(array[i] ==array[j]){
System.out.println("Duplicate "+array[i][j]);
dup = true;
break;
}
System.out.print(array[i][j] + " ");
}
else System.out.print(" " + " ");
}
System.out.println();
}
}
}
【问题讨论】:
-
在调试器下逐步运行代码,您将能够实时检查所有变量。
-
If you run my code you will understand what's going on.或者你可以告诉我们发生了什么。努力解决你的问题。 -
我也确实包含了解释。在你说什么之前,你可以努力阅读所有内容。 @Jashaszun
标签: java arrays algorithm multidimensional-array diagonal