wordpress exploit scanner,深圳网络seo推广,四川住房和城乡建设部网站首页,东莞网站建设企慕递枕头【LC2582】 n 个人站成一排#xff0c;按从 1 到 n 编号。 最初#xff0c;排在队首的第一个人拿着一个枕头。每秒钟#xff0c;拿着枕头的人会将枕头传递给队伍中的下一个人。一旦枕头到达队首或队尾#xff0c;传递方向就会改变#xff0c;队伍会继续沿相反方向传…递枕头【LC2582】 n 个人站成一排按从 1 到 n 编号。 最初排在队首的第一个人拿着一个枕头。每秒钟拿着枕头的人会将枕头传递给队伍中的下一个人。一旦枕头到达队首或队尾传递方向就会改变队伍会继续沿相反方向传递枕头。 例如当枕头到达第 n 个人时TA 会将枕头传递给第 n - 1 个人然后传递给第 n - 2 个人依此类推。 给你两个正整数 n 和 time 返回 time 秒后拿着枕头的人的编号。 思路 每一轮次从1到n或者从n到1需要 n − 1 n-1 n−1秒求出 time 秒可以完成的完整轮次 t i m e / ( n − 1 ) time / (n-1) time/(n−1)剩余时间为 t i m e % ( n − 1 ) time \% (n-1) time%(n−1) 若 t i m e / ( n − 1 ) time / (n-1) time/(n−1)为偶数那么下一轮次从1出发返回 1 t i m e % ( n − 1 ) 1time \% (n-1) 1time%(n−1)若 t i m e / ( n − 1 ) time / (n-1) time/(n−1)为奇数那么下一轮次从n出发返回 n − t i m e % ( n − 1 ) n-time \% (n-1) n−time%(n−1) 实现 class Solution {public int passThePillow(int n, int time) {int cur time / (n - 1);if (cur % 2 0){return 1 time % (n - 1);}else{return n - time % (n - 1);}}
}复杂度 时间复杂度 O ( 1 ) \mathcal{O}(1) O(1)空间复杂度 O ( 1 ) \mathcal{O}(1) O(1)