Passez l'oreiller

WBOY
WBOYoriginal
2024-07-16 22:22:011086parcourir

Pass the Pillow

2582. Passez l'oreiller

Facile

Il y a n personnes debout dans une file numérotée de 1 à n. La première personne dans la file tient d’abord un oreiller. Chaque seconde, la personne qui tient l’oreiller le passe à la personne suivante dans la file. Une fois que l'oreiller atteint la fin de la file, la direction change et les gens continuent de passer l'oreiller dans la direction opposée.

  • Par exemple, une fois que l'oreiller atteint la nième personne, ils le passent à la n-1ème personne, puis à la n-2ème personne et ainsi de suite.

Étant donné les deux entiers positifs n et time, renvoie l'index de la personne qui tient l'oreiller après time secondes.

Exemple 1 :

  • Entrée : n = 4, temps = 5
  • Sortie : 2
  • Explication : Les gens passent l'oreiller de la manière suivante : 1 -> 2 -> 3 -> 4 -> 3 -> 2.

Après cinq secondes, la 2ème personne tient l'oreiller.

Exemple 2 :

  • Entrée : n = 3, temps = 2
  • Sortie : 3
  • Explication : Les gens passent l'oreiller de la manière suivante : 1 -> 2 -> 3.

Après deux secondes, la 3ème personne tient l'oreiller.

Exemple 3 :

  • Entrée : n = 8, temps = 9
  • Sortie : 6

Contraintes :

  • 2 <= n <= 1000
  • 1 <= temps <= 1000

Solution :

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
    }
}
  • 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:
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