2582. Pas Bantal
Mudah
Terdapat n orang berdiri dalam barisan berlabel dari 1 hingga n. Orang pertama dalam barisan pada mulanya memegang bantal. Setiap saat, orang yang memegang bantal memberikannya kepada orang seterusnya yang berdiri dalam barisan. Sebaik sahaja bantal sampai ke penghujung baris, arah berubah dan orang ramai terus melepasi bantal ke arah bertentangan.
Memandangkan dua integer positif n dan masa, kembalikan indeks orang yang memegang bantal selepas beberapa saat.
Contoh 1:
Selepas lima saat, orang ke-2 memegang bantal.
Contoh 2:
Selepas dua saat, orang ke-3 memegang bantal.
Contoh 3:
Kekangan:
Penyelesaian:
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 } }
Atas ialah kandungan terperinci Pas Bantal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!