Aquí hay un sitio web para aprender algoritmos / conceptos de programación: IDeserve
El contenido se actualiza regularmente y tiene buenas soluciones de video para muchos problemas de algoritmos.
En la página de Facebook, diariamente hay una pregunta del día en la que puedes aprender Algoritmos todos los días: IDeserve Facebook
- Estoy tomando un curso en línea, Algorithms Part 1 de Sedgewick y Wayne en Coursera. Conozco bastante a Java, pero me llevó más de un día llegar a la mitad de la resolución de la primera tarea de programación. ¿Debería dejarlo? ¿Todos sienten lo mismo mientras aprenden sobre algoritmos?
- ¿Cuál es el beneficio de sobrecargar una función recursiva?
- ¿Cuál de estos me dará la mejor oportunidad para usar los algoritmos y las estructuras de datos que se enseñan en el desarrollo web de la escuela o el desarrollo móvil?
- ¿Alguien puede dar un ejemplo en Java de pasar una matriz unidimensional, una matriz bidimensional y una matriz tridimensional por referencia y luego manipularlos?
- ¿Cómo aprenden los algoritmos de aprendizaje de refuerzo del juego de ajedrez a jugar bien, dado que cada movimiento no está etiquetado como bueno o malo, a diferencia del aprendizaje supervisado donde cada dato está etiquetado como bueno o malo?
Aquí hay algunas buenas características que encontré en esto:
1. Muchos problemas se explican con la ayuda de videos, lo que hace que sea muy fácil entender el problema en cuestión de minutos.
2. La visualización de algoritmos en la página es una gran característica provista para visualizar cómo funciona un algoritmo en tiempo de ejecución para un ejemplo dado. Normalmente se requiere una observación cuidadosa para ejecutar un código en seco, pero a través de la visualización del algoritmo que se proporciona aquí, se vuelve más fácil de entender.
Por ejemplo, vea la visualización que se muestra aquí:
Crear un árbol de búsqueda binaria equilibrado a partir de una matriz ordenada
Canal de Youtube: IDeserve
También puede planear completar diariamente, algunos Algoritmos, de la siguiente lista de preguntas que comienza de nivel fácil a intermedio a difícil.
Algunos problemas de programación dinámica:
Número de Fibonacci
Suma máxima de subarreglos
Word Break Problem
Número total de posibles árboles de búsqueda binaria con teclas ‘n’
Problema de suma de subconjunto
Palindrome más corto
Palindrome Min Cut
Número mínimo de intentos para llegar desde la palabra fuente a la palabra de destino
Número mínimo de monedas para realizar el cambio.
Encuentra la ruta de costo mínimo en una matriz
Subcadena palindrómica más larga
La subsecuencia palindrómica más larga
Encuentre la longitud de la subsecuencia creciente más larga en una matriz
Subsecuencia creciente más larga O (n logn)
Subcadena común más larga
Subsecuencia común más larga
Encuentre la longitud de la subsecuencia bitónica más larga en una matriz
Para imprimir el número máximo de As usando las cuatro teclas dadas.
Problema de la mina de oro
Encuentra la distancia mínima de edición entre dos cadenas dadas
0-1 Problema de mochila
Distintas cadenas binarias de longitud n sin 1s consecutivos
Cuente 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 problemas de árboles y gráficos:
Reserva anticipada de un árbol binario
Recorrido posterior al pedido de un árbol binario
Recorrido en orden de un árbol binario
Recorrido de orden de nivel de árbol binario
Recorrido de orden de nivel en espiral de un árbol binario | Serie 1
Imprimir vista derecha de un árbol binario
Imprima todos los nodos de un árbol binario que no tienen hermanos
Imprima todas las rutas de raíz a hoja de un árbol binario
Profundidad mínima de un árbol binario
Imprimir vista izquierda de un árbol binario
Encuentra la suma de todas las hojas izquierdas de un árbol binario
Encuentre la profundidad del nodo de hoja de nivel 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 solo un hijo sin construir un árbol
Convierte el árbol n-ary dado a su imagen especular
Convierta un árbol binario en su árbol espejo
Imprimir vista superior de un árbol binario
Imprima la vista superior de un árbol binario usando el recorrido de orden de nivel
Imprimir vista inferior de un árbol binario
Imprima la vista inferior de un árbol binario usando el recorrido de orden de nivel
Eliminar los nodos del árbol de búsqueda binario que están fuera del rango dado
Elimine todos los nodos que se encuentran en la ruta que tiene una suma menor que k
Eliminar todos los medios nodos de un árbol binario dado
Imprimir árbol binario en orden vertical
Rellene los vecinos correctos para todos los nodos en un árbol binario
Ancestro común más bajo de dos nodos en un árbol de búsqueda binaria
Sucesor en orden de un nodo en un árbol binario
Recupere un árbol de búsqueda binaria si se intercambian las posiciones de dos nodos.
Encuentre el piso y el techo de un elemento del conjunto de datos dado usando el árbol de búsqueda binario
Suma diagonal de un árbol binario.
Crear un árbol de búsqueda binaria equilibrado a partir de una matriz ordenada
Convierta una lista ordenada doblemente enlazada en un árbol de búsqueda binaria equilibrado
Convierta un árbol binario en una lista doblemente vinculada
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 | Set 2
Compruebe si dos árboles de búsqueda binarios son idénticos debido a 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 de búsqueda binaria | Inserción y Búsqueda
Árbol de búsqueda binaria | Supresión
Compruebe si un árbol binario dado es un árbol simétrico o no
Compruebe si el árbol n-ary dado es árbol simétrico o no
Número total de posibles árboles de búsqueda binaria con teclas ‘n’
Encuentra el tamaño de BST más grande en un árbol binario
Ancestro común más bajo de 2 nodos en un árbol binario
Encuentre la altura del árbol binario a partir de su representación de matriz principal
Convertir árbol binario en árbol de búsqueda binario
Construya el árbol binario a partir de su representación de matriz principal
Construir un árbol binario a partir de recorridos internos y anteriores
Construir árbol binario a partir de recorridos de orden y de postorder
Árbol AVL | Lo esencial
Árbol AVL | Inserción
Árbol AVL | Supresión
Estructura de datos de Trie | Insertar y buscar
Estructura de datos de Trie | Borrar
Coincidencia de patrones con Trie
La coincidencia de prefijo más larga con Trie
Dada una secuencia de palabras, agrupe todos los anagramas e imprímalos.
Serializar y deserializar un árbol de búsqueda binario
Serializar y deserializar un árbol de búsqueda binario utilizando el recorrido de orden posterior
Amplitud primera búsqueda en un gráfico
Clasificación topológica de un gráfico acíclico dirigido.
Número mínimo de intentos para llegar desde la palabra fuente a la palabra de destino
Problema de círculos de amigos: teoría de grafos
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 – Ordenar por inserción
Algoritmo de clasificación – Clasificación de burbujas
Ordenar fusión
Clasificación de panqueques
Algoritmo de clasificación – Clasificación de montón
Girar una matriz
Número de Fibonacci
Combine dos matrices ordenadas sin usar espacio adicional
Suma máxima de subarreglos
Submatriz media máxima de tamaño k
Subcadena más larga con caracteres no repetidos
Líderes en una matriz
Buscar subarrays de longitud mínima con suma K
Búsqueda binaria en una matriz ordenada
Buscar una matriz ordenada
Reorganice los elementos en una matriz para colocar elementos positivos y negativos en orden alternativo
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 enésimo número más frecuente en la matriz
Encuentra el número que falta en la secuencia creciente
Encuentra duplicados en una matriz entera
Encuentra elementos comunes en matrices ordenadas ‘n’
Encuentra un elemento de pico en una matriz
Distribuya el problema de los chocolates
Cuente las frecuencias de los elementos de la matriz en el rango de 1 a n
Encuentra todas las permutaciones de una cadena
Buscar pivote en una matriz rotada ordenada
Encuentra un elemento en una matriz rotada ordenada
Buscar elemento en una matriz girada ordenada sin encontrar un pivote
Comprar y vender acciones | Parte 2
Comprar y vender acciones | Parte 1
Encuentre 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 agua de lluvia entre torres
El problema del horizonte
Número mínimo de monedas para realizar el cambio.
Encuentra la ruta de costo mínimo en una matriz
Encuentre la longitud de la subsecuencia creciente más larga en una matriz
Subsecuencia creciente más larga O (n logn)
Encuentre la longitud de la subsecuencia bitónica más larga en una matriz
Dado un conjunto con todos los elementos distintos, encuentre la longitud del subconjunto más largo que tiene elementos (no en ningún orden en particular) que podrían formar una secuencia contigua
Encuentre una matriz entera correspondiente a la cadena que especifica transiciones de aumento-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
Cuente 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
Encuentre una subsecuencia creciente de longitud tres que tenga el producto máximo
Encuentre una subsecuencia creciente de longitud tres que tenga el producto máximo | Enfoque optimizado
Establecer problema de partición | Recursividad
Establecer problema de partición | Programación dinámica
Algunos problemas de cadenas:
Invertir palabras en una cadena
Eliminar espacios de una cadena dada
Subcadena más larga con caracteres no repetidos
Verificar paréntesis balanceados en una cadena
Evaluación de expresión de postfix
Agrupe todos los anagramas de una serie dada de cadenas | Serie 1
Primer carácter no repetitivo en una cadena
Encuentra todas las permutaciones de una cadena
Word Break Problem
Problema de suma de subconjunto
Palindrome más corto
Palindrome Min Cut
Número mínimo de intentos para llegar desde la palabra fuente a la palabra de destino
Subcadena palindrómica más larga
Algoritmo de Manacher
La subsecuencia palindrómica más larga
Subcadena común más larga
Subsecuencia común más larga
Para imprimir el número máximo de As usando las cuatro teclas dadas.
Encontrar secuencias de ADN repetidas de 10 letras.
Encuentra la distancia mínima de edición entre dos cadenas dadas
Distintas cadenas binarias de longitud n sin 1s consecutivos
El cómputo de matriz de sufijo de prefijo más largo en el algoritmo de coincidencia de patrones KMP.
El algoritmo Knuth Morris Pratt para la coincidencia de patrones.
Algunas listas vinculadas y problemas de pila:
Combinar dos listas vinculadas ordenadas
Invertir una lista vinculada: recursiva
Invertir una lista vinculada: iterativa
Invierta cada k nodos alternativos de una lista vinculada
Encuentre el enésimo nodo desde el final de una lista vinculada
Suma de dos listas enlazadas usando pilas
Suma de dos listas enlazadas usando recursividad | Serie 1
Implementación de caché LRU
Detecta un bucle en una lista vinculada y encuentra el nodo donde comienza el bucle.
Convierta una lista ordenada doblemente enlazada en un árbol de búsqueda binaria equilibrado
Convierta un árbol binario en una lista doblemente vinculada
Encuentra la intersección de dos listas enlazadas
Encuentre la intersección de dos listas enlazadas: O (m + n) Complejidad de tiempo y O (1) Complejidad de espacio
Pila mínima O (1)
La respuesta de Ankita Duggal a ¿Cuáles son los mejores sitios disponibles en Internet para aprender programación dinámica, algoritmos y estructuras de datos?