paint-brush
Más de 50 preguntas de entrevista sobre estructura de datos y algoritmos para programadorespor@javinpaul
661,493 lecturas
661,493 lecturas

Más de 50 preguntas de entrevista sobre estructura de datos y algoritmos para programadores

por Javin Paul9m2019/07/31
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow
ES

Demasiado Largo; Para Leer

Las entrevistas de codificación se componen principalmente de preguntas basadas en algoritmos y estructura de datos, así como algunas de las preguntas lógicas como, ¿Cómo se intercambian dos números enteros sin usar una variable temporal? Estas preguntas no solo lo ayudarán a desarrollar sus habilidades para resolver problemas, sino que también mejorarán su conocimiento de la estructura de datos de matrices. No está garantizado que le hagan estas preguntas, pero le darán una idea suficiente de los tipos de preguntas que puede esperar en una entrevista de trabajo de programación real.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Más de 50 preguntas de entrevista sobre estructura de datos y algoritmos para programadores
Javin Paul HackerNoon profile picture

Las entrevistas de codificación se componen principalmente de preguntas basadas en algoritmos y estructura de datos, así como algunas de las preguntas lógicas como, ¿Cómo se intercambian dos números enteros sin usar una variable temporal?

Hay muchos graduados en informática y programadores que solicitan funciones de programación, codificación y desarrollo de software en nuevas empresas como
Uber y Netflix. Grandes organizaciones como Amazon , Microsoft y Google ; y empresas basadas en servicios como Infosys o Luxsoft, pero muchas de ellas no tienen idea de qué tipo de preguntas de entrevista de programación esperar cuando solicita un trabajo con estas empresas.

En este artículo, compartiré algunas preguntas frecuentes de entrevistas de programación de diferentes entrevistas para programadores con diferentes niveles de experiencia, desde personas que se acaban de graduar de la universidad hasta programadores con uno o dos años de experiencia .

Creo que es útil dividir las preguntas de la entrevista de codificación en diferentes
áreas temáticas. Las áreas temáticas que he visto con mayor frecuencia en las entrevistas son matriz, lista enlazada, cadena, árbol binario, así como preguntas de algoritmos (por ejemplo, algoritmo de cadena, algoritmos de clasificación como clasificación rápida o clasificación radix , y otros misceláneos), y eso es lo que encontrarás en este artículo.

No está garantizado que le hagan estas preguntas algorítmicas o de estructura de datos o codificación, pero le darán una idea suficiente de los tipos de preguntas que puede esperar en una entrevista de trabajo de programación real.

Una vez que haya respondido a estas preguntas, debe sentirse lo suficientemente seguro como para asistir a cualquier entrevista telefónica o cara a cara.

Por cierto, no tiene sentido intentar estas preguntas si no tiene suficiente conocimiento de la estructura de datos y los algoritmos esenciales o si no los ha tocado durante años.

En ese caso, deberías tomar un buen curso como Algorithms and Data Structures Part 1 and 2 Por Robert Horvick para actualizar sus habilidades de DS y algoritmos.

Mira este video relacionado sobre la programación a continuación .

50 preguntas comunes de la entrevista sobre algoritmos

Sin más preámbulos, aquí está mi lista de algunas de las preguntas más frecuentes de entrevistas de codificación de entrevistas de trabajo de programación :

1. Codificación de matriz y estructuras de datos Preguntas de la entrevista

Una matriz es la estructura de datos más fundamental, que almacena elementos en una ubicación de memoria contigua. También es uno de los temas queridos de
entrevistadores y escuchará muchas preguntas sobre una matriz en cualquier entrevista de codificación , por ejemplo, invertir una matriz, ordenar la matriz o buscar elementos en la matriz.

El beneficio clave de una estructura de datos de matriz es que ofrece una búsqueda rápida de O(1) si conoce el índice, pero agregar y eliminar un elemento de una matriz es lento porque no puede cambiar el tamaño de la matriz una vez que se crea.

Para crear una matriz más corta o más larga, debe crear una nueva matriz y copiar todos los elementos del antiguo al nuevo.

La clave para resolver preguntas basadas en matrices es tener un buen conocimiento de la estructura de datos de matrices, así como de los constructores básicos de programación, como los operadores de bucle, recursión y fundamentales.

