Saltar al contenido

Pares con la diferencia justa

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):
    pass

JavaScript

function paresConDif(lista, k) {
}
Resolver este reto

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.

Más retos de O(n²)

Ver todos los retos →