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