Estas son algunas de las preguntas populares de la entrevista de codificación basada en matrices para su práctica:

  1. ¿Cómo encuentra el número que falta en una matriz de enteros dada de 1 a 100? ( solución )
  2. ¿Cómo encuentra el número duplicado en una matriz de enteros dada? ( solución )
  3. ¿Cómo encuentras el número más grande y más pequeño en una matriz de enteros sin ordenar? ( solución )
  4. ¿Cómo encuentras todos los pares de una matriz de enteros cuya suma es igual a un número dado? ( solución )
  5. ¿Cómo encuentra números duplicados en una matriz si contiene múltiples duplicados? ( solución )
  6. ¿Cómo se eliminan los duplicados de una matriz determinada en Java? ( solución )
  7. ¿Cómo se ordena una matriz de enteros usando el algoritmo de clasificación rápida? ( solución )
  8. ¿Cómo elimina los duplicados de una matriz en su lugar? ( solución )
  9. ¿Cómo se invierte una matriz en su lugar en Java? ( solución )
  10. ¿Cómo se eliminan los duplicados de una matriz sin usar ninguna biblioteca? ( solución )

Estas preguntas no solo lo ayudarán a desarrollar sus habilidades para resolver problemas, sino que también mejorarán su conocimiento de la estructura de datos de matriz.

Si necesita preguntas más avanzadas basadas en una matriz, también puede ver The Coding Interview Bootcamp: Algorithms + Data Structures , un curso de estilo bootcamp sobre algoritmos, especialmente diseñado para
preparación de entrevistas para conseguir un trabajo en gigantes técnicos como Google,
Microsoft, Apple, Facebook, etc.

Y, si cree que 10 no son suficientes preguntas y necesita más práctica, también puede consultar esta lista de 30 preguntas de matriz .

2. Preguntas de la entrevista de programación de listas vinculadas

Una lista enlazada es otra estructura de datos común que complementa la estructura de datos de matriz. Similar a la matriz, también es una estructura de datos lineal y
almacena elementos de forma lineal.

Sin embargo, a diferencia de la matriz, no los almacena en ubicaciones contiguas; en cambio, están dispersos por todas partes en la memoria, que está conectada entre sí mediante nodos.

Una lista enlazada no es más que una lista de nodos donde cada nodo contiene el valor almacenado y la dirección del siguiente nodo.

Debido a esta estructura, es fácil agregar y eliminar elementos en una lista enlazada , ya que solo necesita cambiar el enlace en lugar de crear la matriz, pero la búsqueda es difícil y, a menudo, requiere O (n) tiempo para encontrar un elemento en el lista enlazada simple.

Este artículo proporciona más información sobre la diferencia entre una matriz y estructuras de datos de lista enlazada.

También viene en variedades como una lista de enlaces individuales, que le permite atravesar en una dirección (hacia adelante o hacia atrás); una lista doblemente enlazada ,
que le permite atravesar en ambas direcciones (hacia adelante y hacia atrás);
y finalmente, la lista enlazada circular, que forma un círculo.

Para resolver preguntas basadas en listas enlazadas, es importante un buen conocimiento de la recursividad , porque una lista enlazada es una estructura de datos recursiva .

Si toma un nodo de una lista enlazada, la estructura de datos restante es
sigue siendo una lista enlazada, y debido a eso, muchos problemas de listas enlazadas han
soluciones recursivas más simples que las iterativas.

Estas son algunas de las preguntas de entrevista de lista enlazada más comunes y populares y sus soluciones:

  1. ¿Cómo encuentra el elemento medio de una lista enlazada individualmente en una sola pasada? ( solución )
  2. ¿Cómo verifica si una lista enlazada dada contiene un ciclo? ¿Cómo encuentras el nodo inicial del ciclo? ( solución )
  3. ¿Cómo se invierte una lista enlazada? ( solución )
  4. ¿Cómo se invierte una lista de enlaces simples sin recursividad? ( solución )
  5. ¿Cómo se eliminan los nodos duplicados en una lista enlazada no ordenada? ( solución )
  6. ¿Cómo encuentras la longitud de una lista enlazada individualmente? ( solución )
  7. ¿Cómo se encuentra el tercer nodo desde el final en una lista de enlaces simples? ( solución )
  8. ¿Cómo encuentras la suma de dos listas enlazadas usando Stack? ( solución )

Estas preguntas también lo ayudarán a desarrollar sus habilidades para resolver problemas.
como mejorar su conocimiento de la estructura de datos de la lista enlazada.

Si tiene problemas para resolver estas preguntas de codificación de listas vinculadas, entonces
sugiero que actualice su estructura de datos y habilidad de algoritmos yendo
a través de estructuras de datos y algoritmos: curso Deep Dive usando Java .

