Java: elementi comuni riga e colonna di una matrice

Tema 102

Scrivere un metodo creaArrayConElementiComuniInRigaEcolonnaDateDaParametri che riceve una matrice di interi M e due numeri n e k e restituisce un array contenente gli elementi presenti sia nella riga n che nella colonna k.

Ad esempio, sia M la matrice così costituita

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

allora creaArrayConElementiComuniInRigaEinColonnaDateDaParametri (M,1,2)

11 6

 public class tema102{ static int[] creaArrayConElementiComuniInRigaEinColonnaDateDaParametri (int[][] M, int n, int k){ // creiamo un array temporaneo con dimensione pari alla stessa matrice in cui // inseriremo gli elementi // che soddisfano il requisito; la scelta sulla dimensione è data dal fatto che // potrebbe verificarsi // il caso in cui gli elementi della riga siano tutti uguali a quelli della // colonna int[] arrayTemporaneo = new int[M.length]; // inizializziamo un indice per scorrere l'array int indiceArray = 0; for (int i = 0; i < M.length; i++){ for (int j = 0; j < M.length; j++){ if (M[n][i] == M[j][k]){ // ci serviamo di una variabile boolean per stabilire se un elemento è già stato // inserito nell'array boolean giàInserito = false; for (int c = 0; c < arrayTemporaneo.length; c++) { if (arrayTemporaneo[c] == M[n][i]) giàInserito = true; } // se l'elemento in questione non è stato ancora inserito nell'array if (!giàInserito){ // provvediamo a inserirlo arrayTemporaneo[indiceArray] = M[n][i]; // e incrementiamo la dimensione dell’array indiceArray++;}} } } // adesso creiamo l'array finale con la giusta dimensione int[] arrayFinale = new int[indiceArray]; for (int i = 0; i < arrayFinale.length; i++){ // trasferiamo gli elementi dall'array temporaneo all'array finale arrayFinale[i] = arrayTemporaneo[i]; } return arrayFinale; } public static void visualizzaArray (int[] V) { for (int i = 0; i < V.length; i++) System.out.print(V[i] + " "); System.out.println(); }  /* Applicazione di prova */  public static void main(String[] args){ int[][] M = {{3,18,15,7,2}, {1,9,11,4,6}, {7,2,6,3,5}, {5,1,25,2,1}, {3,2,33,4,4}}; visualizzaArray (creaArrayConElementiComuniInRigaEinColonnaDateDaParametri (M,1,2)); } }     

Commenti

commenti