Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Controllare se una matrice possiede valori distinti

    Salve a tutti!
    Ho un quesito, praticamente ho una matrice 3x3 contenente numeri da 1 a 9.
    Come faccio a vedere se la matrice è stata riempita con cifre distinte comprese tra 1 e 9.

    Avevo pensato di trasferire la matrice in un array e controllare ogni valori con i successivi e fermarmi se è finito l'array o trovo una eccezione.

    Esiste un metodo per controllare, magari senza utilizzare un array, faccia anzicchè due cicli, cioè compessità n^2, un numero inferiore?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    banalmente: infili gli elementi della matrice in un HashSet e poi vai a vedere la dimensione di quest'ultima: se non è 9, allora hai elementi ripetuti. Nel contempo fai anche la somma degli elementi che stai inserendo e se la somma alla fine non fa 45 (con l'hashset di dimensione 9) allora non hai elementi da 1 a 9.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Grazie mille, ma mi serve per un esercizio di fondamenti, quindi è troppo avanzata come cosa...
    A me non viene in mente niente, voi avete altre soluzioni?


  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Toxik
    A me non viene in mente niente, voi avete altre soluzioni?
    Sì, certo. Crea un array di 9 boolean. Poi scansiona la matrice, per ogni numero che trovi usalo come indice (-1 chiaramente) nell'array dei boolean. Se il boolean è false, lo metti a true. Se è già true, allora hai trovato un duplicato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Hai ragione! Come ho fatto a non pensarci prima
    Grazie mille andbin!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.