Цель кода - найти разницу между суммой двух противоположных диагоналей матрицы. Код:Ошибка матрицы диагональной матрицы Java
public static void main(String[] args) {
Scanner scn=new Scanner(System.in);
int N=scn.nextInt();
int diag1=0;
int diag2=0;
int[][] matrix=new int[N][N];
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
matrix[i][j]=scn.nextInt();
System.out.print(" ");
}
System.out.println();
}
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
if(i==j)
diag1+=matrix[i][j];
//System.out.println(diag1);
}
}
int counter1=0, counter2=N-1;
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
if(i==counter1 && j==counter2){
diag2+=matrix[i][j];
counter1++;
counter2--;
}
}
}
System.out.println(diag1); // used this for checking purpose
System.out.println(diag2); // used this for checking purpose
System.out.println(Math.abs(diag1-diag2));
Я получаю точный результат, но все-таки тест на HackerRank показывает код, как неудачу. Может кто-нибудь объяснить, почему? THe code challenge is mentioned here
У меня есть выход после удаления всех дополнительных заявлений на печать!
получил выход! просто нужно было удалить пустое пространство и распечатать stmts! – RKiyer
Также оптимизируйте свой код, вот почему вы кодируете hackerrank, вам не нужно O (n^2), когда вы можете сделать это в O (n). Также у вас есть избыточный счетчик1, который точно такой же, как 'i'. –
Спасибо. Тот, который вы опубликовали, выглядит очень эффективным, будет учитывать это в следующий раз. – RKiyer