J'ai récemment passé un entretien dans une entreprise (commençant par M et se terminant par A) qui m'a posé cette question. Toujours en train de pratiquer mes algorithmes, j'espérais que quelqu'un pourrait m'aider à comprendre comment résoudre ce problème, et ces types de problèmes.
Le problème :
Vous disposez de 2 tableaux. Par exemple :
D = [10,7,13,12,4]
R = [5,12,7,10,12]
D
représente les prix de départ des vols de la ville A
à la ville B
. R représente les prix de retour des vols de la ville B
à la ville A
. Trouvez le coût minimum d'un vol aller-retour entre la ville A
et la ville B
. Par exemple, le minimum dans l'exemple est D[1] + R[2]
.
(il est possible de prendre le vol de retour sur le même index ou un index supérieur au vol de départ)
La partie délicate est que, évidemment, vous devez partir avant de revenir.
L'approche naïve est juste une double boucle for combinant toutes les possibilités. Cependant, je sais qu'il existe une meilleure approche, mais je n'arrive pas à la comprendre. Je crois que nous voulons créer une sorte de tableau temporaire avec le minimum jusqu'à présent ou quelque chose comme ça...
Merci de m'avoir lu.