Cómo abordar sistemáticamente los problemas de retroceso

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.”

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?

More Interesting

Cómo prepararse para entrevistas de ingenieros de software con empresas de telecomunicaciones y productos de redes como Cisco, Juniper, AT&T, etc.

¿Cuál es la estructura de datos y UX requerida para buscar fácilmente el contenido de Quora? ¿Qué se necesitaría para presentar esto de una manera simple y requerir el tiempo mínimo de lectura?

¿Cuáles son algunas preguntas que se le pueden hacer a un desarrollador de React.js en una entrevista técnica?

No me entrevistaron en absoluto en el programa Google STEP. ¿Hay algo mal conmigo?

Dado un flujo continuo de enteros, ¿podemos encontrar el máximo dado cualquier rango arbitrario (a, b) en el tiempo O (log t)?

Si soy ecológico en TopCoder, ¿puedo pasar entrevistas a las principales empresas tecnológicas? ¿La mayoría de las personas que aprueban las entrevistas tienen la capacidad de salir bien en las competencias de TopCoder? Si me fuera mejor en los concursos de TopCoder, ¿se transferirían las habilidades a las entrevistas?

¿Cuáles son algunas preguntas comunes en una entrevista de cuatro grandes?

¿Qué debo hacer si obtendré un título de CS y tengo poco conocimiento de las estadísticas, pero me inscribí en un programa de ciencia de datos de MS?

¿Cuál es la mejor manera de prepararse para las entrevistas con desarrolladores de iOS? (Rápido)

¿Cómo debo comenzar a revisar de manera competente mis conceptos de C / C ++ para entrevistas?

¿Puedo prepararme para las preguntas de la entrevista de diseño del sistema en 10 días?

¿Por qué el entrevistador hace preguntas algorítmicas de codificación agrietadas en las entrevistas de programación técnica?

¿Cómo debo prepararme para las entrevistas de codificación en el campus?

Cómo contar el número de formas únicas en una matriz que contiene muchas islas de 1s

Algoritmo para dividir un número en un grupo ordenado diferente de modo que la suma de esos números sea el número original