Pares con la diferencia justa
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- listas
- ciclos
Enunciado
Escribe una función que reciba una lista de números y un número k, y regrese cuántos pares de la lista tienen exactamente esa diferencia.
Con 1, 5, 3, 4 y 2, y k igual a 3, la respuesta es 2: el 1 con el 4, y el 5 con el 2.
Las reglas: la diferencia nunca es negativa, así que mide la distancia entre los dos, no cuál va primero. Cada par se cuenta una sola vez, porque el 1 con el 4 y el 4 con el 1 son el mismo par. Un número no hace par consigo mismo, pero si el mismo valor aparece dos veces son dos números distintos: en 2, 4, 1, 3 y 4, con k igual a 2, hay tres pares, porque el 2 se junta con los dos 4. Si k es 0, los pares son los números iguales. Con menos de dos números no hay nada que comparar: regresas 0.
Compara cada número con los que ya viste. Y si primero ordenas la lista, puedes dejar de buscar en cuanto la diferencia se pasa de k.
Ejemplos
Diferencia de 3
[1, 5, 3, 4, 2], 3 → 2
De cuatro en cuatro
[8, 12, 16, 4, 0, 20], 4 → 5
Un valor repetido
[2, 4, 1, 3, 4], 2 → 3
Ningún par
[10, 20, 30], 5 → 0
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def pares_con_dif(lista, k):
passJavaScript
function paresConDif(lista, k) {
}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.