Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα , έχω μια άσκηση στην οποία παίρνω έναν πίνακα έτοιμο (π.χ. μεγέθους 10) και στην συνέχεια φτιάχνω έναν καινούργιο που δεν περιέχει 2η φορά τον ίδιο αριθμό,π.χ. 6 θέσεων στην περίπτωση που υπάρχουν 4 φορές ίδιοι αριθμοί.

Η ερώτηση μου είναι , μπορώ να δηλώσω έναν πίνακα που δεν ξέρω το μέγεθος του; Δηλαδή αν ο πίνακας των 10 θέσεων αλλάξει μπορεί ας πούμε ο νέος πίνακας να έχει 8 θέσεις. Άρα εγώ τον νέο πως θα τον δηλώσω ; με μεταβλητή ; έχω καταλάβει ότι δεν δηλώνουμε πίνακα με μεταβλητή αφού πρέπει να γνωρίζω εξ αρχής το μέγεθος του.

 

Επίσης αν υπάρχει κάποιος γρήγορος τρόπος να φτιάξω τον νέο μπορείτε να μου τον περιγράψετε ; Εγώ σκέφτηκα έναν , όπου μηδενιζω τα στοιχεία που εμφανίζονται πολλές φορές (εκτός από την 1η φορα) και στην συνέχεια περνάω όλα τα στοιχεία εκτός από τα μηδενικά στον νέο πίνακα. (Μόνο θέμα είναι το 0, που αν υπάρχει εξ αρχής δεν περνιεται στον νέο)

Δημοσ.
8 λεπτά πριν, Fabricated είπε

έχω καταλάβει ότι δεν δηλώνουμε πίνακα με μεταβλητή αφού πρέπει να γνωρίζω εξ αρχής το μέγεθος του.

Δεν ισχύει στη Java. Θα υπολογισεις τη μεταβλητή και θα ορίσεις το μέγεθος του πίνακα μετά.

int[] arr;
int s = countDistinct();
arr = new int[s];

 

Δημοσ. (επεξεργασμένο)

με arraylist δεν παιζει; δλδ να ορισεις ενα, και στην συνεχεια να τρεξεις τον πινακα σου, κι ο,τι καινουργιο(unique) βρισκεις να το βαζεις στο arraylist.

Νομιζω εχει και πολυπλοκοτητα Ο(n) αρκει ενα περασμα του πινακα, αλλα ισως κανω λαθος.

 

Επεξ/σία από bahamut_zero
Δημοσ.

Υποθέτω εννοείς κάτι με λίστες , που δεν έχουμε κάνει ακόμα οπότε φεύγει αυτή η επιλογή. Το έλυσα πάντως, Ευχαριστώ !

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...