DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Invertendo uma Lista e inserindo entre Maior e menor

Com foco em melhorar ainda mais o rendimento e aprendizado em uma linguagem, também exercendo a lógica da programação, nessa nova série de resoluções irei demonstrar como resolvi certos conflitos de lógica: alguns simples, outros que necessitam de mais esforço.

Arrays - DS

Nesse primeiro exercício nos é passado uma listagem com parâmetros. Nosso objetivo nesse caso é inverter a lista, utilizando return para mostrar os arrays na ordem contrária. Veja mais a seguir ->

/* Padrão:
4 parâmetros
1 4 3 2


O que ele quer:2 3 4 1*/
Enter fullscreen mode Exit fullscreen mode

É possível resolver esse desafio de muitas formas. A forma que fiz foi a seguinte:

function reverseArray(a) {
    // Write your code here
    let reverse = [];
    for (let i = a.length -1; i >= 0; i--){
      reverso.push(a[i]);
    }
    return reverse
}
Enter fullscreen mode Exit fullscreen mode

Esse código define uma função chamada "reverseArray" que recebe um array "a" como entrada. A função cria um novo array "reverse" e preenche-o com os elementos de "a" na ordem inversa, começando do último elemento e terminando no primeiro. Finalmente, a função retorna o array "reverse".

Mini-Max-Sum

No caso abaixo nós temos um parâmetro que pede para inserirmos a soma máxima e soma mínima:

Image description

Resolvi da seguinte maneira:

function miniMaxSum(arr) {
    // Write your code here
  const totalArrSum = arr.reduce((acc, cur) => acc + cur);

  let miniSum = totalArrSum - Math.max(...arr);
  let maxSum = totalArrSum - Math.min(...arr);

  console.log(miniSum,maxSum);
}
Enter fullscreen mode Exit fullscreen mode

Criamos uma const que vai fazer um reduce que soma o valor atual com o que foi guardado. Fazendo isso, criamos uma variável dos valores mínimos(sem o maior valor da lista) que pega o const reduce com todos os valores somados, menos o valor máximo alcançado(Math.max(...arr)) que seria 9.

No caso do maior valor seria o mesmo procedimento mas retirando do parâmetro o valor 1. Por fim , ele nos pede para printar o valor, por essa razão usamos console.log(miniSum,MaxSum);

Com isso, finalizamos os problemas no HackerRank de hoje. Até a próxima!

Top comments (0)