Todo
Apuntes
Ejercicios
Exámenes
Prácticas
chevron_left
chevron_right

? Colección de Ejercicios - Capítulo 5: Elemento Mayoritario. Algoritmo para detectar si existe un número que aparece más de n/2 veces en una lista no ordenada. Restricción: El coste no puede superar O(n log n). Se explora el uso de diccionarios (con Dic

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Ordenación Personalizada. Algoritmo para ordenar una lista mixta que contiene cadenas de números y cadenas de letras (ej: ['abc', '123', 'zz']), priorizando los números al principio. Implementación basada en Select

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Combinatoria y Texto. Algoritmo para contar cuántas veces aparece una palabra pequeña como subsecuencia (no necesariamente contigua) dentro de una cadena más larga. Uso de la librería itertools para generar combina

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Maximum Subarray Problem. Resolución del famoso problema de encontrar la sublista contigua con la suma más alta. Comparativa: Solución por Fuerza Bruta (lenta). Solución por Dividir y Vencer. Algoritmo de Kadane

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Generación Combinatoria. Algoritmo para generar todos los números de N dígitos donde cada dígito es estrictamente mayor que el anterior (ej: 123, 145, 239...). Enfoque: Estrategia recursiva/constructiva para formar

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Ordenación Avanzada. Adaptación de los algoritmos de ordenación (Quicksort y Mergesort) para tratar eficientemente listas donde los elementos aparecen por parejas (ej: [3,3,1,1,5,5]). Incluye análisis de complejida

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Variantes de Búsqueda. Solución a un problema muy común en entrevistas: Realizar una búsqueda eficiente en una lista "casi" ordenada, donde cada elemento puede estar desplazado una posición respecto a su lugar orig

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Algoritmos Avanzados. Implementación recursiva del algoritmo de Karatsuba para la multiplicación rápida de números grandes, mejorando la complejidad cuadrática tradicional.

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Backtracking. Algoritmo recursivo para generar todas las combinaciones posibles de una cadena binaria con comodines (ej: '1?0' -> '100', '110').

Miniatura no disponible

⚡ Colección de Ejercicios - Capítulo 5: Exponenciación.Implementación de la función potencia $x^y$ de manera eficiente (O(log n)) utilizando la técnica de exponenciación binaria o por cuadrados (Divide y Vencer).

Miniatura no disponible

✖️ Colección de Ejercicios - Capítulo 5: Polinomios. Implementación básica de la multiplicación de dos polinomios representados como listas/tuplas usando bucles anidados.

Miniatura no disponible

➕ Colección de Ejercicios - Capítulo 5: Two Pointers. Algoritmo eficiente O(n) para encontrar todas las parejas en una lista ordenada que sumen un valor S. Uso de punteros al inicio y final convergiendo.

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Búsqueda Relativa. Algoritmo para encontrar el valor inmediatamente menor y el inmediatamente mayor a un número k dentro de una lista, gestionando los casos borde.

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Búsqueda Recursiva. Algoritmo Divide y Vencerá para encontrar el rango de índices (primera y última posición) de un elemento repetido en una lista ordenada.

Miniatura no disponible

?? Colección de Ejercicios - Capítulo 5: Algoritmos de Partición. Variante del problema de la Bandera Nacional Holandesa. Algoritmo para dividir una lista en tres partes (menores, iguales y mayores a un valor) en una sola pasada o pasadas limitadas.

Miniatura no disponible

?️ Colección de Ejercicios - Capítulo 5: Peak Element. Ejercicio de examen parcial. Encontrar un "pico" (elemento mayor que sus vecinos) en una lista en tiempo O(log n) utilizando búsqueda binaria.

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Inversiones. Código base para el problema de contar inversiones en un array (pares donde i < j pero A[i] > A[j]), una medida de qué tan desordenada está una lista.

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Punto Fijo. Algoritmo para encontrar si existe un índice i tal que A[i] == i en una lista ordenada de enteros distintos. Solución obligatoria en O(log n).

Miniatura no disponible

0️⃣ Colección de Ejercicios - Capítulo 5: Algoritmos de Partición. Implementación del problema "Move Zeros" utilizando una estrategia de Dividir y Vencer. Enfoque: Se trata el problema como una variación del algoritmo partition del Quicksort, usando el 0

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Listas Circulares. Algoritmo para encontrar cuántas veces ha sido rotada una lista ordenada (búsqueda del mínimo/pivote). Incluye apuntes sobre el análisis de complejidad con el Teorema Maestro.

Miniatura no disponible

↔️ Colección de Ejercicios - Capítulo 5: Algoritmos de Partición. Algoritmo para mover todos los números negativos al principio de una lista en tiempo lineal O(n). Técnica: Uso de dos punteros (similar al partition de Quicksort) para hacer swaps sin usar

Miniatura no disponible

0️⃣ Colección de Ejercicios - Capítulo 5: Manipulación de Arrays. Problema clásico "Move Zeros". Objetivo: Desplazar todos los ceros al final de la lista manteniendo el orden relativo de los no-ceros (o sin importar el orden, según la variante). Código:

Miniatura no disponible

1️⃣ Colección de Ejercicios - Capítulo 5: Optimización de Conteo. Dada una lista ordenada de 0s y 1s (ej: [0,0,0,1,1]), contar cuántos unos hay. Implementación: Solución ingenua O(n). Solución óptima O(log n) usando búsqueda binaria para encontrar el p

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Missing Integer. Algoritmo para encontrar el primer número natural que falta en una secuencia ordenada. Estrategia: Variante de búsqueda binaria para detectar dónde el valor del índice no coincide con el valor del

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Palíndromos. Búsqueda de la subsecuencia capicúa (palíndroma) más larga dentro de un string. Enfoque: Uso de itertools para generar combinaciones y chequeo de propiedades. Nota: Aunque el título original menciona L

Miniatura no disponible

? Colección de Ejercicios - Capítulo 5: Búsqueda Binaria Modificada. Problema clásico de entrevista: Encontrar el único número que no se repite en una lista ordenada donde todos los demás aparecen dos veces. Algoritmo: Implementación eficiente con comple

Miniatura no disponible

➗ Colección de Ejercicios - Capítulo 5: Recursividad Básica. El primer paso para entender la técnica de Dividir y Vencer. Ejercicio: Función recursiva simple para sumar los elementos de una lista. Identificación del Caso Base. Llamada recursiva con sub

Miniatura no disponible

? Colección de Ejercicios - Capítulo 4: Distancia de Edición.Práctica intensiva sobre el algoritmo de Levenshtein (Edit Distance).Contenido:Implementación paso a paso usando Programación Dinámica.Inicialización y llenado de la Matriz de Costes ($O(n*m)$).

Miniatura no disponible

? Archivo de texto plano necesario para ejecutar el ejercicio 4.5 (Algoritmo de ADN). Contiene una secuencia larga de bases nitrogenadas (A, C, G, T) del cromosoma 2 humano.

word

? Colección de Ejercicios - Capítulo 4: Regex. Introducción al módulo re de Python. Ejercicio: Definir un patrón de Expresión Regular para validar códigos postales del Reino Unido en una lista de direcciones. Ideal para aprender a usar patrones de búsqu

Miniatura no disponible

? Colección de Ejercicios - Capítulo 4: Optimización. Resolución del problema "Longest Substring Without Repeating Characters". Estrategia: Implementación eficiente controlando índices de inicio y fin (técnica de ventana deslizante) y uso de diccionarios

Miniatura no disponible

? Colección de Ejercicios - Capítulo 4: LCS (Longest Common Subsequence). Comparativa de dos enfoques para resolver el problema LCS: Fuerza Bruta: Usando itertools.combinations (lento pero intuitivo). Programación Dinámica: Solución óptima utilizando u

Miniatura no disponible

? Colección de Ejercicios - Capítulo 4: Compresión. Algoritmo clásico de entrevista y examen: RLE. Código: Función que recorre un string y lo comprime contando caracteres consecutivos (ej: 'AAA' -> 'A3'). Tip: Es un ejercicio muy frecuente en los parcia

Miniatura no disponible

? Colección de Ejercicios - Capítulo 4: Programación Dinámica Avanzada. El ejercicio más completo del capítulo. Aplicación de algoritmos de edición de texto a secuencias de ADN. Contenido: Implementación de Levenshtein/Smith-Waterman con matriz de coste

Miniatura no disponible

✂️ Colección de Ejercicios - Capítulo 4: Iteración. Algoritmo de fuerza bruta para extraer todas las posibles subcadenas (substrings) de una palabra. Técnica: Uso de doble bucle for y slicing de listas/strings. Fundamental para entender problemas más com

Miniatura no disponible

? Colección de Ejercicios - Capítulo 4: Lógica de Strings. Solución al problema de determinar si dos palabras tienen la misma estructura (Isomorfismo). Código: Implementación robusta usando dos diccionarios para asegurar el mapeo uno a uno (biyeccción) e

Miniatura no disponible

✈️ Colección de Ejercicios - Capítulo 4: Mapeo de Datos. Ejercicio de traducción automática usando diccionarios (Key-Value). Objetivo: Convertir una cadena de texto al alfabeto radiofónico (NATO/Aviación) donde 'A' es 'Alfa', 'B' es 'Bravo', etc. Prácti

Miniatura no disponible

? Colección de Ejercicios - Capítulo 4: Strings. Introducción a la manipulación de cadenas de texto. Ejercicio: Implementación de la función acronim que toma una frase, la separa en palabras (split) y construye una sigla con las iniciales en mayúsculas.

Miniatura no disponible

? Colección de Ejercicios - Capítulo 3: Algorítmica Avanzada. Estudio profundo de la sucesión de Fibonacci y su eficiencia. Contenido: Suma de términos pares y múltiplos de 3 (bucle while). Fibonacci Matricial: Implementación optimizada. Análisis de t

Miniatura no disponible

? Colección de Ejercicios - Capítulo 3: Números Primos. Implementación teórica y práctica del Sedàs (Criba) d'Eratòstenes. Contenido del Notebook: Explicación paso a paso del algoritmo para filtrar no-primos. Función primer(n): Lógica para encontrar el

Miniatura no disponible

? Colección de Ejercicios - Capítulo 3: Criptografía Básica. Introducción a los números primos y tests de primaliad. Contenido: Función primers: Criba para encontrar primos. Primos de Wieferich: Algoritmo de búsqueda con condiciones de potencia modular

Miniatura no disponible

? Colección de Ejercicios - Capítulo 3: Resolución de Problemas. Conjunto de desafíos matemáticos resueltos con fuerza bruta y bucles. Números que cumplen 3 condiciones simultáneas (Factoriales y Cuadrados). Suma de cuadrados perfecta. Suma de múltipl

Miniatura no disponible

? Colección de Ejercicios - Capítulo 3: Estructura de Programas. Ejercicios variados de lógica y funciones. Calculadora de Texto: Procesar strings como operaciones matemáticas (eval). Mínimo Común Múltiplo: Algoritmo para encontrar el número más pequeñ

Miniatura no disponible

? Colección de Ejercicios - Capítulo 3: Aritmética Modular. Aplicaciones reales del operador módulo %. Ejercicios Resueltos: Validar NIF/DNI: Algoritmo real para calcular la letra del DNI. Columnas Excel: Conversión de números a letras (A, B... AA, AB)

Miniatura no disponible

⚡ Colección de Ejercicios - Capítulo 3: Bits. Ejercicios rápidos sobre propiedades de los números binarios. Función potencia2: Cómo detectar si un número es potencia de 2 analizando su representación binaria (contando unos).

Miniatura no disponible

? Colección de Ejercicios - Capítulo 3: Sistemas de Numeración. Pack completo de funciones de conversión de bases. Funciones: convert_hex: De Hexadecimal a Decimal usando diccionarios. binari: Generador de listas de números binarios. binari_elegant: F

Miniatura no disponible

? Colección de Ejercicios - Capítulo 3: Operaciones a Bajo Nivel. Implementación manual de la aritmética binaria usando listas. Función suma_binaria (o resta) simulando el comportamiento del hardware bit a bit. Gestión del Carry (acarreo) con condicion

Miniatura no disponible

? Colección de Ejercicios - Capítulo 3: Matemáticas. Aplicaciones prácticas del MCD (Máximo Común Divisor). Incluye: Algoritmo para simplificar fracciones a su expresión irreducible. Comparativa entre implementación manual y uso de math.gcd.

Miniatura no disponible

➗ Colección de Ejercicios - Capítulo 3: Algoritmos Básicos. Resolución de un problema clásico de entrevista técnica: Implementar una División Entera sin usar los operadores de multiplicación *, división / o módulo %. Uso de bucles y restas sucesivas pa

Miniatura no disponible

? Colección de Ejercicios - Capítulo 2: Manipulación de Tipos. Problema clásico de los "Números Apocalípticos" (buscar la secuencia 666 en potencias de 2). Conceptos clave: Operador de potencia **. Conversión de enteros a String (str) para buscar subca

Miniatura no disponible

? Colección de Ejercicios - Capítulo 2: Condicionales. Práctica introductoria sobre estructuras de control y toma de decisiones en Python. Contenido: Función prou_cerveses: Uso de operadores lógicos AND/OR para decidir el éxito de una fiesta. Función n

Miniatura no disponible

? Colección de Ejercicios - Capítulo 2: Bucles e Iteraciones. Ejercicio centrado en el uso de bucles for y acumuladores matemáticos. Incluye: Implementación de la función suma_quadrats. Diferencia entre la suma de cuadrados y el cuadrado de la suma. B

Miniatura no disponible

? Examen de laboratorio resuelto (Nota: 10/10). Ejercicios incluidos: Dibujo de un avet (árbol) con asteriscos según input. Detección de Números Perfectos y Números Ambiciosos (recursividad). Descomposición en suma de raíces cuadradas. Análisis de Com

Miniatura no disponible

? Solución completa a la Prueba 3 de laboratorio. Contiene el código Python para: Distancia de Levenshtein Modificada: Implementación que permite configurar costes personalizados para inserción, borrado y sustitución. Inversor de Frases: Función que inv

Miniatura no disponible

? Solución a la primera prueba de laboratorio (Fundamentos). Ideal para repasar lo básico antes del parcial: Uso de input y validación con while. Tablas de multiplicar. Manipulación de Strings (strip, upper) y condicionales. Operaciones básicas con Li

Miniatura no disponible

? Examen parcial completo con teoría y práctica. Teoría: Preguntas sobre complejidad, criptografía y multiplicación modular. Práctica: Detector de Palíndromos con Rotación. Conversión eficiente de Octal a Binario. Compresión de datos RLE (Run Length En

Miniatura no disponible

? Solución detallada del segundo parcial. Incluye ejercicios avanzados: Horspool: Tabla de desplazamientos y traza del algoritmo. Levenshtein: Recuperación del alineamiento (trazabilidad). Teorema Maestro: Cálculo de recurrencias T(n). Algoritmos de L

Miniatura no disponible

? Solución al ejercicio del punto extra "Twelve Days of Christmas". Implementación de lógica de bucles acumulativos para calcular: El número total de regalos acumulados. El coste financiero total según una tabla de precios. Cálculo inverso (cuántos día

Miniatura no disponible

? Megapack de Práctica: Archivo ZIP con múltiples Notebooks (.ipynb) de ejercicios resueltos para dominar la asignatura de Algorítmica. Contenido: Ejercicios variados de complejidad y Big O. Algoritmos de ordenación y búsqueda. Divide y Vencerás. Pro

Miniatura no disponible
zip

? Examen de reevaluación resuelto. Muy útil para repasar todo el curso.Contiene:Teoría: Bases numéricas (BCD) y Recursividad vs Iteratividad.Teorema Maestro y Pequeño Teorema de Fermat.Análisis de coste de algoritmo de multiplicación $O(n^3)$.Problema de

Miniatura no disponible