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

Do you need help?

Velocizzare il codice

M
Mic_s (670 points)
4 18 25
in HW8 di recupero by (670 points)
Salve a tutti, vorrei chiedere un consiglio su come migliorare il mio codice e renderlo più veloce in quanto mi passa tutti i test meno uno. Utilizzando il profiler ho visto che la funzione che occupa più tempo è quella che mi permette di trovare il colore e le coordinate di ogni rettangolo in quanto scorre tutta la lista dell'immagine. Non ho idea di come renderlo più veloce ho anche escluso con un if il controllo dei pixel con il colore di sfondo.

Grazie in anticipo
257 views

1 Answer

iacopomasi (5250 points)
46 65 95
by (5.3k points)

Salve @Mic_s ,

ci sono diverse soluzioni al problema, 1) una che fa uso di accesso all'immagine dentro la funzione ricorsiva ed 2) un'altra che preprocessa l'immagine prima e solo dopo applica la chiamata ricorsiva per contare i rettangoli.  Da quello che ho notato io 1) è più veloce di 2). Inoltre, implementando la strategia 1) ho notato che ci sono diverse accortezze minuziose che uno può prendere per cercare di velocizzare il codice, fondamentalmente sfruttando come i colori si ripetono.

Non ti posso dire altro, ma spero che ti aiuti.

Iacopo