Primero, tenemos que entender qué es el retroceso recursivo. El retroceso recursivo es un tipo de búsqueda completa donde buscamos en todo el espacio de búsqueda para obtener la solución que queremos. La recursión es diferente de la iteración en que la recursión se llama a sí misma.
La idea detrás de los problemas de retroceso es esta: doy un paso. ¿Ese paso me lleva hacia la solución? Si es así, bien. Si no es así, daré un paso atrás. Aquí está el algoritmo general:
“1) ¿Dónde estoy una solución?
2) No. Ok, ¿a dónde puedo ir desde aquí? Si puedo ir a algún lado, elija un lugar para ir.
3) Ve allí.
5) ¿Era eso una solución? En caso afirmativo, devuelve verdadero!
5) Si hay lugares restantes para ir, elija uno y pase al # 3.
6) Fuera de los lugares a donde ir. Falso retorno.”
- ¿Cuál es la mejor / óptima forma de entrevistar a ingenieros de software?
- Dada una matriz indexada a cero 'A' = {1, 2, 3, ..., n} de 'n' enteros, ¿cómo podemos reorganizar los números en ella de modo que para dos números cualquiera a [i] y a [ j] (i <j), su promedio no se encuentra entre i y j?
- ¿Cómo puede uno prepararse para la entrevista de Amazon SDE 2 en 3 semanas para habilidades relacionadas con c ++?
- ¿Por qué fallaste en tu entrevista técnica de software?
- Seré entrevistado para una empresa de seguridad de software de inicio. Tengo experiencia en Java y un reclutador me pidió que mejorara mis habilidades técnicas. Además de seguir el geeksforgeeks.org común, ¿de qué otra manera debo prepararme?
Desde Harpoint Powerpoint, debemos abordar los problemas de retroceso recursivo preguntándonos:
“1. ¿Cómo puedo dividir este problema en uno o más subproblemas más pequeños? (hacer llamadas a métodos recursivos para resolver los subproblemas)
2. ¿Cuáles son los casos base? (es decir, ¿qué subproblemas son lo suficientemente pequeños como para resolverlos directamente?)
3. ¿Necesito combinar las soluciones a los subproblemas? Si es así, ¿cómo debo hacerlo?