Si te quedas atascado en una entrevista de codificación, no estás necesariamente jodido, depende de las circunstancias. Si es porque no está completamente familiarizado con las técnicas necesarias para resolver el problema, es posible que tenga algunas dificultades, pero también puede estar atrapado simplemente porque está abordando el problema desde el ángulo equivocado .
Por lo general, cuando estás atascado necesitas retroceder un poco y probar una técnica diferente. La única pregunta es cuánto retroceder. Sus opciones, en términos generales, son:
- Sigue probando tus métodos actuales . Puede hacer esto si está convencido de que su enfoque actual es correcto, pero tiene dificultades para reunir los detalles exactos o si su algoritmo no cubre algún caso especial. En este caso, trate de identificar y comunicar con precisión al entrevistador qué detalles está trabajando para resolver o por qué el caso especial que se está perdiendo es especial y debería ser cubierto por sus métodos actuales. Al hacerlo, puede descubrirlo, o puede darse cuenta de por qué no funcionará.
- Siga usando su marco existente para ver el problema, pero busque nuevas optimizaciones. Un ejemplo sería que ha resuelto el problema utilizando la programación dinámica, pero con su formulación actual obtiene una complejidad de tiempo pobre y ahora no sabe cómo mejorarla. Podría ver si puede reformular la recurrencia o si puede usar una estructura de datos para acelerar algunas operaciones.
- Prueba un enfoque completamente nuevo. Si bien algunos problemas pueden resolverse ingenuamente y luego optimizarse iterativamente para obtener mejores y mejores soluciones, a veces tiene que abordar un problema desde un ángulo completamente nuevo para realizar una mejora adicional en la complejidad del tiempo.
¿Cuál de estos debes hacer? No hay bala de plata. Todo depende de cuán atascado te sientas. ¿Parece la solución al alcance de la mano? Tal vez siga intentándolo entonces, o haga algunos ajustes como probar una estructura de datos diferente. ¿O parece que desde su modo de pensar actual, no hay forma de avanzar en absoluto, se siente como si hubiera tomado un camino completamente equivocado? Considere comenzar de nuevo en ese caso.
- Cómo prepararse para la ronda de entrevistas de Oracle OFSS
- He estado trabajando en preguntas de programación por un tiempo. A veces, las preguntas fáciles parecen una lucha cuesta arriba. ¿Es una señal de agotamiento?
- ¿Cómo puedo equilibrar los paréntesis en una cadena usando un número mínimo de ediciones?
- ¿Cómo se le ocurre a la gente un algoritmo eficiente con baja complejidad de tiempo y espacio durante una entrevista?
- Dada una matriz representada como int [n] [n], gírela 90 grados en sentido horario en el lugar. (En el lugar significa un mínimo de memoria adicional para usar, es decir, no haga una nueva matriz para copiar).
Una cosa muy importante a tener en cuenta es que los callejones sin salida y el retroceso en su solución no son tiempo perdido . Le estás mostrando a tu entrevistador cómo resuelves los problemas, y le estás mostrando que cuando te enfrentas a un problema difícil, no te rindes, no dices “bueno, estoy jodido de todos modos”, pero retrocedes e intentas otros métodos en su búsqueda de una solución. Eso tiene mucho valor.
Es natural tener que retroceder en la búsqueda de su solución mientras intenta mejorar el algoritmo. No es raro que la solución ingenua use técnicas completamente diferentes de una solución más optimizada, por lo que si comienza con la solución ingenua, es perfectamente razonable que pueda comenzar de nuevo en algún momento. Esto no sería negativo con el entrevistador.
Por último, si está atascado, no tenga miedo de probar un nuevo enfoque, incluso si es posible, el enfoque actual puede conducir a una solución (si no siente que está cerca). Muchos problemas tienen múltiples enfoques posibles, por lo que si ve otro ángulo de un problema, considere intentarlo.