Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

HW7 - tempi disastrosi

B
Babby740 (1240 points)
24 35 39
in HW7 opzionale by (1.2k points)

Non riesco a superare gli ultimi 4 test dell'homework 7opz. Il problema è che anche lasciandolo 10 min non riesce a completare l'operazione come se andasse in loop, ma gli altri 12 test li passa tutti in meno di 1 secondo.

l'idea del mio algoritmo è ciclare tramite 2 for la stringa e trovare i numeri uguali, poi da lì rimuovo i due doppioni e controllo se la stringa ha altri doppioni assegnando un valore ad un booleano. infine tramite il valore del booleano capisco se andare nel caso base o continuare con la ricorsione.

Ogni consiglio per migliorare l'algoritmo è ben accetto.

 indecision

494 views
closed

1 Answer

Best answer
E
Edward (25950 points)
4 4 172
by (26.0k points)
selected by
Anche la mia prima versione non superava quei test all'inizio.

Devi ragionare su come analizzare meno sottosequenze possibili, ad esempio evitando di analizzare sottosequenze uguali.

Inoltre ti conviene fare preprocessing della sequenza, non tutti i numeri potranno appartenere al risultato.
In particolare se ci fai caso se un numero appare nella sequenza un numero pari di volte, non apparirà mai nel risultato poichè verrà sempre rimosso.
B
Babby740 (1240 points)
24 35 39
by (1.2k points)
Grazie mille, è utile trasformare la stringa in una lista o conviene lavorare direttamente sulla stringa?
E
Edward (25950 points)
4 4 172
by (26.0k points)
Io l'ho trasformata in una lista, penso che lavorare con gli interi sia più veloce che lavorare con i caratteri.

Inoltre ti semplifica il tutto se hai interi > 9