Java: matrice con colonne senza duplicati

Tema 89

Scrivere un metodo verificaSeCiSonoDuplicatiInColonne che riceve in ingresso una matrice M e restituisce TRUE se ogni colonna di M non contiene elementi duplicati; FALSE altrimenti.

Ad esempio, sia M la matrice così costituita

1 3 7 9 6
2 4 12 5 13
14 18 11 1 4
3 1 1 8 2
0 12 25 4 5

allora verificaSeCiSonoDuplicatiInColonne(M) = TRUE

 public class tema89{ public static boolean verificaSeCiSonoDuplicatiInColonne (int[][] M) { // impostiamo il ciclo di scansione delle colonne for (int j = 0; j < M[0].length; j++) { // una volta che ci siamo posizionati sulla colonna facciamo partire il ciclo di // scansione delle righe for (int i = 0; i < M.length; i++) { // questo terzo ciclo serve a scorrere tutti gli elementi successivi a quello su // cui ci si trova for (int k = i + 1; k < M.length; k++) { // effettuiamo il confronto tra l'elemento da valutare e tutti quelli che lo // seguono nella stessa colonna if (M[i][j] == M[k][j]) return false; } } } return true; }  /* Applicazione di prova */  public static void main (String[] args) { int[][] M = new int[][]{{1,3,7,9,6},{2,4,12,5,13},{14,18,11,1,4},{3,1,1,8,2},{0,12,25,4,5}}; // il risultato sarà TRUE System.out.println(verificaSeCiSonoDuplicatiInColonne (M)); System.out.println(); int[][] Q = new int[][]{{1,3,7,9,6},{2,4,12,5,13},{14,18,7,1,4},{3,1,1,8,2},{0,12,25,4,5}}; // il risultato sarà FALSE System.out.println(verificaSeCiSonoDuplicatiInColonne (Q)); } }     

Commenti

commenti