DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Números Trigêmeos

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje,iremos verificar valores num array que sejam trigêmeos, onde o primeiro. Vejamos mais informações com a explicação detalhada e sua resolução.

Beautiful Triplets -

Dado um array de inteiros a um trigêmeo (a[i],a[j],a[k]) é chamado de Belo. Temos como algumas regras as seguintes:

  • i < j < k
  • a[j] - a[i] = a[k]- a[j] = d

Dada uma sequência crescente de números inteiros e o valor de d, conte o número de belos trigêmeos na sequência.

  • d = valor a combinar
  • arr = a sequência, ordenada em ordem crescente

Queremos receber de volta a quantidade de números trigêmeos belos que podemos ter.

Vejamos o código:

function beautifulTriplets(d, arr) {
    // Write your code here
  let i, j, k;
  let triplets = []

  arr.forEach((x) => {
    i = x
    j = arr.filter((y) => y === i + d)[0]
    k = arr.filter((z) => z === j + d)[0]
    if ((j && k) !== undefined) triplets.push([i, j, k])
  })
  return triplets.length
}
Enter fullscreen mode Exit fullscreen mode

Nas primeiras linhas, duas variáveis são declaradas (i, j, k) e um array vazio chamado triplets é criado. Logo após isso criamos uma estrutura que irá iterar cada elemento do array arr usando forEach que irá executar uma função em cada elemento.

O valor atual do elemento é x, e ele será atribuído a i. Na linha j iremos passar um filtro dentro dos parâmetros do array arr em busca de um elemento que seja equivalente a condição y === i + d. Ou seja, busca um elemento y que seja igual ao valor atual mais o valor de d. Ao final o elemento encontrado será atribuído a j. O mesmo acontece no caso de k.

Depois criamos um if onde se os valores atribuídos a je a kforem diferentes de undefined significa que encontramos uma sequência "bela" e um novo array com esses três valores é adicionado ao array triplets. E para finalizar retornamos o valor de triplets ou melhor, seu comprimento que será o número de possibilidades de trigêmeos "belos".

O resultante será :

7 3
1 2 4 5 7 8 10

input: 3
Enter fullscreen mode Exit fullscreen mode

Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.

Top comments (0)

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay