Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Contar pares con una suma

Cuenta los pares de posiciones cuyos valores suman un objetivo dado.

Lo que aprenderás

  • Comprobar cada par de posiciones una sola vez
  • Empezar el bucle interno tras el índice externo
  • Contar coincidencias con un objetivo

Problema

Ver original (inglés)

Cuenta los pares de posiciones diferentes i < j en numbers donde numbers[i] + numbers[j] es igual a target. Usa dos bucles anidados.

Implementa count_pairs_with_sum(numbers, target).

Entrada

numbers: La lista de enteros. target: La suma que se busca.

Salida

Devuelve el número de pares.

Restricciones

0 ≤ longitud de numbers ≤ 500; -10,000 ≤ cada número, target ≤ 10,000

Ejemplos

Ejemplo 1
Entrada:
target = 6
numbers = [1, 5, 3, 3, 4]

Salida esperada:
expected = 2
Entrada:
long long target = 6;
std::vector<long long> numbers = {1, 5, 3, 3, 4};

Salida esperada:
long long expected = 2;
Entrada:
long target = 6;
long[] numbers = new long[] {1, 5, 3, 3, 4};

Salida esperada:
long expected = 2;

Explicación

1 + 5, 3 + 3 (los dos 3 en posiciones diferentes) suman 6: 2 pares.

Ejemplo 2
Entrada:
target = 4
numbers = [2, 2, 2]

Salida esperada:
expected = 3
Entrada:
long long target = 4;
std::vector<long long> numbers = {2, 2, 2};

Salida esperada:
long long expected = 3;
Entrada:
long target = 4;
long[] numbers = new long[] {2, 2, 2};

Salida esperada:
long expected = 3;

Explicación

Cada par de los tres 2 suma 4: posiciones (0,1), (0,2), (1,2) = 3 pares.

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Comprueba cada pareja anterior-posterior y mira si su suma coincide con el objetivo.

Pista 2

Un doble bucle sencillo basta porque el tamaño de entrada es pequeño.

Pista 3

Ten cuidado de contar cada pareja una sola vez, usando posiciones con i menor que j.

Complejidad esperada

tiempo O(n^2), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.