Java: elementi duplicati in una matrice

Tema 94

Scrivere un metodo verificaSeCiSonoDuplicatiInMatrice che riceve in ingresso una matrice di interi M e restituisce TRUE se M presenta elementi duplicati; FALSE altrimenti.

Ad esempio, sia M la matrice così costituita

3 18 15 7 2
1 9 11 4 1
11 2 6 3 5
5 1 25 2 1
3 2 33 4 4

allora verificaSeCiSonoDuplicatiInMatrice (M) = TRUE

 public class tema94{ // ci serviamo di un metodo di supporto per calcolare se un elemento è presente // più volte nella matrice public static int presenzaInMatrice (int k, int[][] M){ // inzializziamo un contatore che verrà incrementato ogni volta che un elemento // si ripete int contaPresenze = 0; for (int i = 0; i < M.length; i++){ for (int j = 0; j < M.length; j++){ if (M[i][j] == k) contaPresenze++;} } return contaPresenze; }  static boolean verifcaSeCiSonoDuplicatiInMatrice (int[][] M){ boolean esistonoDuplicati = false; // scrorriamo la matrice riga per riga for (int i = 0; i < M.length; i++){ for (int j = 0; j < M.length; j++){ // usiamo il metodo precedente per verificare se la presenza di un elemento è // superiore al valore 1 if (presenzaInMatrice (M[i][j], M) > 1) esistonoDuplicati = true;} } return esistonoDuplicati; }  /* Applicazione di prova */  public static void main(String[] args){ int[][] M = {{3,18,15,7,2}, {1,9,11,4,1}, {11,2,6,3,5}, {5,1,25,2,1}, {3,2,33,4,4}}; System.out.println(verificaSeCiSonoDuplicatiInMatrice (M)); // il risultato sarà TRUE System.out.println(); int[][] Q = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}}; System.out.println(verificaSeCiSonoDuplicatiInMatrice (Q)); // il risultato sarà FALSE } }     

Commenti

commenti