首页 > 后端开发 > php教程 > 把枕头递过去

把枕头递过去

WBOY
发布: 2024-07-16 22:22:01
原创
1086 人浏览过

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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板