Skip to content

esta es la traducción del repositorio de recnac-itna/Algorithm_Templates (https://github.com/recnac-itna/Algorithm_Templates) que es código Python3 de algoritmos modelo y ejemplos sacados de www.leetcode.com, y además también podés aprender muchos trucos de python

License

Notifications You must be signed in to change notification settings

ezequielrosa/modelos_y_algoritmos

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modelos y Algoritmos

Descripción

Modelos y ejemplos en Python3 que incluyen los algoritmos y estructuras de datos más comunes.

(Es la traducción al español-argentino del repositorio original recnac-itna/Algorithm_Templates).

Junté y resumí el código que generaliza el esquema de algoritmos específicos y además agregué los ejemplos más comunes de estos para facilitar su uso. Todos los ejemplos están sacados de LeetCode a los que les adjunté el id del problema mas una breve descripción de los mismos.

"Basta de Tratar de Reinventar la Rueda"

Así que hice mi mejor esfuerzo en encontrar las similitudes entre problemas comunes, sus soluciones y los códigos. Cuando estudié hice resúmenes de patrones y esquemas de diseño para sus uso futuro.

Mi intención original era usarlos personalmente pero ahora me doy cuenta que sería bueno compartirlos con quienes puedan llegar a necesitarlos.

Explicaciones complementarias

  1. Está escrito en Python3, pero sería fácil exportarlos a otros lenguajes, como Java, C++, simplemente reemplazando la dulzura sintáctica de Python y sus trucos avanzados, tal vez solo se vuelvan un poco menos concisos.

  2. Debido a mis limitadas capacidades y a la escacés de tiempo aquí solo se cubren los algoritmos y estructuras de datos comunes. Casi adecuados para una entrevista laboral, pero insuficientes para presentarse a un concurso.

  3. Hice todo lo posible para recopilar y resumir los esquemas generales y los mejores casos de uso en algún área específica, aunque cada versión puede no ser la mejor solución posible, o bien puede que efectivamente sea la de mejor rendimiento y la solución más concisa pero que no sea precisamente la más adecuada a tu necesidad. Dentro del rendimiento aceptable, la mejor implementación para cada uno de estos casos es la que nos resulte más conveniente.

  4. Los patrones de código están escritos en python con algo de pseudocódigo, así que uso self y agrego funciones auxiliares para que no de error el compilador. Hay que reemplazarlos con tu código (la lógica del mismo) de acuerdo a lo que van indicando los comentarios.

¿Por qué Python?

"la vida es corta, necesitas python"

Las características avanzadas de Python nos ayudan, podemos permitirnos ignorar la gramática redundante y centrarnos totalmente en el algoritmo y su lógica.

Además, es popular, y soy un gran admirador de este lenguaje.

¿Para quién es esto?

  1. Si vas a tener entrevistas laborales en breve y tenes pensado rever las estructuras de datos y algoritmos, podés repasar estos resúmenes y mejorar tus habilidades prácticas con sus ejemplos característicos.

  2. Si querés estudiar un algoritmo mediante la práctica, con este material podés comprender los puntos clave de cada patrón o modelo de diseño y practicar con ejemplos de más fácil a más difícil para ir profundizando en comprensión.

  3. Si sos un LeetCoder y querés centrarte en tus puntos débiles y no tenés ni idea de qué problemas podés resolver, acá están bien clasificados y se proporcionan los ejemplos típicos, o bien si estás demasiado cansado para encontrar una respuesta rápida y elegante a una discusión acá podés ahorrarte tiempo.

  4. Si sos un principiante de Python y deseas mejorar sus habilidades avanzadas de Python podés enfocarte en los trucos de Python. Espero que aquí encuentres técnicas útiles y elegantes.

Agradecimientos

  • Gracias a todos los buenos problemas de LeetCode. Además, LeetCode tiene una gran plataforma OJ (open java) y es realmente adecuada para realizar pruebas y análisis de rendimiento.
  • Muchas plantillas y trucos están aclarados con discusiones en LeetCode, gracias a todos los maestros del código.
  • Un agradecimiento especial a Stefan Pochmann, realmente aprendí mucho de él.

Licencia MIT

Sentite libre de usar, copiar, modificar, fusionar o publicar, solo agregale una referencia, por favor. Si te ayuda o te gusta, podés destacarlo o compartirlo. Gracias : ) Me alegro si quieres contribuir a que sea mejor.

Referencia

Discusiones generales extraídas de LeetCode

Extraje las discusiones más populares y filtré las que resumen el enfoque más general de un tema en particular, como la recurrencia, la programación dinámica, la ventana deslizante, la manipulación de bits.

Vale la pena leer:

Contacto

recnac@foxmail.com (en idioma inglés o chino)

About

esta es la traducción del repositorio de recnac-itna/Algorithm_Templates (https://github.com/recnac-itna/Algorithm_Templates) que es código Python3 de algoritmos modelo y ejemplos sacados de www.leetcode.com, y además también podés aprender muchos trucos de python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%