Pas Bantal

WBOY
WBOYasal
2024-07-16 22:22:011096semak imbas

Pass the Pillow

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.

  • Contohnya, sebaik sahaja bantal itu sampai ke orang ke-1, dia hantar ke orang ke-1, kemudian ke orang ke-2 dan seterusnya.

Memandangkan dua integer positif n dan masa, kembalikan indeks orang yang memegang bantal selepas beberapa saat.

Contoh 1:

  • Input: n = 4, masa = 5
  • Output: 2
  • Penjelasan: Orang ramai melepasi bantal dengan cara berikut: 1 -> 2 -> 3 -> 4 -> 3 -> 2.

Selepas lima saat, orang ke-2 memegang bantal.

Contoh 2:

  • Input: n = 3, masa = 2
  • Output: 3
  • Penjelasan: Orang ramai melepasi bantal dengan cara berikut: 1 -> 2 -> 3.

Selepas dua saat, orang ke-3 memegang bantal.

Contoh 3:

  • Input: n = 8, masa = 9
  • Output: 6

Kekangan:

  • 2 <= n <= 1000
  • 1 <= masa <= 1000

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
    }
}
  • LinkedIn
  • GitHub

Atas ialah kandungan terperinci Pas Bantal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Artisan Serve no LumenArtikel seterusnya:Artisan Serve no Lumen