Siento que mirar un video tutorial es una buena manera de entender un algoritmo. Si se explica bien, lleva menos tiempo y se conserva en la memoria durante un período de tiempo más prolongado.
Encontré este canal de Youtube que tiene buenos videos sobre algoritmos con ejemplos.
Youtube – IDeserve
Los algoritmos de programación recursiva y dinámica son muy difíciles de entender y estos videos explican estos conceptos de manera muy efectiva.
Lista de reproducción en la programación dinámica:
Lista de reproducción en los árboles:
Lista de reproducción en matrices:
O puede consultar esta lista de reproducción en todos los problemas de programación:
Otro enfoque amigable para el alumno para entender los algoritmos es visualizar una solución. La función de visualización de código que se ofrece en este sitio web: IDeserve es una muy buena manera de aprender algoritmos porque proporciona una manera de ejecutar el código en una prueba de datos.
Éstos son algunos de los buenos algoritmos:
Algunos problemas de programación dinámica:
Número de Fibonacci
Suma máxima de subarreglos
Problema de ruptura de palabras
Número total de posibles árboles binarios de búsqueda con las teclas ‘n’
Subconjunto del problema de suma
Palíndromo más corto
Palindrome Min Cut
Número mínimo de intentos para llegar desde la palabra de origen a la palabra de destino
Número mínimo de monedas para hacer cambio.
Encuentra la ruta de costo mínimo en una matriz
La subcadena palindrómica más larga
Secuencia palindrómica más larga
Encuentra la longitud de la subsecuencia creciente más larga en una matriz
Secuencia creciente más larga O (n logn)
La subcadena común más larga
La subsecuencia común más larga
Encuentra la longitud de la subsecuencia bitónica más larga en una matriz
Para imprimir el número máximo de Como usando cuatro claves dadas.
Problema de la mina de oro
Encuentra la distancia de edición mínima entre dos cadenas dadas
0-1 Problema de mochila
Distintas cadenas binarias de longitud n sin 1s consecutivos
Contar todas las decodificaciones posibles de una secuencia de dígitos dada
Encuentra el número total de formas de hacer cambios usando un conjunto de monedas dado
Establecer problema de partición | Programación dinámica
Algunos árboles y problemas de gráficos:
Previa pedido de un árbol binario
Recorrido posterior de un árbol binario
En orden de travesía de un árbol binario
Nivel de árbol binario Orden transversal
Recorrido de orden de nivel espiral de un árbol binario | Serie 1
Imprimir la vista derecha de un árbol binario
Imprima todos los nodos de un árbol binario que no tengan hermanos
Imprimir todos los caminos de la raíz a la hoja de un árbol binario
Profundidad mínima de un árbol binario
Imprimir la vista izquierda de un árbol binario
Encuentra la suma de todas las hojas izquierdas de un árbol binario.
Encuentra la profundidad del nodo de hoja impar más profundo
Compruebe si un árbol binario es un árbol binario completo o no
Compruebe si un árbol binario está completo o no
Compruebe si dos nodos son primos en un árbol binario
Compruebe si dos árboles binarios son idénticos
Compruebe si todos los nodos internos de BST tienen un solo hijo sin árbol de construcción
Convertir el árbol n-ary dado a su imagen de espejo
Convertir un árbol binario a su árbol espejo.
Imprimir vista superior de un árbol binario
Imprima la vista superior de un árbol binario utilizando el orden de nivel transversal
Imprimir vista inferior de un árbol binario
Imprima la vista inferior de un árbol binario utilizando el orden de nivel transversal
Eliminar los nodos del árbol de búsqueda binario que están fuera del rango dado
Eliminar todos los nodos que se encuentran en la ruta con una suma menor que k
Eliminar todos los medios nodos de un árbol binario dado
Imprimir árbol binario en orden vertical
Rellenar vecinos correctos para todos los nodos en un árbol binario
El ancestro común más bajo de dos nodos en un árbol de búsqueda binario
Sucesor en orden de un nodo en un árbol binario
Recupere un árbol de búsqueda binario si se intercambian las posiciones de dos nodos.
Encuentre el piso y el techo de un elemento a partir del conjunto de datos dado utilizando el árbol de búsqueda binario
Suma diagonal de un árbol binario.
Crear un árbol de búsqueda binario equilibrado a partir de una matriz ordenada
Convertir una lista ordenada de enlace doble en un árbol de búsqueda binaria equilibrada
Convertir un árbol binario en una lista doblemente enlazada
Compruebe si un árbol binario está equilibrado o no
Compruebe si un árbol binario es un árbol de búsqueda binario
Compruebe si dos árboles de búsqueda binarios son idénticos dadas sus representaciones de matriz | Conjunto 2
Compruebe si dos árboles de búsqueda binarios son idénticos dadas sus representaciones de matriz
Compruebe si un árbol binario es un subárbol de otro árbol binario en el tiempo O (n)
Compruebe si un árbol binario es un subárbol de otro árbol binario en el espacio O (1)
Árbol binario de búsqueda | Inserción y Búsqueda
Árbol binario de búsqueda | Supresión
Compruebe si un árbol binario dado es un árbol simétrico o no
Compruebe si el árbol n-ario dado es un árbol simétrico o no
Número total de posibles árboles binarios de búsqueda con las teclas ‘n’
Encuentra el tamaño de BST más grande en un árbol binario
El ancestro común más bajo de 2 nodos en un árbol binario
Encuentre la altura del árbol binario de su representación matriz matriz
Convertir árbol binario a árbol binario de búsqueda
Construye el árbol binario a partir de su representación matriz matriz
Construir árboles binarios a partir de recorridos inorder y preorder
Construir árbol binario a partir de recorridos inorder y postorder
Árbol AVL | Lo esencial
Árbol AVL | Inserción
Árbol AVL | Supresión
Estructura de datos Trie | Insertar y buscar
Estructura de datos Trie | Borrar
Ajuste de patrones utilizando Trie
Coincidencia de prefijos más larga utilizando Trie
Dada una secuencia de palabras, agrupa todos los anagramas e imprímelos.
Serializar y Deserializar un árbol binario de búsqueda
Serializar y deserializar un árbol de búsqueda binario utilizando el recorrido de orden posterior
Amplia primera búsqueda en una gráfica.
Clasificación topológica de una gráfica acíclica dirigida.
Número mínimo de intentos para llegar desde la palabra de origen a la palabra de destino
Problema de círculos de amigos – Teoría de grafos
El algoritmo de ruta más corta de Dijkstra
Algoritmo de Bellman-Ford
Algunos problemas de matrices:
Algoritmo de clasificación – Selección de selección
Algoritmo de clasificación – Ordenación por inserción
Algoritmo de clasificación – Bubble Sort
Fusionar clasificación
Clasificación de panqueques
Algoritmo de clasificación – Ordenación de pila
Girar una matriz
Número de Fibonacci
Combina dos matrices ordenadas sin usar espacio adicional
Suma máxima de subarreglos
Subarreglo promedio máximo de tamaño k
Subcadena más larga con caracteres que no se repiten
Líderes en una matriz
Encontrar la longitud mínima de sub array con suma K
Búsqueda binaria en una matriz ordenada
Busca una matriz ordenada
Reorganizar los elementos en una matriz para poner los elementos positivos y negativos en orden alterno
Encuentra el siguiente número mayor usando los mismos dígitos
Siguiente elemento mayor en una matriz
Primer carácter no repetitivo en una cadena.
Encuentra el ‘n’ número más frecuente en la matriz
Encuentra el número que falta en la secuencia creciente
Encontrar duplicados en una matriz entera
Encuentra elementos comunes en ‘n’ arreglos ordenados
Encuentra un elemento pico en una matriz
Distribuir problema de chocolates
Contar las frecuencias de los elementos de la matriz en el rango de 1 a n
Encuentra todas las permutaciones de una cadena
Encuentra pivote en una matriz rotada ordenada
Encuentra un elemento en una matriz rotada ordenada
Encuentre el elemento en la matriz rotada clasificada sin encontrar pivote
Compra y venta de acciones | Parte 2
Compra y venta de acciones | Parte 1
Encuentra el índice de 0 para reemplazar para obtener la secuencia continua más larga de 1s
O (n) enfoque de tiempo para encontrar el índice de 0 para reemplazar y obtener la secuencia continua más larga de 1s
Atrapando el agua de lluvia entre torres
El problema del horizonte
Número mínimo de monedas para hacer cambio.
Encuentra la ruta de costo mínimo en una matriz
Encuentra la longitud de la subsecuencia creciente más larga en una matriz
Secuencia creciente más larga O (n logn)
Encuentra la longitud de la subsecuencia bitónica más larga en una matriz
Dada una matriz con todos los elementos distintos, encuentre la longitud de la sub-matriz más larga que tiene elementos (no en ningún orden en particular) que podrían formar una secuencia contigua
Encuentre una matriz de enteros correspondiente a la cadena que especifica las transiciones de aumento y disminución
Problema de la mina de oro
Encuentra la mediana de dos matrices ordenadas
Encuentra el elemento mayoritario en una matriz
0-1 Problema de mochila
Contar todas las decodificaciones posibles de una secuencia de dígitos dada
Encuentra el número total de formas de hacer cambios usando un conjunto de monedas dado
Encuentra sub-secuencia creciente de longitud tres con producto máximo
Encuentra sub-secuencia creciente de longitud tres con producto máximo | Enfoque optimizado
Establecer problema de partición | Recursion
Establecer problema de partición | Programación dinámica
Algunos problemas de cuerdas:
Invertir palabras en una cadena
Eliminar espacios de una cadena dada
Subcadena más larga con caracteres que no se repiten
Compruebe paréntesis equilibrados en una cadena
Evaluación de Expresión Postfix
Agrupe todos los anagramas de una determinada serie de cadenas | Serie 1
Primer carácter no repetitivo en una cadena.
Encuentra todas las permutaciones de una cadena
Problema de ruptura de palabras
Subconjunto del problema de suma
Palíndromo más corto
Palindrome Min Cut
Número mínimo de intentos para llegar desde la palabra de origen a la palabra de destino
La subcadena palindrómica más larga
Algoritmo de Manacher
Secuencia palindrómica más larga
La subcadena común más larga
La subsecuencia común más larga
Para imprimir el número máximo de Como usando cuatro claves dadas.
Encontrar secuencias de ADN repetidas de 10 letras.
Encuentra la distancia de edición mínima entre dos cadenas dadas
Distintas cadenas binarias de longitud n sin 1s consecutivos
El cálculo de matriz de sufijo de prefijo más largo en el algoritmo de coincidencia de patrones KMP.
El algoritmo de Knuth Morris Pratt para la comparación de patrones.
Algunas listas vinculadas y problemas de pila:
Fusionar dos listas enlazadas ordenadas
Invertir una lista enlazada – Recursiva
Invertir una lista enlazada – Iterativa
Invierta todos los nodos k alternativos de una lista enlazada
Encuentre el nth Node desde el final de una lista enlazada
Suma de dos listas vinculadas usando pilas
Suma de dos listas vinculadas utilizando Recursión | Serie 1
Implementación de caché LRU
Detecta un bucle en una lista enlazada y encuentra el nodo donde comienza el bucle.
Convertir una lista ordenada de enlace doble en un árbol de búsqueda binaria equilibrada
Convertir un árbol binario en una lista doblemente enlazada
Encuentra la intersección de dos listas vinculadas
Encuentre la intersección de dos listas vinculadas: O (m + n) Complejidad de tiempo y O (1) Complejidad de espacio
Pila Mínima O (1)
Espero que esto ayude.