Te lo scrivo in pseudo-codice, così traducendo il codice te lo studi con attenzione e capisci l'esericizio:
ipotizzo che M sia la matrice/array bidimensionale preso in input e che la variabile rows indichi il numero di righe all'interno di essa:
codice:
current[] = null;
temp[] = null;
i = 0;
for each (i < rows - 1)
begin
current = M[i];
j = i + 1;
for each (j < rows)
begin
temp = M[j]
equals = true;
k = 0;
for each k < current.length
begin
if( current[k] != temp[k] )
begin
equals = false;
break;
end
k = k + 1;
end
if( equals ) return true;
j = j + 1;
end
i = i + 1;
end
return false;
In java le matrici in sostanza possono essere rappresentate come array di array, quindi la logica dell'algoritmo non cambia.