Implementaciones en Java de algoritmos para desafíos de LeetCode
Este documento explora soluciones en Java para tres problemas comunes de LeetCode, destacando técnicas algorítmicas esenciales.
Para el problema de encontrar la subcadena palindrómica más larga, se emplea programación dinámica. Se construye una tabla booleana donde las celdas indican si un segmento es palíndromo, partiendo de casos base y aplia ...
Publicado el 6-14 23:58
Secuencia Count and Say: Generación e Implementaciones en C++
La secuencia count-and-say es una serie de números enteros que inicia así: 1, 11, 21, 1211, 111221, ...
Se interpreta como: 1 se lee como "un 1" → 11; 11 se lee como "dos 1s" → 21; 21 se lee como "un 2, luego un 1" → 1211.
Dado un entero n, el objetivo es generar la n-ésima secuencia, representada como una cadena d ...
Publicado el 6-11 03:12
Técnicas de Programación: Orden Topológico y Caché LRU en Soluciones de LeetCode
Casa Robada III (Programación Dinámica en Árbol)
En este problema, se utiliza programación dinámica en un árbol para calcular la máxima cantidad que se puede robar sin robar nodos adyacentes. La solución implica un recorrido DFS que devuelve dos valores: el máximo sin robar el nodo actual y el máximo robándolo.
class ArbolDP {
public int ...
Publicado el 6-10 20:31
Técnicas para resolver problemas de frecuencia de caracteres en cadenas de LeetCode
En este artículo, se exploran soluciones a varios problemas de LeetCode relacionados con la estadística de caracteres en cadenas, utilizando estructuras de datos como mapas hash, colas, ordenamiento y operaciones a nivel de bit.
387. Primer carácter único en una cadena
Solución mediante array de conteo: Se crea un array para registrar la frecue ...
Publicado el 6-10 05:58
Problemas de Listas Enlazadas en LeetCode
Este problema se puede resolver con dos enfoques distintos. El primero consiste en modificar la lista enlazada original. Utilizamos dos punteros: uno para recorrer la lista y otro para mantener el nodo anterior.
struct Nodo* eliminarElementos(struct Nodo* cabeza, int valor) {
struct Nodo* anterior = NULL;
struct Nodo* actual = cabeza;
...
Publicado el 6-9 03:26