--- id: a3f503de51cfab748ff001aa title: Pairwise challengeType: 5 videoUrl: '' localeTitle: Emparelhados --- ## Description
Dado um array arr , encontre pares de elementos cuja soma seja igual ao segundo argumento arg e retorne a soma de seus índices. Você pode usar vários pares que tenham os mesmos elementos numéricos, mas índices diferentes. Cada par deve usar os menores índices disponíveis possíveis. Uma vez que um elemento tenha sido usado, ele não pode ser reutilizado para emparelhar com outro elemento. Por exemplo, pairwise([1, 1, 2], 3) cria um par [2, 1] usando o 1 no índice 0 em vez do 1 no índice 1, porque 0 + 2 <1 + 2. Por exemplo, pairwise([7, 9, 11, 13, 15], 20) retorna 6 . Os pares que somam 20 são [7, 13] e [9, 11] . Podemos então escrever o array com seus índices e valores.
Índice 0 1 2 3 4
Valor 7 9 11 13 15
Abaixo, vamos pegar seus índices correspondentes e adicioná-los. 7 + 13 = 20 → Índices 0 + 3 = 3
9 + 11 = 20 → Índices 1 + 2 = 3
3 + 3 = 6 → Return 6 Lembre-se de usar Read-Search-Ask se você ficar preso. Tente fazer pair programming. Escreva seu próprio código.
## Instructions
## Tests
```yml tests: - text: 'pairwise([1, 4, 2, 3, 0, 5], 7) deve retornar 11.' testString: 'assert.deepEqual(pairwise([1, 4, 2, 3, 0, 5], 7), 11, "pairwise([1, 4, 2, 3, 0, 5], 7) should return 11.");' - text: 'pairwise([1, 3, 2, 4], 4) deve retornar 1.' testString: 'assert.deepEqual(pairwise([1, 3, 2, 4], 4), 1, "pairwise([1, 3, 2, 4], 4) should return 1.");' - text: 'pairwise([1, 1, 1], 2) deve retornar 1.' testString: 'assert.deepEqual(pairwise([1, 1, 1], 2), 1, "pairwise([1, 1, 1], 2) should return 1.");' - text: 'pairwise([0, 0, 0, 0, 1, 1], 1) deve retornar 10.' testString: 'assert.deepEqual(pairwise([0, 0, 0, 0, 1, 1], 1), 10, "pairwise([0, 0, 0, 0, 1, 1], 1) should return 10.");' - text: 'pairwise([], 100) deve retornar 0.' testString: 'assert.deepEqual(pairwise([], 100), 0, "pairwise([], 100) should return 0.");' ```
## Challenge Seed
```js function pairwise(arr, arg) { return arg; } pairwise([1,4,2,3,0,5], 7); ```
## Solution
```js // solution required ```