Visualizzazione dei risultati da 1 a 3 su 3

Discussione: metodo in java

  1. #1

    metodo in java

    Ciao a tutti e buon anno!!!!avrei un problemino con questo metodo java!!!
    la traccia è:
    Scrivere un metodo verifica che riceve in ingresso una matrice A ed un vettore V e restituisce true se ciascun elemento del vettore è presente esattamente almeno due volte nella matrice e false altrimenti.
    Io ho provato a risolverlo così:

    codice:
    public class esercio32 {
     public static int contaripetuti(int[][]m,int x,int f){ 
    int cont=0;	 	
    for (int i=0;i<m.length;i++){ 		 	
    for (int j=0;j<m[0].length;j++) 		
    if (m[i][j]==x && j!=f) 			
    cont++; 	
    }	 			
    return cont; 	    
    } 
    public static boolean verifica (int[][]a,int []v){ 
    for (int i=0;i<m.length;i++){ 		 	
    for (int j=0;j<m[0].length;j++)
    if (contaripetuti(a,v[i],j)!=2) 				
    return false; 	
    } 	  
    return true; 	 
    }    
    
     public static void main(String[] args) { 		
    int[][]a={{1,0,3,9,1},{1,2,0,0,3},{0,1,6,2,1,2},{9,2,4,0,1},{0,5,5,1,1,8}}; 	
    int[]v={3,5,9}; 		
    boolean b=verifica(a,v);       
     System.out.print(b); 	
    }  
    }
    ho utilizzato un metodo ausiliario pensando di semplificare la cosa..
    potreste dirmi dove sbaglio??o proporre una soluzione alternativa??
    vi ringrazio anticipatamente!!!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: metodo in java

    Originariamente inviato da lorenzcollixx
    potreste dirmi dove sbaglio??o proporre una soluzione alternativa??
    Non ho controllato il tuo codice perché sono un po' di fretta.

    Innanzitutto ci vorrebbe un chiarimento sulla tua espressione "presente esattamente almeno due volte". Deve esserci almeno 2 volte oppure esattamente 2 volte?
    Nel tuo codice hai messo != 2, quindi dedurrei la seconda opzione.


    Gli approcci possono essere diversi, te ne dico 2 che mi vengono in mente.

    1) In verifica per prima cosa si itera sul vettore (non sulla matrice). Per ogni elemento del vettore fai una scansione completa della matrice. Se trovi che l'elemento non è presente 2 volte, puoi ritornare già subito false (true solo alla fine se tutto valido).

    oppure

    2) In verifica si crea innanzitutto un vettore di int della stessa lunghezza del vettore dei valori. Il nuovo vettore contiene i contatori delle occorrenze (inizialmente a 0).
    Quindi si scansiona la matrice. Per ogni elemento della matrice si va a cercarlo nel vettore, se trovato si incrementa il corrispondente contatore. Alla fine tutti i contatori devono essere 2.


    Tutto questo a parte e indipendentemente dal chiarimento su almeno/esattamente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da lorenzcollixx
    metodo in java
    Hai aperto già questa discussione sul medesimo argomento, ma nell'area errata: in futuro, segnala la discussione al moderatore per farla spostare invece di aprirne un duplicato, visto che qualcuno ti ha già risposto.

    Usa inoltre titoli più significativi e rappresentativi del problema centrale della discussione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.