También puede consultar esta lista de 30 preguntas de entrevista de lista enlazada para más preguntas de práctica.

3. Preguntas de la entrevista de codificación de cadenas

Junto con las estructuras de datos de matriz y lista enlazada, una cadena es otra opción popular.
Tema sobre programación de entrevistas de trabajo. Nunca he participado en un
entrevista de codificación en la que no se hicieron preguntas basadas en cadenas .

Lo bueno de la cadena es que si conoce la matriz, puede resolver fácilmente las preguntas basadas en cadenas porque las cadenas no son más que una matriz de caracteres .

Entonces, todas las técnicas que aprende al resolver preguntas de codificación basadas en matrices
también se puede usar para resolver preguntas de programación de cadenas.

Aquí está mi lista de preguntas frecuentes sobre codificación de cadenas de entrevistas de trabajo de programación:

  1. ¿Cómo se imprimen caracteres duplicados de una cadena? ( solución )
  2. ¿Cómo verificas si dos cadenas son anagramas entre sí? ( solución )
  3. ¿Cómo se imprime el primer carácter no repetido de una cadena? ( solución )
  4. ¿Cómo se puede invertir una cadena dada usando la recursividad? ( solución )
  5. ¿Cómo verifica si una cadena contiene solo dígitos? ( solución )
  6. ¿Cómo se encuentran los caracteres duplicados en una cadena? ( solución )
  7. ¿Cómo se cuenta un número de vocales y consonantes en una cadena dada? ( solución )
  8. ¿Cómo se cuenta la aparición de un carácter dado en una cadena? ( solución )
  9. ¿Cómo encuentras todas las permutaciones de una cadena? ( solución )
  10. ¿Cómo invierte palabras en una oración dada sin usar ningún método de biblioteca? ( solución )
  11. ¿Cómo verificas si dos cuerdas son una rotación entre sí? ( solución )
  12. ¿Cómo verifica si una cadena dada es un palíndromo? ( solución )

Estas preguntas ayudan a mejorar su conocimiento de la cadena como estructura de datos. Si puede resolver todas estas preguntas de cadenas sin ninguna ayuda, entonces está en buena forma.

Para preguntas más avanzadas, le sugiero que resuelva los problemas dados en el Manual de diseño de algoritmos de Steven Skiena , un libro con las preguntas más difíciles sobre algoritmos.

Si necesita más práctica, aquí hay otra lista de 20 preguntas de codificación de cadenas .

4. Preguntas de la entrevista de codificación de árbol binario

Hasta ahora, hemos visto solo la estructura de datos lineal, pero todos
la información en el mundo real no se puede representar de forma lineal,
y ahí es donde ayuda la estructura de datos de árbol.

La estructura de datos de árbol es una estructura de datos que le permite almacenar sus datos de forma jerárquica. Dependiendo de cómo almacene los datos, existen diferentes tipos de árboles, como un árbol binario , donde cada nodo tiene, como máximo, dos nodos secundarios.a

Junto con su árbol de búsqueda binaria primo cercano, también es una de las estructuras de datos de árbol más populares. Por lo tanto, encontrará muchas preguntas basadas en ellos, como atravesarlos, contar nodos, encontrar profundidad y verificar si están equilibrados o no.

Un punto clave para resolver las preguntas del árbol binario es un sólido conocimiento de la teoría, por ejemplo, cuál es el tamaño o la profundidad del árbol binario, qué es una hoja y
qué es un nodo, así como una comprensión del recorrido popular
algoritmos, por ejemplo, antes, después y en orden transversal.

Aquí hay una lista de preguntas populares de codificación basada en árboles binarios de entrevistas de trabajo de ingenieros de software o desarrolladores:

  1. ¿Cómo se implementa un árbol de búsqueda binario? ( solución )
  2. ¿Cómo se realiza el recorrido de preorden en un árbol binario dado? ( solución )
  3. ¿Cómo se atraviesa un árbol binario dado en preorden sin recursividad? ( solución )
  4. ¿Cómo se realiza un recorrido en orden en un árbol binario dado? ( solución )
  5. ¿Cómo se imprimen todos los nodos de un árbol binario dado utilizando el recorrido en orden sin recursividad? ( solución )
  6. ¿Cómo se implementa un algoritmo de recorrido posterior al pedido? ( solución )
  7. ¿Cómo se atraviesa un árbol binario en un recorrido posterior al orden sin recursividad? ( solución )
  8. ¿Cómo se imprimen todas las hojas de un árbol de búsqueda binario? ( solución )
  9. ¿Cómo se cuenta una cantidad de nodos hoja en un árbol binario dado? ( solución )
  10. ¿Cómo se realiza una búsqueda binaria en una matriz dada? ( solución )

