西安做网站的公司有,邢台做网站费用,宝安中心做网站,新八建设集团有限公司网站原题链接#xff1a;力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台
题目描述 n 个人站成一排#xff0c;按从 1 到 n 编号。 最初#xff0c;排在队首的第一个人拿着一个枕头。每秒钟#xff0c;拿着枕头的人会将枕头传递给队伍中的下一个人。一…原题链接力扣LeetCode官网 - 全球极客挚爱的技术成长平台
题目描述 n 个人站成一排按从 1 到 n 编号。 最初排在队首的第一个人拿着一个枕头。每秒钟拿着枕头的人会将枕头传递给队伍中的下一个人。一旦枕头到达队首或队尾传递方向就会改变队伍会继续沿相反方向传递枕头。 例如当枕头到达第 n 个人时TA 会将枕头传递给第 n - 1 个人然后传递给第 n - 2 个人依此类推。 给你两个正整数 n 和 time 返回 time 秒后拿着枕头的人的编号 样例1
输入 n 4, time 5 输出 2 队伍中枕头的传递情况为1 - 2 - 3 - 4 - 3 - 2 。 5 秒后枕头传递到第 2 个人手中。 样例2
输入 n 3, time 2 输出 3 队伍中枕头的传递情况为1 - 2 - 3 。 2 秒后枕头传递到第 3 个人手中。 Tag 模拟 数学 思路 一共两个方向传递队首向队尾、队尾向队首 从头传到尾需要的次数是n-1次我们只需要求出cnt time/(n-1)看cnt的奇偶就知道下一次传递的方向是哪个了接着还需要传递 time%(n-1)次这时分类讨论即可 C代码
class Solution {
public:int passThePillow(int n, int time) {int cnt time/(n-1);if(cnt1){return n-(time%(n-1));}else{return time%(n-1)1;}}
};