Bonjour, j'ai un exercice très bizarre que je n'arrive pas à résoudre,le voici:
Pour attirer les touristes ,un casino de Las Vegas propose un buffet à volonté
où chacun paye ce qu'il souhaite payer.
Sachant que vous connaissez ce que chaque touriste est prêt à payer, on vous
demande de calculer les gains du restaurant pour la journée:
- En début de journée , le restaurant est vide.
- Un touriste arrive,est placé,mange,paye et s'en va.
- il y'a seulement nbSeats places disponibles.Un touriste peut manger et payer
seulement s'il peut être placé.- Si un touriste arrive au restaurant alors qu'il n'y a plus de places disponibles:
- Soit il attend son tour jusqu'à ce qu'une place se libère
- Soit il attend un moment et part avant qu'une place se libère
- Un touriste peut venir plusieurs fois dans la journée dans ce cas il ne paye au maximum
qu'une seule fois.
implémentez la méthode computeDayGains(nbSeats,payingGuests,guestMovements) qui renvoie les gains
de la journée:
- Le tableau payingGuests contient ce que chaque touriste est prêt à payer.Par exemple si payingGuests[5] vaut 25,
cela veut dire que le touriste avec l'identifiant 5 est prêt à payer 25$ pour le buffet.- Le tableau guestMovements donne l'ordre des arrivées et des départs de touristes.La première fois que vous
trouvez un identifiant dans le tableau, il s'agit d'une arrivée.La deuxième fois ,il s'agit d'un départ.Une arrivée est
toujours suivie d'un départ dans la journée.
Voici le code qu'il faut compléter:
Voici le code que j'ai proposé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class Solution { public static int computeDayGains(int nbSeats,int[] payingGuests,int[] guestMovements){ return 0; } }
guestMovements
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class Solution { public static int computeDayGains(int nbSeats , int[] payingGuests , int[] guestMovements){ int sum=0; for (int i=0;i< payingGuests.length;i++){ sum=sum+payingGuests[i]; } return (nbSeats*sum); }
est un array et je ne sais pas comment l'utiliser dans le calcul des gains de la journée,
Avez - vous une idée ?
Partager