¿Cuáles son algunas buenas estructuras de datos y algoritmos de hojas de trucos?

Aquí hay una lista de sitios que pueden ayudarlo a encontrar una hoja de trucos para la estructura de datos y algoritmos.

1. La hoja de trucos de la entrevista técnica : esta es una muy buena idea de Tristan Siegel que puede ser muy útil para una revisión rápida antes de una entrevista. Contiene conceptos básicos de estructura de datos, búsqueda básica y algoritmos.

2. Algoritmos y Estructura de datos Cheat Sheet de Princeton : Han resumido las características de rendimiento de algoritmos clásicos y estructuras de datos para la clasificación, colas de prioridad, tablas de símbolos y procesamiento de gráficos con código Java.

3. Versión resumida de CLRS : Esta también es realmente buena para tener un resumen de la teoría y comprender visualmente varios algoritmos.

4. Implementación de algoritmos de Java repositorios git aquí y aquí.

5. Para el aprendizaje rápido, este es un enlace muy útil.

6. Uno de los famosos hilos de reddit con enlaces útiles.

Imprima esta imagen que contiene anotaciones Big-O para operaciones de estructura de datos, clasificación de matriz, gráficos y montón.

La hoja de trucos de la entrevista técnica y la hoja de trucos de Big-O son increíbles. También deberías echar un vistazo al libro Introducción a los algoritmos.

Pero en mi opinión, las “hojas de trucos” realmente no son importantes en absoluto. La mayoría de las personas ya saben cuáles son las estructuras / algoritmos de datos más “importantes”, o al menos es trivial obtener la lista. La verdad es que muy pocos pueden comprenderlos, lo cual es crítico.

Eche un vistazo a Build a Solid Foundation: la guía completa para la preparación de la entrevista de Google. La publicación tiene un resumen perfecto de este tema.

Básicamente, además de comprender la definición de estructuras / algoritmos de datos básicos, es extremadamente importante conocer los pros y los contras de cada uno de ellos. Creo que el mejor ejemplo es BFS VS DFS. La mayoría de la gente sabe lo que son, pero pocos pueden ilustrar cuándo usar cuál. Esta es la razón por la cual a veces no podemos encontrar la solución correcta.

Además, no te olvides de la complejidad. Si no puede descubrir la complejidad de su algoritmo, no sabe qué tan eficiente es. Para mí, esto es algo muy fundamental y todos deberían ser competentes en ellos. Además, cuando digo complejidad, significa complejidad de tiempo y espacio.

La buena noticia es que no todos son difíciles de preparar. Si estás enfocado en las cosas correctas, no debería ser difícil en absoluto.

Tenga en cuenta que si el autor codifica en Java, pero estos diagramas me fueron de gran ayuda:

Diagrama Simplificado:

Diagrama completo:

Hoja de trucos de tiempo de ejecución:

No es una hoja de trucos adecuada, aunque puede resultarle útil: http://www.cs.usfca.edu/~galles/

Esta es una hoja de trucos muy completa que también está respaldada por un repositorio de git

Hoja de trucos para la entrevista de codificación: Guía para las entrevistas de programación en Java: Atajo de Lifeboard: 9780692907818: Amazon.com: Libros

Otra increíble hoja de trucos se puede encontrar en http://algorithmiccomplexity.com