paint-brush
Principales patrones de LeetCode para usar en entrevistas de codificación FAANGpor@aahmad
19,029 lecturas
19,029 lecturas

Principales patrones de LeetCode para usar en entrevistas de codificación FAANG

por Arslan Ahmad3m2022/09/07
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Todo ingeniero de software debe aprender patrones de codificación como Sliding Window y Two Pointers, Two Heaps, etc. Al hacerlo, los ingenieros de software podrán desarrollar la habilidad de "asignar un nuevo problema a uno existente". En esta publicación, aprenderemos qué patrones de codificación tienen el mayor retorno de la inversión para los ingenieros de software mientras se preparan para las entrevistas técnicas.
featured image - Principales patrones de LeetCode para usar en entrevistas de codificación FAANG
Arslan Ahmad HackerNoon profile picture
0-item


La preparación para la codificación de entrevistas se puede hacer más fácil si se enfoca en los patrones de codificación. Todo ingeniero de software debe aprender patrones de codificación como Sliding Window , Two Pointers , Two Heaps , etc. Al hacerlo, los ingenieros de software podrán desarrollar la habilidad de "asignar un nuevo problema a uno existente". En esta publicación, aprenderemos qué patrones de codificación tienen el mayor retorno de la inversión para los ingenieros de software.


Grokking the Coding Interview presentó una lista de 18 patrones para codificar preguntas en función de las similitudes en las técnicas necesarias para resolverlas. La idea del curso es enseñar patrones de codificación famosos para que, una vez que alguien se familiarice con un patrón, sea capaz de resolver decenas de problemas con él.

Distribución de problemas de LeetCode

LeetCode (LC), siendo el depósito más grande de problemas de codificación, contiene más de 2k+ preguntas. Cada pregunta en LC se puede etiquetar con uno o más temas. Estos temas son estructuras de datos como Array, HashTable, Tree, etc., o técnicas algorítmicas como Greedy, Divide and Conquer, Sorting, etc., o patrones de codificación como Sliding Window, Depth First Search, Topological Sort, etc. Aquí está el distribución de temas para las preguntas de LC:


Distribución de temas de LeetCode


El tema principal es Array con 1142 problemas, seguido de String con 549 problemas y así sucesivamente. Echemos un vistazo más de cerca a cada categoría de temas, a saber, estructuras de datos, algoritmos y patrones de codificación.

Principales estructuras de datos con el mejor retorno de la inversión

Aquí están las principales estructuras de datos con el mayor retorno de la inversión:


  1. Matriz (1142 problemas)
  2. Cuerda (549)
  3. Tabla hash (392)
  4. Árbol (191)
  5. Matriz (171)
  6. Pila (128)
  7. Montón o cola de prioridad (107)
  8. Gráfico (102)
  9. Lista enlazada (69)
  10. tria (44)

Las mejores técnicas algorítmicas con el mejor ROI

Estas son las principales técnicas algorítmicas con el mayor retorno de la inversión:


  1. Programación Dinámica (383)
  2. Clasificación (253)
  3. Codicioso (248)
  4. Búsqueda binaria (186)
  5. Retrocediendo (91)
  6. recursividad (44)
  7. Divide y vencerás (38)

Principales patrones de codificación con el mejor retorno de la inversión

Estos son los principales patrones de codificación con el mayor retorno de la inversión:


  1. Primera búsqueda en profundidad (250)
  2. Primera búsqueda en amplitud(198)
  3. Búsqueda binaria (186)
  4. Dos punteros (147)
  5. Ventana Deslizante (72)
  6. Pila monótona (44)
  7. Unión Encontrar (63)
  8. Memoización (32)
  9. Clasificación topológica (28)
  10. Árbol de segmentos (27)

Los mejores patrones de codificación con el ROI más alto

Combinando todas las categorías de los datos anteriores, aquí está la lista de los mejores patrones/técnicas de codificación con el ROI más alto:


1. Dos punteros (matrices, cadenas, puntero rápido y lento )

Este patrón cubre un gran conjunto de preguntas relacionadas con matrices y cadenas, que son las estructuras de datos etiquetadas más altas. Puntero rápido y lento puede entenderse fácilmente como una variación del patrón de dos punteros.


2. Ventana deslizante (matrices, cadenas, tablas hash)

Sliding Window cubre la mayoría de los problemas relacionados con las principales estructuras de datos como Arrays, Strings y HashTables.


3. Primera búsqueda de profundidad de árbol y gráfico ( matrices transversales )

La mayoría de los problemas de árboles y gráficos se pueden resolver utilizando la primera búsqueda en profundidad (DFS). Matrix Traversal, que también es un patrón basado en DFS, cubre la mayoría de los problemas relacionados con la matriz.


4. Búsqueda primero en anchura de árbol y gráfico (cola, subconjuntos , matriz transversal , clasificación topológica )

Breadth First Search (BFS) es un patrón muy útil. Los patrones BFS como Subsets, Matrix Traversal y Topological Sort cubren una buena cantidad de problemas.


5. Búsqueda binaria (matrices)

La búsqueda binaria y sus variantes se utilizan para resolver una gran cantidad de preguntas de codificación.


6. Fusión de intervalos

Aunque no hay muchos problemas relacionados con Interval Merge, estos problemas aparecen con frecuencia en la codificación de entrevistas.


7. Recursión/retroceso

El retroceso y la recursividad se utilizan para resolver una amplia gama de problemas. Se recomienda dominar estas técnicas.

Conclusión

La mayoría de las entrevistas de programación incluyen preguntas tipo LeetCode. Los ingenieros de software practican tales problemas de codificación antes de las entrevistas. El mayor retorno de la inversión se logra preparándose de manera inteligente y centrándose en los patrones problemáticos. Puede obtener más información sobre estos patrones y problemas relacionados en Grokking the Coding Interview y Grokking Dynamic Programming for Coding Interviews .