Mirando los desafíos en LeetCode, varían en dificultad. Clonar un gráfico es un algoritmo de recorrido directo. Revertir los bits de un número entero debe ser fácil, ya sea con el violín de bits o incluso con un método de extracción de fuerza bruta. Aquí están los pasos generales de resolución de problemas:
1. Primero debes entender el problema. Esto es más de la mitad de la batalla. Leer el problema no es suficiente. Tienes que entender lo que está preguntando el problema. Por ejemplo, un problema dice: “Dada una cadena, encuentre la longitud de la subcadena más larga sin repetir caracteres. Por ejemplo, la subcadena más larga sin repetir letras para” abcabcbb “es” abc “, cuya longitud es 3. Para” bbbbb “La subcadena más larga es” b “, con una longitud de 1.”
¿Cómo entiendes lo que está preguntando este problema? En este caso, el problema da dos ejemplos que lo hacen fácil de entender. Encuentra la subcadena más larga que no tenga caracteres repetidos. Realmente sabes que lo entiendes si puedes crear tu propio ejemplo de lo que está buscando; por ejemplo, si la cadena es “bbbabbbb”, la respuesta sería “ab” con una longitud de 2 (o “ba” con una longitud de 2).
2. Una vez que entiendas, POR EJEMPLO, formularás un plan para alcanzar la meta. En nuestro ejemplo de cadena, comience con la idea más simple que tenga. Una forma de hacerlo es comenzar con el objetivo y trabajar hacia atrás. Entonces, con nuestro ejemplo de cadena, sabemos que el objetivo es una subcadena (parte de la cadena). Por lo tanto, tengo que sacar una cadena de la primera cadena y declararla como subcadena. Así que en mi ejemplo “bbbabbb” – la primera y más evidente subcadena es la primera letra “b”. ¿Puedo devolver eso como respuesta? No, porque si bien es como subcadena, no sé si es la subcadena más larga. Por lo tanto, una forma de comprobarlo es continuar por la cadena con las siguientes letras y, si la siguiente no se encuentra en la subcadena, la agregamos a la subcadena y tenemos una nueva subcadena candidata. Entonces, comience a trabajar esto en papel … así:
subcadena en el índice 0: “b”
siguiente letra en el índice 1 (comenzando desde 0): “b”
¿Está la siguiente letra en subcadena? SÍ
por lo tanto, la subcadena candidata sigue siendo “b” con una longitud de 1
Ahora, continúa, trata de hacer un mejor candidato.
Comenzando ahora en el índice 1 para nuestro NUEVO candidato:
subcadena en el índice 1: “b”
siguiente letra en el índice 2: “b”
¿Está la siguiente letra en subcadena? SÍ
por lo tanto, la subcadena candidata sigue siendo “b” con una longitud de 1
subcadena en el índice 2: “b”
siguiente letra en el índice 3: “a”
¿Está la siguiente letra en subcadena? NO, entonces agrégalo
por lo tanto, la subcadena candidata ahora es “ba” con una longitud 2
siguiente letra en el índice 4: “b”
¿Está la siguiente letra en subcadena? SÍ
entonces, la subcadena candidata sigue siendo “ba” con una longitud de 2 …
Puede ver cómo va este patrón y cómo continuará … ahora, tiene una solución potencial. Algunas personas lo llamarían método de fuerza bruta, pero no se preocupen por eso. El punto más importante es que resolviste una solución en papel.
- ¿Qué se necesita para tener carisma?
- ¿Cuál es la diferencia entre una filosofía personal y la actitud de una persona?
- Cómo mejorar mis habilidades habladas desde cero
- Cómo convertirse en un mejor informático.
- Estoy en mi último año de licenciatura en ingeniería informática y no tengo un conocimiento sólido de nada. ¿Qué debo hacer para mejorar mi conocimiento?
3. Convierta su enfoque en el código fuente de la computadora y pruébelo con ejemplos “representativos”, al menos 3.
Ese es el enfoque básico. Es importante comenzar con pruebas simples y proceder a las más difíciles. ¡Los mejores deseos!