DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Estações Espaciais

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, iremos percorrer um país onde várias das cidades que existem nele guardam estações espaciais, nosso objetivo é retornar o número de distan. Vejamos mais informações com a explicação e sua resolução.

Flatland Space Stations -

Flatland é um país com várias cidades, algumas das quais com estações espaciais. As cidades são numeradas consecutivamente e cada uma tem uma estrada de 1 km de comprimento conectando-a à próxima cidade. Não é uma rota circular, então a primeira cidade não se conecta com a última cidade. Determine a distância máxima de qualquer cidade até a estação espacial mais próxima.

Exemplo:

  • n = 3
  • c = [1]

Existem n = 3 cidades e a cidade 1 tem uma estação espacial. Eles ocorrem consecutivamente ao longo de uma rota. A cidade 0 é 1-0 = 1 unidade de distância e a cidade 2 é 2-1 = 1 unidade de distância. A cidade 1 está a 0 unidades de sua estação espacial mais próxima, pois uma está localizada lá. A distância máxima é 1.

  • Return int: a distância máxima que qualquer cidade está de uma estação espacial.

Vejamos o código:

function flatlandSpaceStations(n, c) {
// n = number of cities, c[m] = number of space station

let max = 0;
let numbStation = c.length;

  for (let index = 0; index < n; index++){
    let cities = [];
      for(let jindex = 0;jindex < numbStation; jindex++){
        cities.push(Math.abs(index - c[jindex]));
      }
    let min = Math.min(...cities);
      if (max < min) max = min;  
  }
    return max;
}
Enter fullscreen mode Exit fullscreen mode

A função inicia definindo duas variáveis, "max" e "numbStation", ambas inicialmente com o valor 0. "max" é a distância máxima entre uma cidade e sua estação espacial mais próxima e "numbStation" é o número total de estações espaciais no array "c".

Em seguida, há um loop "for" que percorre todas as cidades, de 0 até n-1, representado pela variável "index". Dentro desse loop, é criado um array vazio chamado "cities", que será usado para armazenar as distâncias entre a cidade atual e cada uma das estações espaciais no array "c". Um segundo loop "for" percorre todas as estações espaciais, de 0 até numbStation-1, representado pela variável "jindex". A distância entre a cidade atual e a estação espacial é calculada usando o método "Math.abs" que retorna o valor absoluto da diferença entre as posições da cidade atual e a estação espacial. O resultado é adicionado ao array "cities" usando o método "push".

Após calcular as distâncias de todas as estações espaciais para a cidade atual, o valor mínimo é encontrado no array "cities" usando o método "Math.min" com a sintaxe de spread operator ("...cities"). O resultado é armazenado na variável "min".

Em seguida, há uma verificação se o valor de "min" é maior que o valor atual de "max". Se sim, o valor de "max" é atualizado com o valor de "min".

Após percorrer todas as cidades, a função retorna o valor final de "max", que representa a maior distância entre uma cidade e sua estação espacial mais próxima.
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.

Top comments (0)