Maison > développement back-end > tutoriel php > Temps d'attente moyen

Temps d'attente moyen

PHPz
Libérer: 2024-07-18 05:08:19
original
611 Les gens l'ont consulté

Average Waiting Time

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;
    }
}
Copier après la connexion

Liens de contact

  • LinkedIn
  • GitHub

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal