1701. Temps d'attente moyen
Moyen
Il y a un restaurant avec un seul chef. Vous recevez un tableau clients, où clients[i] = [arrivéei, heurei] :
-
Arrivali est l'heure d'arrivée du ième client. Les heures d'arrivée sont triées par ordre non décroissant.
-
timei est le temps nécessaire à la préparation de la commande du ième client.
Quand un client arrive, il remet sa commande au chef, et le chef commence à la préparer une fois qu'il est inactif. Le client attend que le chef ait fini de préparer sa commande. Le chef ne prépare pas de plats pour plus d'un client à la fois. Le chef prépare les plats des clients dans l'ordre qui leur a été indiqué lors de l'entrée.
Renvoyer le moyen temps d'attente de tous les clients. Les solutions dans les 10-5 de la réponse réelle sont considérées comme acceptées.
Exemple 1 :
-
Entrée : clients = [[1,2],[2,5],[4,3]]
-
Sortie : 5,00000
-
Explication :
1) Le premier client arrive à l'heure 1, le chef prend sa commande et commence immédiatement à la préparer à l'heure 1, et termine à l'heure 3, donc le temps d'attente du premier client est de 3 - 1 = 2.
2) Le deuxième client arrive à l'heure 2, le chef prend sa commande et commence à la préparer à l'heure 3, et termine à l'heure 8, donc le temps d'attente du deuxième client est de 8 - 2 = 6.
3) Le troisième client arrive à l'heure 4, le chef prend sa commande et commence à la préparer à l'heure 8, et termine à l'heure 11, donc le temps d'attente du troisième client est de 11 - 4 = 7.
Donc le temps d'attente moyen = (2 + 6 + 7) / 3 = 5.
Exemple 2 :
-
Entrée : clients = [[5,2],[5,4],[10,3],[20,1]]
-
Sortie : 3,25000
-
Explication :
1) Le premier client arrive à l'heure 5, le chef prend sa commande et commence immédiatement à la préparer à l'heure 5, et termine à l'heure 7, donc le temps d'attente du premier client est de 7 - 5 = 2.
2) Le deuxième client arrive à l'heure 5, le chef prend sa commande et commence à la préparer à l'heure 7, et termine à l'heure 11, donc le temps d'attente du deuxième client est de 11 - 5 = 6.
3) Le troisième client arrive à l'heure 10, le chef prend sa commande et commence à la préparer à l'heure 11, et termine à l'heure 14, donc le temps d'attente du troisième client est de 14 - 10 = 4.
4) Le quatrième client arrive à l'heure 20, le chef prend sa commande et commence immédiatement à la préparer à l'heure 20, et termine à l'heure 21, donc le temps d'attente du quatrième client est de 21 - 20 = 1.
Donc le temps d'attente moyen = (2 + 6 + 4 + 1) / 4 = 3,25.
Contraintes :
- 1 <= clients.length <= 105
- 1 <= arrivéei, heurei<= 104
- arrivéei <= arrivéei+1
Solution :
class Solution {
/**
* @param Integer[][] $customers
* @return Float
*/
function averageWaitingTime($customers) {
$currentTime = 0;
$totalWaitingTime = 0;
$n = count($customers);
foreach ($customers as $customer) {
$arrival = $customer[0];
$time = $customer[1];
if ($currentTime < $arrival) {
$currentTime = $arrival;
}
$currentTime += $time;
$totalWaitingTime += ($currentTime - $arrival);
}
return $totalWaitingTime / $n;
}
}
Liens de contact
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn