He dado muchas entrevistas durante el año pasado, principalmente para el puesto de interno de ingeniería de software. Trataré de desglosar las preguntas formuladas en dos secciones básicas, problemas algorítmicos y rompecabezas.
Sin embargo, la mayoría de las entrevistas de programación rara vez consisten en rompecabezas. Casi todas las entrevistas que he dado fueron para empresas de “Nivel 1” y no me preguntaron un acertijo en ninguna de ellas. La mayoría de los entrevistadores le preguntarán problemas algorítmicos y, a veces, pocos problemas de diseño.
Rompecabezas
- Cómo comenzar a prepararse para una entrevista de codificación
- No puedo resolver preguntas en InterviewBit. ¿Eso significa que voy a tener un desempeño pobre en la entrevista técnica?
- ¿Cómo se prepara para una entrevista de desarrollador de software en solo 3 días?
- Dado un entero x, ¿cómo escribo el código para verificar si x puede escribirse como una potencia n ^ m (x, myn son positivas)?
- ¿Cuáles son las preguntas importantes que un entrevistador puede hacer desde la red informática?
- Juegas un juego en el que tienes permitido 3 tiradas de dados. Si en algún momento decidiste terminar el juego, obtienes el número de monedas igual al valor en la última tirada de dados. ¿Cuál es la cantidad máxima esperada de monedas que puede obtener?
- Dejar caer un huevo de un número de piso mayor que [matemáticas] N [/ matemáticas] de un edificio de 100 pisos lo romperá. Tienes que encontrar [matemáticas] N [/ matemáticas], mientras minimizas el número de gotas para el peor de los casos, si tienes 2 huevos contigo.
- ¿Cuántos puntos hay en el mundo donde al caminar una milla hacia el sur, una milla hacia el este y una milla hacia el norte llegas al lugar donde empezaste?
- Dado un conjunto de dígitos, encuentre la suma de todos los números de dígitos [matemáticos] N [/ matemáticos] cuyos dígitos pertenecen a un conjunto de dígitos dado.
Problemas algorítmicos
- Averigüe si hay un número presente en una matriz ordenada que se ha rotado circularmente.
- Dada una secuencia, encuentre si es un recorrido previo al pedido de un árbol de búsqueda binario válido.
- Dada una matriz de números [matemática] N * M [/ matemática] desde [matemática] 1 [/ matemática] a [matemática] N * M [/ matemática] (cada número ocurre solo una vez), encuentre la ruta más pequeña desde el punto de vista gráfico arriba izquierda a derecha abajo mientras se mueve hacia la derecha o hacia abajo solamente.
- Dado un float [math] N [/ math], encuentre [math] \ sqrt {N} [/ math].
- Dado el conjunto de denominaciones, encuentre la cantidad mínima de monedas necesarias para formar una suma. Una moneda de cualquier denominación puede usarse en múltiples tipos.
- Dado un conjunto de denominaciones, encuentre el número mínimo de denominaciones distintas requeridas para formar una suma. Una moneda de cualquier denominación puede usarse en múltiples tipos.
- Dado [math] N [/ math] globos, si explotas [math] i ^ {th} [/ math] globo obtienes [math] A_ {i-1} * A_i * A_ {i + 1} [/ math ] monedas y luego [math] i ^ {th} [/ math] y [math] (i + 1) ^ {th} [/ math] los globos se vuelven adyacentes. Encuentra la cantidad máxima de monedas que puedes juntar.
- Dada una cadena [matemática] S [/ matemática] y un conjunto de caracteres, busque la ventana más pequeña en [matemática] S [/ matemática] que contenga un conjunto dado de caracteres.
- Dada una matriz no ordenada donde cada elemento está a una distancia como máximo [matemática] K [/ matemática] desde su posición correcta (es decir, posición en una matriz ordenada), clasifique la matriz.
- Dado un árbol binario, verifique si es un Árbol de búsqueda binaria.
- Encuentre el número de componentes conectados en negro en una matriz en blanco y negro. Otra versión es si la matriz es tridimensional.
- Ordene una matriz almacenada en una cinta, donde exista un puntero que apunte a un elemento en un índice y las operaciones permitidas en el puntero sean
read
,write
,advance
,goto beginning
. Tienes 5 cintas vacías cada una de tamaño 100 que puedes usar. - Dadas las matrices ordenadas [math] N [/ math], busque el elemento más pequeño [math] K ^ {th} [/ math] si todas las matrices están fusionadas.
- Tiene 4 cuerdas, puede reorganizarlas de la forma que desee. Debe maximizar el prefijo común más largo de las 4 cadenas después de la reorganización.
- Hay [matemática] N [/ matemática] puntos en el plano 2-D. Cada punto tiene un color R, B, G. Encuentre un triángulo de área más grande con estos puntos de manera que uno de los lados del triángulo sea paralelo a cualquier eje y cada vértice tenga un punto de color diferente.
- Encuentra trillizos en una matriz dada que suman cero.
- Una cadena como
a2b3c5
descomprime enaabbbccccc
. Comprimir una cadena dada. - Clonar una lista vinculada.
- Clonar un gráfico dado en forma de lista de adyacencia.
- Invertir una lista vinculada.
- Dado un programa de Python, determine la línea en la que se produce un error de compilación debido a la sangría.
- Dado un diccionario y varias consultas de cadenas, para cada consulta, devuelva las cadenas presentes en el diccionario anagrama a la cadena de consulta.
- Encuentre la mediana de una secuencia de enteros en ejecución cada vez que se agrega un nuevo número a la secuencia.
A pesar de que podría haber resuelto cada uno de ellos, absorbí algunos de ellos en mis entrevistas y no pude hacerlo a través de ninguna compañía en el extranjero. Sin embargo, de todas las empresas indias a las que me había postulado, eliminé todos los procesos de entrevistas.
Supongo que su motivo para hacer esta pregunta podría estar preparándose para entrevistas técnicas y, aunque he respondido la pregunta, no me importa darle algunos consejos no solicitados. Su enfoque actual debe ser algo así como visitar sitios web como glassdoor , geeksforgeeks , etc. y resolver problemas y acertijos o probablemente ir al azar a través de blogs diseminados por todo Internet. Hay muy poca estructura para el contenido para el que se está preparando de esta manera.
Considerando el escenario, uno de mis mayores ha comenzado InterviewBit.com. Todo el contenido está bien estructurado; sentirás que tienes un entrenador personal. Hay varias características que puede escuchar del cofundador mismo. La respuesta de Anshuman Singh a ¿Cómo puedo conseguir un trabajo en Facebook o Google en 6 meses? Necesito un plan de trabajo conciso para construir un conjunto de habilidades lo suficientemente bueno. ¿Debo unirme a alguna otra startup o construir mis propios proyectos / start-ups? ¿Debería centrarme en practicar estructuras de datos y algoritmos?