Durchschnittliche Wartezeit

PHPz
Freigeben: 2024-07-18 05:08:19
Original
530 Leute haben es durchsucht

Average Waiting Time

1701. Durchschnittliche Wartezeit

Mittel

Es gibt ein Restaurant mit einem einzigen Koch. Sie erhalten ein Array „Kunden“, wobei „Kunden[i] = [Ankunfti, Zeiti]:

“.
  • Ankunfti ist die Ankunftszeit des iten Kunden. Die Ankunftszeiten sind in nicht absteigender Reihenfolge sortiert.
  • Zeiti ist die Zeit, die benötigt wird, um die Bestellung des itenKunden vorzubereiten.

Wenn ein Kunde ankommt, gibt er dem Koch seine Bestellung und der Koch beginnt mit der Zubereitung, sobald er untätig ist. Der Kunde wartet, bis der Koch mit der Zubereitung seiner Bestellung fertig ist. Der Koch bereitet keine Speisen für mehr als einen Kunden gleichzeitig zu. Der Koch bereitet das Essen für die Kunden in der Reihenfolge vor, in der sie in der Eingabe angegeben wurden.

Return die durchschnittliche Wartezeit aller Kunden. Lösungen innerhalb von 10-5 von der tatsächlichen Antwort gelten als akzeptiert.

Beispiel 1:

  • Eingabe:Kunden = [[1,2],[2,5],[4,3]]
  • Ausgabe: 5,00000
  • Erklärung: 1) Der erste Kunde kommt zum Zeitpunkt 1, der Koch nimmt seine Bestellung entgegen und beginnt sofort mit der Zubereitung zum Zeitpunkt 1 und ist zum Zeitpunkt 3 fertig, sodass die Wartezeit des ersten Kunden 3 - 1 = 2 beträgt. 2) Der zweite Kunde kommt zum Zeitpunkt 2, der Koch nimmt seine Bestellung entgegen und beginnt zum Zeitpunkt 3 mit der Zubereitung und ist zum Zeitpunkt 8 fertig, sodass die Wartezeit des zweiten Kunden 8 - 2 = 6 beträgt. 3) Der dritte Kunde kommt zur Zeit 4, der Koch nimmt seine Bestellung entgegen und beginnt zur Zeit 8 mit der Zubereitung und ist zur Zeit 11 fertig, sodass die Wartezeit des dritten Kunden 11 - 4 = 7 beträgt.

Die durchschnittliche Wartezeit = (2 + 6 + 7) / 3 = 5.

Beispiel 2:

  • Eingabe:Kunden = [[5,2],[5,4],[10,3],[20,1]]
  • Ausgabe: 3,25000
  • Erklärung: 1) Der erste Kunde kommt zum Zeitpunkt 5, der Koch nimmt seine Bestellung entgegen und beginnt sofort mit der Zubereitung zum Zeitpunkt 5 und ist zum Zeitpunkt 7 fertig, sodass die Wartezeit des ersten Kunden 7 - 5 = 2 beträgt. 2) Der zweite Kunde kommt zum Zeitpunkt 5, der Koch nimmt seine Bestellung entgegen und beginnt zum Zeitpunkt 7 mit der Zubereitung und ist zum Zeitpunkt 11 fertig, sodass die Wartezeit des zweiten Kunden 11 - 5 = 6 beträgt. 3) Der dritte Kunde kommt zur Zeit 10, der Koch nimmt seine Bestellung entgegen und beginnt zur Zeit 11 mit der Zubereitung und ist zur Zeit 14 fertig, sodass die Wartezeit des dritten Kunden 14 - 10 = 4 beträgt. 4) Der vierte Kunde kommt zur Zeit 20, der Koch nimmt seine Bestellung entgegen und beginnt sofort zur Zeit 20 mit der Zubereitung und ist zur Zeit 21 fertig, sodass die Wartezeit des vierten Kunden 21 - 20 = 1 beträgt.

Die durchschnittliche Wartezeit = (2 + 6 + 4 + 1) / 4 = 3,25.

Einschränkungen:

  • 1 <= Kunden.Länge <= 105
  • 1 <= Ankunfti, Zeiti<= 104
  • Ankunfti <= Ankunfti+1

Lösung:

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;
    }
}
Nach dem Login kopieren

Kontaktlinks

  • LinkedIn
  • GitHub

Das obige ist der detaillierte Inhalt vonDurchschnittliche Wartezeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage