Несмотря на то, что предоставленные ответы хороши, вот еще одна попытка с использованием известного метода, называемого Two-Pointers
. Я считаю, что это немного более понятно и оптимизировано.
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
int[][] mat = {
{1, 2, 2, 1},
{4, 3, 3, 4},
{2, 3, 3, 2}
};
//assume the matrix is square
int rows = mat.length, columns = mat[0].length;
boolean symmetric = true;
for(int r = 0; r < rows && symmetric; r++){
//now declare two pointers one from left and one from right
int left = 0, right = columns - 1;
while (left < right){
if(mat[r][left] != mat[r][right]){
symmetric = false;
break;
}
right--;
left++;
}
}
System.out.println(symmetric? "The matrix is symmetric." : "The matrix isn't symmetric.");
}
}
Вот код Ideone .