首頁 >後端開發 >php教程 >把枕頭遞過去

把枕頭遞過去

WBOY
WBOY原創
2024-07-16 22:22:011084瀏覽

Pass the Pillow

2582。把枕頭遞過來

簡單

有 n 個人站在一排,標示為 1 到 n。隊伍中的第一個人最初拿著一個枕頭。每一秒,拿著枕頭的人都會把它傳給隊伍中的下一個。一旦枕頭到達隊伍的末端,方向就會改變,人們繼續以相反的方向傳遞枕頭。

  • 例如,一旦枕頭到達第 n 個人,他們就會將其傳遞給第 n - 1 個人,然後傳遞給第 n - 2 個人,依此類推。

給定兩個正整數n和time,傳回time秒後抱枕頭的人的索引。

範例1:

  • 輸入: n = 4,時間 = 5
  • 輸出: 2
  • 解釋: 人們透過以下方式傳遞枕頭: 1 ->; 2-> 3-> 4-> 3-> 2.

五秒後,第二個人拿著枕頭。

範例2:

  • 輸入: n = 3,時間 = 2
  • 輸出: 3
  • 解釋: 人們透過以下方式傳遞枕頭: 1 ->; 2-> 3.

兩秒後,第三個人拿著枕頭。

範例 3:

  • 輸入: n = 8,時間 = 9
  • 輸出: 6

約束:

  • 2
  • 1

解:

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
    }
}
  • 領英
  • GitHub

以上是把枕頭遞過去的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn