Preguntas frecuentes de entrevistas sobre algoritmos | Serie 1

¿Qué es un algoritmo?  Informalmente, un algoritmo es cualquier procedimiento computacional bien definido que toma algún valor, o conjunto de valores, como entrada y produce algún valor, o conjunto de valores, como salida. Un algoritmo es, por lo tanto, una secuencia de pasos computacionales que transforman la entrada en la salida. (Fuente: Introducción a los … Continue reading «Preguntas frecuentes de entrevistas sobre algoritmos | Serie 1»

Incrementa los elementos posicionados impares en 1 y disminuye los elementos posicionados pares en 1 en una array

Dada una array arr[] , la tarea es incrementar todos los elementos impares en 1 y disminuir todos los pares en 1 . Ejemplos:  Entrada: arr[] = {3, 6, 8}  Salida: 4 5 9 Entrada: arr[] = {9, 7, 3}  Salida: 10 6 4 Enfoque: recorra la array elemento por elemento y, si la posición … Continue reading «Incrementa los elementos posicionados impares en 1 y disminuye los elementos posicionados pares en 1 en una array»

Transformación 2D | Rotación de objetos

Tenemos que rotar un objeto en un ángulo dado sobre un punto de pivote dado e imprimir las nuevas coordenadas. Ejemplos:  Input : {(100, 100), (150, 200), (200, 200), (200, 150)} is to be rotated about (0, 0) by 90 degrees Output : (-100, 100), (-200, 150), (-200, 200), (-150, 200) C // C program … Continue reading «Transformación 2D | Rotación de objetos»

Encuentre el número de islas distintas en una array 2D

Dada una array booleana 2D. La tarea es encontrar el número de islas distintas donde un grupo de 1 conectados (horizontal o verticalmente) forma una isla. Se considera que dos islas son distintas si y solo si una isla es igual a otra (no rotada ni reflejada). Ejemplos:  Entrada: rejilla[][] =  {{1, 1, 0, 0, … Continue reading «Encuentre el número de islas distintas en una array 2D»

Generación de casos de prueba | Conjunto 6 (árbol binario no ponderado aleatorio)

Generación de árbol binario no ponderado aleatorio : Dado que se trata de un árbol, el plan de generación de datos de prueba es tal que no se forma ningún ciclo. El número de aristas es uno menos que el número de vértices. Para cada EJECUCIÓN , primero imprima el recuento de Nodes, por ejemplo, … Continue reading «Generación de casos de prueba | Conjunto 6 (árbol binario no ponderado aleatorio)»

Árbol de boas Van Emde – Juego 3 | Sucesor y predecesor

Se recomienda encarecidamente leer primero los artículos anteriores sobre Van Emde Boas Tree. Procedimiento para el sucesor:  Caso base: si el tamaño del árbol es 2, entonces si la clave de consulta es 0 y la clave – 1 está presente en el árbol, devuelva 1, ya que será el sucesor. De lo contrario, devuelve … Continue reading «Árbol de boas Van Emde – Juego 3 | Sucesor y predecesor»

Seleccione números de tal manera que maximice la cantidad de dinero

Dadas dos arrays A1 y A2 de N números. Hay dos personas, A y B, que seleccionan números de N. Si A selecciona el número i-ésimo, entonces se le pagará una cantidad de dinero A1[i] y si B selecciona el número i-ésimo, se le pagará A2[i]. ] cantidad de dinero pero A no puede seleccionar … Continue reading «Seleccione números de tal manera que maximice la cantidad de dinero»

Ordene una array de strings según la frecuencia de buenas palabras en ellas

Dado un conjunto de reseñas de productos ( R ) de diferentes clientes y una string S que contiene buenas palabras separadas por un _ , la tarea es ordenar las reseñas en orden decreciente de su valor de bondad. El valor de bondad se define por el número de buenas palabras presentes en esa … Continue reading «Ordene una array de strings según la frecuencia de buenas palabras en ellas»

Algoritmo D’Esopo-Pape: ruta más corta de fuente única

Dado un grafo y un vértice de origen src en un grafo no dirigido ponderado , encuentre las rutas más cortas desde src a todos los vértices en el grafo dado. El gráfico puede contener bordes de peso negativos. Para este problema, ya hemos discutido el algoritmo de Dijkstra y el algoritmo de Bellman -Ford … Continue reading «Algoritmo D’Esopo-Pape: ruta más corta de fuente única»

Cuente el número de pasos para cubrir una distancia si los pasos se pueden dar en potencias de 2

Dada una distancia K a cubrir, la tarea es encontrar los pasos mínimos requeridos para cubrir la distancia si los pasos se pueden tomar en potencias de 2 como 1, 2, 4, 8, 16….. Ejemplos:   Input : K = 9 Output : 2 Input : K = 343 Output : 6 Los pasos mínimos requeridos … Continue reading «Cuente el número de pasos para cubrir una distancia si los pasos se pueden dar en potencias de 2»