Parejas al revés
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- listas
- ciclos
Enunciado
Escribe una función que reciba una lista de números y regrese cuántas parejas están al revés de como quedarían si la lista estuviera ordenada de menor a mayor. Una pareja está al revés cuando un número es más grande que otro que aparece después de él.
Con 1, 20, 6, 4 y 5 la respuesta es 5: el 20 es más grande que el 6, que el 4 y que el 5, y el 6 es más grande que el 4 y que el 5.
Los dos extremos te dicen si vas bien: una lista que ya está ordenada de menor a mayor no tiene ninguna pareja al revés, y una ordenada de mayor a menor las tiene todas.
Las reglas: los dos números no tienen que estar pegados, cuenta también los que están lejos. Dos números iguales no están al revés, así que no cuentan. Con una lista vacía o de un solo número no hay pareja que revisar y la respuesta es 0.
Una pista: compara cada número con todos los que vienen después de él y lleva la cuenta.
Ejemplos
El ejemplo
[1, 20, 6, 4, 5] → 5
Ya está ordenada
[1, 2, 3, 4] → 0
De mayor a menor
[4, 3, 2, 1] → 6
Uno que se cuela
[1, 2, 1] → 1
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def parejas_al_reves(datos):
passJavaScript
function parejasAlReves(datos) {
}Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.