Heim > Backend-Entwicklung > PHP-Tutorial > Gib das Kissen weiter

Gib das Kissen weiter

WBOY
Freigeben: 2024-07-16 22:22:01
Original
1099 Leute haben es durchsucht

Pass the Pillow

2582. Gib das Kissen weiter

Einfach

Es stehen n Personen in einer Reihe, die mit 1 bis n beschriftet ist. Die erste Person in der Schlange hält zunächst ein Kissen. Jede Sekunde gibt die Person, die das Kissen hält, es an die nächste Person weiter, die in der Schlange steht. Sobald das Kissen das Ende der Linie erreicht, ändert sich die Richtung und die Leute reichen das Kissen weiter in die entgegengesetzte Richtung.

  • Sobald das Kissen beispielsweise die n-te Person erreicht, geben sie es an die n-1-te Person weiter, dann an die n-2-te Person und so weiter.

Angesichts der beiden positiven ganzen Zahlen n und der Zeit wird der Index der Person, die das Kissen hält, nach Zeitsekunden zurückgegeben.

Beispiel 1:

  • Eingabe: n = 4, Zeit = 5
  • Ausgabe: 2
  • Erklärung:Menschen geben das Kissen auf folgende Weise weiter: 1 -> 2 -> 3 -> 4 -> 3 -> 2.

Nach fünf Sekunden hält die 2. Person das Kissen.

Beispiel 2:

  • Eingabe: n = 3, Zeit = 2
  • Ausgabe: 3
  • Erklärung:Menschen geben das Kissen auf folgende Weise weiter: 1 -> 2 -> 3.

Nach zwei Sekunden hält die 3. Person das Kissen.

Beispiel 3:

  • Eingabe: n = 8, Zeit = 9
  • Ausgabe: 6

Einschränkungen:

  • 2 <= n <= 1000
  • 1 <= Zeit <= 1000

Lösung:

class Solution {

    /**
     * @param Integer $n
     * @param Integer $time
     * @return Integer
     */
    function passThePillow($n, $time) {
        $direction = 1;  // 1 for forward, -1 for backward
        $current = 0;    // Starting at the first person

        for ($i = 0; $i < $time; $i++) {
            $current += $direction;

            if ($current == $n - 1) {
                $direction = -1;  // Change direction to backward when reaching the last person
            } elseif ($current == 0) {
                $direction = 1;   // Change direction to forward when reaching the first person
            }
        }

        return $current + 1; // Convert to 1-based index
    }
}
Nach dem Login kopieren
  • LinkedIn
  • GitHub

Das obige ist der detaillierte Inhalt vonGib das Kissen weiter. 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