Sobes.tech
Middle+

/* Mums ir komplekts biļešu šādā formātā: [ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Saint Petersburg' }, ... ] No šiem biļetiem var uzbūvēt vienu nepārtrauktu maršrutu. Maršrutā nav loku vai atkārtojumu. Jāuzraksta programma, kas atgriež šos pašus biļešu objektus saskaņā ar maršruta secību. */ function getRoute(tickets = [], startCity) { // jūsu kods šeit } console.clear() console.log(getRoute([ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Saint Petersburg' }, ], 'NY')); /* [ { from: 'NY', to: 'London' }, { from: 'London', to: 'Moscow' }, { from: 'Moscow', to: 'Saint Petersburg' }, ] */

sobes.tech AI

Atbilde no AI

Lai atjaunotu maršrutu no biļešu kopuma, var izveidot karti (Map) no pilsētas izbraukšanas uz biļeti, un tad no sākuma pilsētas turpināt, izvēloties nākamo biļeti pēc atslēgas.

JavaScript piemērs:

function getRoute(tickets = [], startCity) {
  const map = new Map();
  tickets.forEach(ticket => {
    map.set(ticket.from, ticket);
  });

  const route = [];
  let currentCity = startCity;

  while (map.has(currentCity)) {
    const ticket = map.get(currentCity);
    route.push(ticket);
    currentCity = ticket.to;
  }

  return route;
}

console.log(getRoute([
  { from: 'London', to: 'Moscow' },
  { from: 'NY', to: 'London' },
  { from: 'Moscow', to: 'SPb' },
], 'NY'));

Šis kods izveido ātras meklēšanas karti pēc izbraukšanas pilsētas un pēc tam veido maršrutu, sākot ar startCity, līdz sasniedz galamērķi.