Cum obținem distanța minimă?
Învață pas cu pas, apoi exersează.
Explicație
BFS folosește o coadă: primul intrat este primul explorat. Din start, vecinii liberi au distanța 1. Vecinii lor încă nevizitați au distanța 2, apoi 3 și așa mai departe. Deoarece explorăm în această ordine, prima distanță atribuită unei celule este minimă atunci când fiecare mutare costă un pas. Inițializează dist cu -1, pune dist[start]=0 și adaugă startul în coadă. Pentru fiecare vecin valid nevizitat: dist[vecin]=dist[curent]+1. Dacă destinația rămâne -1, nu există drum. Verifică limitele înainte de a accesa matricea și nu porni dintr-un perete.
Exersează în CodePath
Creează un cont gratuit pentru a accesa editorul, testele, feedbackul și progresul cursului.
Începe gratuitAi deja cont? Deschide activitatea