Algoritmos de aproximación

Descripción general: un algoritmo de aproximación es una forma de tratar la completitud de NP para un problema de optimización. Esta técnica no garantiza la mejor solución. El objetivo del algoritmo de aproximación es acercarse lo más posible a la solución óptima en tiempo polinomial. Dichos algoritmos se denominan algoritmos de aproximación o algoritmos heurísticos. … Continue reading «Algoritmos de aproximación»

Combinar dos listas enlazadas no ordenadas para obtener una lista ordenada – Part 1

Dadas dos listas enlazadas no ordenadas , la tarea es fusionarlas para obtener una lista enlazada individual ordenada . Ejemplos:  Entrada: Lista 1 = 3 -> 1 -> 5, Lista 2 = 6-> 2 -> 4  Salida: 1 -> 2 -> 3 -> 4 -> 5 -> 6 Entrada: Lista 1 = 4 -> 7 … Continue reading «Combinar dos listas enlazadas no ordenadas para obtener una lista ordenada – Part 1»

Algoritmos de selección

El algoritmo de selección es un algoritmo para encontrar el número k-ésimo más pequeño (o más grande) en una lista o array . Ese número se llama estadístico de k-ésimo orden . Incluye los diversos casos para encontrar los elementos mínimo, máximo y mediano en una lista o una array . Para encontrar el elemento … Continue reading «Algoritmos de selección»

Número de formas de elegir K segmentos de línea de intersección en el eje X

Dada una array arr[] de segmentos de línea en el eje x y un número entero K , la tarea es calcular el número de formas de elegir los K segmentos de línea para que se crucen en cualquier punto. Como la respuesta puede ser grande, imprímela en módulo 10^9+7. Ejemplos:   Entrada: arr[] = [[1, … Continue reading «Número de formas de elegir K segmentos de línea de intersección en el eje X»

Número de subarreglos no decrecientes de longitud mayor o igual a K

Dada una array arr[] de N elementos y un número entero K , la tarea es encontrar el número de subarreglos no decrecientes de longitud mayor o igual a K . Ejemplos:   Entrada: arr[] = {1, 2, 3}, K = 2  Salida: 3  {1, 2}, {2, 3} y {1, 2, 3} son los subarreglos válidos. … Continue reading «Número de subarreglos no decrecientes de longitud mayor o igual a K»

clasificación de paciencia

Patience sorting es un algoritmo de clasificación basado en el juego de cartas Patience . En este algoritmo de clasificación, se utilizan las reglas del juego de la paciencia para clasificar una lista de elementos en función de sus valores. Reglas del juego de la paciencia:   Las cartas con un valor más bajo se pueden … Continue reading «clasificación de paciencia»

Comprobar si el número de factores pares e impares de un número son iguales

Dado un número N , la tarea es encontrar si N tiene el mismo número de factores pares e impares. Ejemplos:   Entrada: N = 10  Salida: SI  Explicación: 10 tiene dos factores impares (1 y 5) y dos factores pares (2 y 10) Entrada: N = 24  Salida: NO  Explicación: 24 tiene dos factores impares … Continue reading «Comprobar si el número de factores pares e impares de un número son iguales»

std::string::find_last_of en C++ con ejemplos

El std::string::find_last_of es una función miembro de la clase de string que se utiliza para encontrar el índice de la última aparición de cualquier carácter en una string. Si el carácter está presente en la string, devuelve el índice de la última aparición de ese carácter en la string; de lo contrario, devuelve string::npos . … Continue reading «std::string::find_last_of en C++ con ejemplos»

Verifique si la permutación dada es un BFS válido de un árbol dado

Dado un árbol con N Nodes numerados del 1 al N y una array de permutación de números del 1 al N. Compruebe si es posible obtener la array de permutación dada aplicando BFS (Breadth First Traversal) en el árbol dado. Nota: El recorrido siempre comenzará desde 1. Ejemplo:  Entrada: arr[] = { 1 5 … Continue reading «Verifique si la permutación dada es un BFS válido de un árbol dado»

Convierta un gráfico conectado no dirigido en un gráfico dirigido fuertemente conectado

Dado un gráfico no dirigido de N vértices y M aristas, la tarea es asignar direcciones a las M aristas dadas de modo que el gráfico se convierta en Componentes fuertemente conectados . Si un gráfico no se puede convertir en componentes fuertemente conectados, imprima «-1» . Ejemplos:  Entrada: N = 5, Edges[][] = { … Continue reading «Convierta un gráfico conectado no dirigido en un gráfico dirigido fuertemente conectado»