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