Implementación de Algoritmos Clásicos: Doble Puntero, Ventana Deslizante y Generación de Matrices Espirales

Cuadrados de un Array Ordenado (LeetCode 977) Dado un array de enteros nums que está ordenado en orden no-decreciente, el objetivo es generar un nuevo array que contenga los cuadrados de cada número, también ordenado en no-decreciente. Este problema presenta una peculiaridad: al elevar al cuadrado un número negativo, este puede resultar en un v ...

Publicado el 7-9 16:28

Implementación de Cola Monotona y Montículo para LeetCode 239 y 347

Para el problema de la ventana deslizante máxima (LeetCode 239), el objetivo es determinar el valor máximo en cada subarray de tamaño k que se desplaza a lo largo de un array dado. Una solución eficiente utiliza una cola monotona implementada con una cola de doble extremo (deque) para mantener un seguimiento de los elementos en orden decrecient ...

Publicado el 7-7 22:16

Búsqueda de picos en arreglos: técnicas de búsqueda binaria y valor máximo

Dado un arreglo de números enteros nums de tamaño n, se debe ancontrar un elemento pico y retornar su índice. Un elemento pico es aquel cuyo valor es estrictamente mayor que el de sus vecinos adyacentes. Si existen múltiples picos, basta con retornar el índice de cualquiera de ellos. Consideraciones importantes: Se asume que nums[-1] = nums[n] ...

Publicado el 7-7 04:55

Resolviendo el Problema del Cambio de Monedas con Programación Dinámica

Se te proporciona monedas de diferentes denominaciones y una cantidad total de dinero. Escribe una función para calcular el número mínimo de monedas necesarias para alcanzar esa centidad. Si no es posible formar esa cantidad con ninguna combinación de monedas, devuelve -1. **Ejemplo 1:**denominaciones = [1, 2, 5], cantidad = 11devuelve 3 (11 = ...

Publicado el 7-3 19:16

Verificación de Validez de Cadenas de Paréntesis con Carácter Comodín

El desafío consiste en determinar si una cadena, compuesta exclusivamente por tres tipos de caracteres: '(', ')', y '*', es válida. Las reglas que definen la validez de dicha cadena son las siguientes: Cada paréntesis de apertura '(' debe tener un paréntesis de cierre ')' correspondiente. Cada paréntesis de cierre ')' debe tener un paréntesis ...

Publicado el 7-2 18:36

Búsqueda Binaria para Detectar Picos en Arreglos

Problema 21: Índice del Pico en un Arreglo de Montaña Enlace del problema: 852. Peak Index in a Mountain Array - LeetCode Descripción: Se proporciona un arreglo de montaña donde existe un índice que satisface: arr[i] > arr[i-1] y arr[i] > arr[i+1]. Devuelve ese índice del pico. Enfoque mediante búsqueda binaria En lugar de un enfoque de f ...

Publicado el 6-27 20:30

LeetCode 3433: Conteo de Menciones de Usuarios con Ordenamiento y Simulación

Los eventos de entrada no están garantizados en orden cronológico, por lo que es necesario ordenarlos primero según la marca de tiempo. Se ordenan los eventos de menor a mayor marca de tiempo. Para marcas iguales, los eventos de desconexión se procesan antes que los mensajes, ya que los cambios de estado deben ocurrir antes de los eventos de me ...

Publicado el 6-22 19:28

Agrupación de Anagramas usando Tablas Hash y Ordenamiento en C++

Definición del Problema Dado un arreglo de cadenas de texto, el objetivo es agrupar los anagramas. Un anagrama se define como una palabra o frase formada al reordenar las letras de una palabra o frase distinta, utilizando exactamente los mismos caracteres y la misma cantidad de veces. Enfoque Inicial: Comparación de Frecuencias Una aproximación ...

Publicado el 6-18 01:46

Solución al Problema de Naranjas Podridas en una Cuadrícula con BFS Multi-fuente

Descripción del Problema Dada una cuadrícula de dimensiones m x n, donde cada celda puede contenre: 0 para una celda vacía. 1 para una naranja fresca. 2 para una naranja podrida. Cada minuto, las naranjas podridas infectan a las naranjas frescas adyacentes en las cuatro direcciones cradinales (arriba, abajo, izquierda, derecha). Se requiere d ...

Publicado el 6-15 21:24

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