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.
É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 :
Après cinq secondes, la 2ème personne tient l'oreiller.
Exemple 2 :
Après deux secondes, la 3ème personne tient l'oreiller.
Exemple 3 :
Contraintes :
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 } }
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!