力扣2582.递枕头 + 力扣100325.找出K秒后拿着球的孩子
递枕头
-
编号从1开始
- 到达端点需要n-1的时间
- 设t = time % (n - 1) 则 t 为枕头与端点间距离
- time / (n - 1) 若为奇数 则正在从n ~ 1 若为偶数 则正在从1 ~ n
- 奇数答案为n - t 偶数答案为t + 1
-
class Solution { public: int passThePillow(int n, int time) { int t = time % (n-1); return time / (n-1) % 2 ? n - t : t + 1; } };
找出K秒后拿着球的孩子
-
编号从0开始
- k / (n-1)为奇数 则答案为 n-t-1 若为偶数 则答案为 t
-
class Solution { public: int numberOfChild(int n, int k) { int t = k % (n - 1); return k / (n-1) % 2 ? n - 1 - t : t; } };