
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
解决方案:
类解决方案{
/*** @param 整数 $n
* @param 整数 $time
* @return 整数*/
函数 passThePillow($n, $time) {
$方向= 1; // 1 为前进,-1 为后退
$当前= 0; // 从第一人称开始
for ($i = 0; $i < $time; $i++) {
$当前+=$方向;
if ($current == $n - 1) {
$方向=-1; // 当到达最后一个人时将方向改为向后
} elseif ($当前== 0) {
$方向= 1; // 当到达第一个人时改变方向为前进
}
}
返回$当前+ 1; // 转换为从 1 开始的索引
}
}
- 领英
- GitHub










