Algoritmo DFS: Implementación Recursiva

Algoritmo DFS: Implementación Recursiva DFS (Búsqueda en Profundidad, por sus siglas en inglés) es un algoritmo utilizado para recorrer o buscar en estructuras de datos como árboles y grafos. Su principio fundamental es: explorar lo más profundamente posible a lo largo de una ruta hasta que no se pueda continuar (se encuentra un nodo ya visitad ...

Publicado el 7-10 00:40

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

La Conjetura de Goldbach y Algoritmos para Números Primos

La Conjetura de Goldbach La conjetura de Goldbach se divide en dos variantes: la conjetura doble y la conjetura triple. La conjetura doble establece que todo número par mayor o igual a 6 puede expresarse como la suma de dos números primos impares. La conjetura triple afirma que todo número impar mayor o igual a 9 puede representarse como la sum ...

Publicado el 7-9 03:28

Resumen de Algoritmos de Ordenamiento Clásicos

Conceptos Fundamentales Definición de Ordenamiento Organizar una secuencia de elementos según un criterio específico. Terminología Clave Estable: Elementos equivalentes mantienen su orden relativo Inestable: Elementos equivalentes pueden cambiar su posición Ordenamiento Interno: Todos los datos caben en memoria Ordenamiento Externo: Datos alma ...

Publicado el 7-8 16:52

Problemas de Programación e Inteligencia Artificial

OJ 17 Número Múltiplo de T Problema: Para un número natural N que termina en 7, mover su último dígito a la posición más alta y desplazar todos los demás dígitos una posición a la derecha. El nuevo número debe ser T veces el número original. Dado T, encontrar el menor número natural N que cumpla esta condición. Si no se encuentra tal N en el ra ...

Publicado el 7-7 23:26

Fundamentos de Algoritmos en JavaScript: Esenciales y Aplicaciones Prácticas

En el desarrollo de software, los algoritmos son el conjunto de instrucciones definidas que transforman una estructura de datos de entrada en una de salida. A continuación, se exploran algoritmos fundamentales y comunes en JavaScript. Algoritmos de Ordenamiento Bubble Sort Este método compara repetidamente elementos adyacentes y los intercambia ...

Publicado el 7-7 23:19

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

Algoritmos de la Biblioteca Estándar de Plantillas en C++

1. Algoritmos de Secuencia No Modificadores Estos algoritmos no alteran los elementos en los contenedores que operan. 1.1 Búsqueda con find y find_if La función find(inicio, fin, valor) localiza el primer elemento que coincide con el valor dado, devolviendo un iterador (o el iterador fin si no se encuentra). La variante find_if(inicio, fin, pre ...

Publicado el 7-7 17:50

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

Grafos Bipartitos: Definición, Algoritmos y Aplicaciones

Definición y propiedades de un grafo bipartito Un grafo bipartito es un grafo no dirigido cuyos vértices pueden dividirse en dos conjuntos disjuntos \(A\) y \(B\), de manera que cada arco conecta un vértice de \(A\) con uno de \(B\). Es decir, no existen arcos entre vértices dentro del mismo conjunto. Propiedades fundamentales: Es posible colo ...

Publicado el 7-6 22:05