Inglés | 简体中文
Algoritmos y estructuras de datos
Esta es la colección de algoritmos, estructuras de datos y preguntas de entrevistas con soluciones. Este repositorio contiene mis soluciones para problemas algorítmicos comunes y la implementación de estructuras de datos en Java. Creé este repositorio para aprender sobre algoritmos. Estoy agregando soluciones continuamente.
Hasta el momento se proporcionan algoritmos, estructuras de datos y más de 300 problemas y soluciones .
Preguntas
Aquí hay preguntas divididas por nivel de dificultad:
- Preguntas y respuestas fáciles
- Preguntas y respuestas medianas
- Preguntas y respuestas difíciles
Problemas:
matrices
- Girar matriz
- Contiene duplicado
- Encontrar elemento pico
- Subarreglo máximo
- Kth elemento más grande en una matriz
- Buscar todos los duplicados en una matriz
- Subsecuencia creciente más larga
- Girar imagen, matriz
- Mezclar una matriz
- Buscar mínimo en matriz rotada
- Buscar en matriz rotada
Lista enlazada
- Implementación de lista enlazada individualmente
- Implementación de lista doblemente enlazada
- Eliminar nodo en una lista vinculada
- Lista enlazada de palíndromo
- Lista enlazada inversa
- Intersección de dos listas enlazadas
- Ciclo de lista enlazada
- Eliminar el enésimo nodo del final de la lista
- Combinar lista de ordenación
- Buscar ciclo de lista vinculada
- Fusionar k listas ordenadas
Y muchos otros problemas de listas enlazadas
árbol binario
- Recorrido de orden a nivel de árbol binario
- Suma de hojas izquierdas
- Invertir árbol binario
- Iterador del árbol de búsqueda binaria
- Recorrido de postorden del árbol binario
- Recorrido de pedidos anticipados de árboles binarios
- Aplanar árbol binario a lista enlazada
- Árbol simétrico
- Recorrido en orden del árbol binario
- Mismo árbol
- Profundidad máxima del árbol binario
- Árbol binario equilibrado
- Profundidad mínima del árbol binario
- Lista ordenada en árbol de búsqueda binaria equilibrado
- Validar árbol de búsqueda binaria
- Lista ordenada a BST equilibrada
- Kth elemento más pequeño en un BST
- Recorrido de orden de nivel de zigzag de árbol binario
- Eliminar nodo en un BST
- Ancestro común más bajo de BST
- Vista lateral izquierda del árbol binario
- Vista lateral derecha del árbol binario
- Modo en BST
- Suma de subárbol más frecuente
- Encuentra el elemento más grande en cada fila
- Serializar y deserializar BT
Y muchos otros problemas de los árboles.
Matemáticas
- Ruptura de enteros
- Bits inversos
- Número palíndromo
- Matemáticas.pow
- Problema de jarra y agua
- Tamiz de Eratóstenes
- La primalidad de Fermat
- Evaluar la notación polaca inversa
Pila y cola
- Pila mínima
- Cola mínima
- Implementar pila usando cola
- Implementar cola usando pila
- Ordenar pila
Programación dinámica
- Números de Fibonacci
- ruptura de palabras
- Suma del subconjunto
- 0/1 Problema de mochila
- Palíndromo más corto (KMP)
- Suma cuadrada mínima
- Transformación de peso máximo de una cadena
- Cambio de moneda
Varios
- Unión encontrar
- Permutaciones
- Subconjuntos
Algoritmos
Ordenar y buscar
- Ordenar burbujas
- Orden de inserción
- Orden de selección
- Ordenar contando
- Búsqueda binaria, límites inferiores y superiores
- FusionarOrdenar
- Ordenación rápida
Graficos
- Primera búsqueda en amplitud (BFS)
- Primera búsqueda en profundidad (DFS)
- Árbol de expansión mínima de Prim (MST)
- Árbol de expansión mínima de KrusKal (MST)
- Clasificación topológica
- El camino más corto Dijsktra
- Camino más corto Bellman-Ford
- A* Búsqueda de ruta heurística
- ¿Es el gráfico bipartito?
- ¿Está conectado el gráfico?
- Detección de ciclo
- Detección de puentes de gráficos no dirigidos
Cadena
- Búsqueda de subsecuencia de Rabin Karp
- Nota de rescate
- Cadena inversa
- Prefijo común más largo
- es anagrama
- Aguja y pajar
- ruptura de palabras
- Metacadenas
Estructura de datos:
Árboles
- Árbol de búsqueda binaria (recursivo)
- Árbol de búsqueda binaria (iterativo)
- Árbol AVL
- Trie (árbol de prefijos)
- Árbol de matriz hash
- Caché LRU
Contribuir
¿Encontraste un error? ¿Alguna forma de hacerlo mejor? No dude en solicitarlo. :)