Si cree que su comprensión de la codificación de árboles binarios es inadecuada
y no puede resolver estas preguntas por su cuenta, le sugiero que regrese
y elija un buen curso de estructura de datos y algoritmos como From 0 to 1: Data Structures & Algorithms in Java .

Si necesita más recomendaciones, aquí está mi lista de libros y cursos útiles sobre algoritmos de estructura de datos para comenzar.

5. Preguntas de la entrevista de codificación miscelánea

Además de las preguntas basadas en la estructura de datos, la mayor parte del trabajo de programación
las entrevistas también preguntan algoritmo, diseño, manipulación de bits y general
preguntas basadas en la lógica, que describiré en esta sección.

Es importante que practiques estos conceptos porque a veces
volverse difícil de resolver en la entrevista real. Habiéndolos practicado
antes no sólo te familiariza con ellos, sino que también te da más
confianza al explicar la solución al entrevistador.

  1. ¿Cómo se implementa un algoritmo de clasificación de burbujas? ( solución )
  2. ¿Cómo se implementa un algoritmo iterativo de clasificación rápida? ( solución )
  3. ¿Cómo se implementa un algoritmo de clasificación por inserción? ( solución )
  4. ¿Cómo se implementa un algoritmo de clasificación por fusión? ( solución )
  5. ¿Cómo se implementa un algoritmo de clasificación de cubos? ( solución )
  6. ¿Cómo se implementa un algoritmo de clasificación de conteo? ( solución )
  7. ¿Cómo se implementa un algoritmo de clasificación radix? ( solución )
  8. ¿Cómo intercambias dos números sin usar la tercera variable? ( solución )
  9. ¿Cómo verificas si dos rectángulos se superponen entre sí? ( solución )
  10. ¿Cómo se diseña una máquina expendedora? ( solución )

Si necesita más preguntas de codificación de este tipo, puede obtener ayuda de libros como Cracking The Code Interview , de Gayle Laakmann McDowell. que presenta más de 189 preguntas y soluciones de programación. Un buen libro para prepararte para programar entrevistas de trabajo en poco tiempo.

Por cierto, cuantas más preguntas resuelva en la práctica, mejor será su
la preparación será. Entonces, si crees que 50 no es suficiente y necesitas
más, luego consulte estas 50 preguntas de programación adicionales para entrevistas telefónicas y estos libros y cursos para una preparación más completa.

Ahora está listo para la entrevista de codificación

Estas son algunas de las preguntas más comunes fuera de la estructura de datos y
algoritmos que te ayudan a hacerlo realmente bien en tu entrevista.

También he compartido muchas de estas preguntas en mi blog , así que si estás realmente interesado, siempre puedes ir allí y buscarlas.

Estas preguntas comunes de codificación, estructura de datos y algoritmos son las que necesita saber para entrevistarse con éxito con cualquier empresa, grande o pequeña, para cualquier nivel de trabajo de programación.

Si estás buscando un trabajo de programación o desarrollo de software en 2018,
puede comenzar su preparación con esta lista de preguntas de codificación.

Esta lista proporciona buenos temas para preparar y también ayuda a evaluar su
preparación para descubrir sus áreas de fortaleza y debilidad.

Un buen conocimiento de la estructura de datos y los algoritmos es importante para
éxito en la codificación de entrevistas y ahí es donde debe enfocarse la mayor parte del tiempo
Su atención.

Aprendizaje adicional
Estructuras de datos y algoritmos: inmersión profunda usando Java
10 libros para preparar entrevistas de trabajo de programación técnica/codificación
10 libros de algoritmos que todo programador debería leer
Los 5 mejores libros de estructuras de datos y algoritmos para desarrolladores de Java
De 0 a 1: estructuras de datos y algoritmos en Java
Estructura de datos y análisis de algoritmos: entrevista de trabajo

Notas de cierre

Gracias, Llegaste al final del artículo… ¡Buena suerte con tu entrevista de programación! Ciertamente no será fácil, pero siguiendo esta hoja de ruta y esta guía, estará un paso más cerca de convertirse en un ingeniero de DevOps .

Si le gusta este artículo, compártalo con sus amigos y colegas, ¡y no olvide seguir a javinpaul en Twitter!

PD: si necesita algunos recursos GRATUITOS, puede consultar esta lista de cursos gratuitos de estructura de datos y algoritmos para comenzar su preparación.