Ordenamiento de panqueques: solución al problema 969 de LeetCode

Dado un arreglo A, podemos realizar una inversión de panqueque: seleccionamos un entero positivo k ≤ A.length e invertimos el orden de los primeros k elementos. Debemos realizar cero o más inversiones (una tras otra) para ordenar el arreglo A. El objetivo es devolver una secuencia de valores k que representen las inversiones realizadas, que al ...

Publicado el 9-12 10:55

Evaluación de expresión polaca inversa y algoritmos de ventanas deslizantes

Evaluación de expresión polaca inversa Implementación usando una pila para resolver operaciones matemáticas: class Solution { public: bool esNumero(const string& s) { if (s.empty()) return false; if (s[0] == '-' && s.size() > 1) { for (int i = 1; i < s.size(); ++i) { if (!isd ...

Publicado el 9-9 03:18

Algoritmo Greedy para Optimizar el Orden de Preparación de Platos

El «coeficiente like-time» de un plato se define como el tiempo en que termina de preparar el plato (incluyendo el tiempo de las preparaciones anteriores) multiplicado por el nivel de satisfacción de ese plato, es decir, tiempo\[i\] \* satisfaccion\[i\]. Devolución de la suma máxima del «coeficiente like-time» que puede obtener el chef después ...

Publicado el 9-7 03:42

Patrón de ventana deslizante para problemas de LeetCode

Ventana deslizante de longitud fija El siguiente patrón puede resolver todos los problemas de ventana deslizante de longitud fija: int inicio = 0, fin = 0; int estado; // almacena el estado actual int resultado; // almacena el resultado while (fin < n) { // 1. Insertar elemento por la derecha y actualizar estado if (fin++ < k - 1 ...

Publicado el 9-4 05:19

Optimización de Algoritmo para Encontrar Máxima Secuencia de Unos Binarios

Descripción del Reto Técnico El problema planteado consiste en procesar un arreglo de entrada conteniendo exclusivamente dígitos binarios (0 y 1). El objetivo principal es identificar y cuantificar la extensión de la subsecuencia consecutiva de valores positivos (1) más larga presente en el conjunto de datos. Case de Uso: Arreglo de Entrada: [ ...

Publicado el 9-3 02:54

Formar el palíndromo más corto anteponiendo caracteres

Dada una cadena s, el objetivo es enteponer el menor número posible de caracteres para que el resultado sea un palíndromo. La clave está en hallar el prefijo palindrómico más largo de s: si ese prefijo tiene longitud L, basta con tomar el resto s[L…n-1], invertirlo y colocarlo al principio. Solución con la función prefijo (estilo KMP) Sea rev l ...

Publicado el 8-4 05:35

Operaciones Fundamentales con Listas Enlazadas: Eliminación, Diseño y Reversión

Eliminación de Elementos en Listas Enlazadas (LeetCode 203) La eliminación de nodos en una lista enlazada es una operación fundamental que presenta particularidades, especialmente al tratar con el primer nodo. Exploraremos dos estrategias principales: la eliminación directa y el uso de un nodo ficticio (dummy head) para simplificar la lógica. E ...

Publicado el 7-26 22:38

Resolviendo la Subsecuencia Creciente Más Larga (LIS) en Go

Introducción al Problema de la Subsecuencia Creciente Más Larga (LIS) El problema de la Subsecuencia Creciente Más Larga (LIS, por sus siglas en inglés, Longest Increasing Subsequence) es un desafío fundamental en la teoría de algoritmos y programación dinámica. Consiste en encontrar la longitud de la subsecuencia de números más larga dentro de ...

Publicado el 7-20 22:56

Generación de Todas las Combinaciones de Paréntesis Válidos: Algoritmo DFS con Poda y Números de Catalan

Dado un número entero n, se requiere generar todas las combinaciones posibles de paréntesis válidos con n pares. Este problema es equivalente a encontrar secuencias de paréntesis balanceadas, y se puede resolver mediante búsqueda en profundidad (DFS) con técnicas de poda eficientes. Ejemplo 1: Entrada: n = 3 Salida: ["((()))","(( ...

Publicado el 7-19 13:58

Resolución de problemas frecuentes de LeetCode (CodeTop > 50) sin membresía

A continuación se presenta una guía concisa con soluciones a problemas de LeetCode que aparecen con alta frecuencia en listas como CodeTop. Se ha priorizado la claridad y la eficiencia del código. 3. Subcadena más larga sin caracteres repetidos class Solution { public: int lengthOfLongestSubstring(string s) { unordered_map<char,i ...

Publicado el 7-19 05:30