5 Preguntas más frecuentes sobre la estructura de datos en la codificación de entrevistas

Si prefieres seguirme a través de mi video de YouTube, puedes verlo aquí! las estructuras de datos se utilizan para almacenar información en nuestro código. Utilizamos diferentes estructuras de datos que nos permiten añadir, acceder y eliminar datos de la manera más eficiente y aplicable para resolver nuestros problemas. En las entrevistas, la elección de la estructura de datos adecuada podría permitirle reducir la complejidad temporal de su solución, algo que es muy valorado por las empresas. Sé que he sido incapaz de optimizar algunas de las preguntas de mi entrevista sólo porque usé una estructura de datos incorrecta. Por lo tanto, hoy vamos a repasar las estructuras de datos imprescindibles para la codificación de las entrevistas Si este post es útil, por favor, considere suscribirse a mi canal de YouTube para obtener más contenido de este tipo! También si aún no lo has hecho, echa un vistazo a mi último artículo sobre los 4 Algoritmos Más Comúnmente Preguntados en las Entrevistas de Codificación!

Descargo de responsabilidad: Este puesto fue creado en base a mi experiencia en la búsqueda de pasantías y puestos de trabajo de nivel de entrada (nuevo graduado). En cualquier momento si declaro que necesita conocer una estructura de datos, esto significa que debe entender las razones para utilizarla, la complejidad del tiempo para insertar, buscar y eliminar elementos, las compensaciones entre ella y los demás, y saber cómo implementarla en el idioma de su elección. Si menciono Big-O en algún momento del artículo, me refiero al uso industrial del término (es equivalente a Big-Theta en el mundo académico). Ahora que lo hemos quitado del camino, ¡vamos a la lista!

1. Matriz

Las matrices son una estructura de datos básica que suele estar integrada en la mayoría de los idiomas. Son importantes por dos razones principales. En primer lugar, los arrays son a menudo los parámetros de las preguntas de codificación en las entrevistas. Por lo tanto, tener un fuerte conocimiento de ellos le asegurará el éxito en las entrevistas. En segundo lugar, puede implementar la mayoría de las otras estructuras de datos con un array, por lo que no puede entender cuántas otras estructuras de datos se implementan sin tener una comprensión fundamental de los arrays.

2. Lista de enlaces

Las listas enlazadas son similares a las matrices en el sentido de que son comunes en las entrevistas y pueden utilizarse para implementar otras estructuras de datos. Para este caso, recomiendo encarecidamente comprender cómo implementar esto, así como añadir métodos para añadir, buscar y eliminar valores de la lista. He tenido entrevistas en las que se me ha pedido que implemente una lista de enlaces desde cero, ¡así que sé que tiene la oportunidad de aparecer en sus entrevistas!

3. Pila y cola

La pila y las colas son estructuras de datos opuestas. Cada uno puede ser implementado con una matriz, pero son más comúnmente implementados con una Lista Vinculada. La pila es una estructura de datos LIFO (Last In, First Out), lo que significa que el último elemento que se pone es el primero en salir. Piensa en esto como si estuvieras construyendo una torre de legos. Por otro lado, la cola es una estructura de datos FIFO (First In, First Out data), lo que significa que el primer elemento que se pone es el primero en salir. Usted puede pensar en ellos como una fila en una tienda de comestibles donde la primera persona en la fila es la primera persona que llega a la caja. Conocer estas diferencias le permite elegir cuál usar en una entrevista

4. Mesa Hash

Las tablas Hash se implementan con una matriz y una función hash. La función hash toma el elemento que se quiere poner en la tabla hash y escupe un índice en el array para poner ese elemento. La mayor parte de las tablas hash es que son de complejidad temporal amortizada (no se que significa esto? tengo una definición abajo!) es O(1) para inserción, búsqueda y borrado. En primer lugar, carecen de cualquier tipo de estructura u organización, por lo que si quieres hacer algo como ordenar tus elementos o saber el orden en el que fueron insertados, las tablas hash no ofrecen esto. Segundo, se necesita una matriz más grande que el número de elementos en la tabla hash. Esto se debe a que si usted pone un nuevo elemento a través de su función hash y escupe un índice en su array donde ya tiene otro elemento, usted obtiene una colisión. Las colisiones pueden reducir la complejidad de su tiempo, por lo que nuestro objetivo es minimizar el número de colisiones al tener una matriz mayor que el número de elementos de la tabla. Esto significa que si usted está limitado en el espacio, una tabla hash puede no ser su mejor opción. La Complejidad del Tiempo Amortizado es la idea de que en la mayoría de los casos, logramos una cierta complejidad de tiempo, pero en raras ocasiones, tenemos que hacer una operación más costosa. Afortunadamente, esta operación ocurre con tan poca frecuencia que nuestra complejidad de tiempo promedio es menor. Así que para las tablas hash, decimos que se trata de una complejidad de tiempo O(1) amortizada porque sabemos que las colisiones hash son muy poco frecuentes y la mayoría de las veces sólo nos llevará O(1) tiempo realizar las 3 operaciones.

5. Árboles y gráficos

Los árboles y gráficos se construyen con la idea de tener nodos con valores y cada nodo con referencias a sus nodos adyacentes. Recomiendo comenzar con una comprensión de los árboles familiarizándose con Árboles de búsqueda binarios , Árboles n-ary , y Intentos . Con los árboles de búsqueda binarios o BSTs, conozca un BST auto-equilibrado. Algunos de los más comunes son los árboles AVL y los árboles rojos-negros. Una vez que haya dominado los árboles, tome ese conocimiento y aprenda más acerca de los gráficos, ya que son muy comunes en las preguntas más complicadas de las entrevistas. Si te gustó el post/video, no dudes en dejar un como en mi video y suscribirte a mi cuenta de YouTube para más contenido como este!

Etiquetas

Entrevista de Ingeniería de SoftwareCodificaciónCodificación de EntrevistasCodificación de EntrevistasCodificación de EntrevistasEstudios Técnicos RecientesIngeniería de SoftwareEntrevistas PreviasContinúa la Discusión