Entrevistador: “¿Cómo resolverías el problema X ?”
Candidato A: “Oh, eso es fácil”. (Se procede a implementar una solución de fuerza bruta. La idea es sólida. Aparte de algunos pequeños errores, la solución funciona).
Entrevistador: “¿Hay alguna solución mejor?”
- Cómo encontrar la subcadena de repetición máxima de tamaño n
- ¿Por qué usamos un puntero de estructura dentro de una definición de estructura en C?
- Cómo encontrar un elemento duplicado en una matriz con una complejidad temporal menor que O (n ^ 2) y una complejidad espacial de O (1)
- ¿Qué significa una entrevista en la pantalla del teléfono?
- Cómo dar una buena entrevista de codificación técnica
El candidato A piensa por un momento, sugiere una pequeña mejora que lo aceleraría dos veces, luego aparece vacío y lo admite.
Entrevistador: “¿Cómo resolverías el problema X?”
Candidato B: “Déjame pensar … Oh, eso podría ser difícil, probablemente sea NP-completo porque realmente necesitas resolver el problema Y. Cuéntame más sobre el problema. ¿Qué tan grandes son los datos que necesito procesar? esos costos? Sería útil si fueran números enteros pequeños. Otra posibilidad sería redondearlos, entonces al menos podríamos calcular una solución aproximada de manera eficiente. ¿Sería aceptable? ”
Entrevistador: “¿Cómo resolverías el problema X?”
Candidato C: “Ese es un problema NP-completo. No se puede resolver”.
Ahora ponte en el lugar del entrevistador. Si tuviera que contratar a uno de estos candidatos, ¿cuál sería? Si tuviera que contratar a dos, ¿quién sería el segundo?
(Sugerencia: las empresas realmente no necesitan empleados que se rindan tan pronto como crean que un problema es difícil de resolver).