列表

详情


100325. 找出 K 秒后拿着球的孩子

给你两个 正整数 nk。有 n 个编号从 0n - 1 的孩子按顺序从左到右站成一队。

最初,编号为 0 的孩子拿着一个球,并且向右传球。每过一秒,拿着球的孩子就会将球传给他旁边的孩子。一旦球到达队列的 任一端 ,即编号为 0 的孩子或编号为 n - 1 的孩子处,传球方向就会 反转

返回 k 秒后接到球的孩子的编号。

 

示例 1:

输入:n = 3, k = 5

输出:1

解释:

经过的时间 孩子队列
0 [0, 1, 2]
1 [0, 1, 2]
2 [0, 1, 2]
3 [0, 1, 2]
4 [0, 1, 2]
5 [0, 1, 2]

示例 2:

输入:n = 5, k = 6

输出:2

解释:

经过的时间 孩子队列
0 [0, 1, 2, 3, 4]
1 [0, 1, 2, 3, 4]
2 [0, 1, 2, 3, 4]
3 [0, 1, 2, 3, 4]
4 [0, 1, 2, 3, 4]
5 [0, 1, 2, 3, 4]
6 [0, 1, 2, 3, 4]

示例 3:

输入:n = 4, k = 2

输出:2

解释:

经过的时间 孩子队列
0 [0, 1, 2, 3]
1 [0, 1, 2, 3]
2 [0, 1, 2, 3]

 

提示:

相似题目

找出转圈游戏输家

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int numberOfChild(int n, int k) { } };

golang 解法, 执行用时: 0 ms, 内存消耗: 2.2 MB, 提交时间: 2024-06-10 00:15:05

func numberOfChild(n, k int) int {
	t := k % (n - 1)
	if k/(n-1)%2 > 0 {
		return n - t - 1
	}
	return t
}

cpp 解法, 执行用时: 0 ms, 内存消耗: 7.2 MB, 提交时间: 2024-06-10 00:14:45

class Solution {
public:
    int numberOfChild(int n, int k) {
        int t = k % (n - 1);
        return k / (n - 1) % 2 ? n - t - 1 : t;
    }
};

java 解法, 执行用时: 0 ms, 内存消耗: 39.8 MB, 提交时间: 2024-06-10 00:14:32

class Solution {
    public int numberOfChild(int n, int k) {
        int t = k % (n - 1);
        return k / (n - 1) % 2 > 0 ? n - t - 1 : t;
    }
}

python3 解法, 执行用时: 36 ms, 内存消耗: 16.3 MB, 提交时间: 2024-06-10 00:14:19

class Solution:
    def numberOfChild(self, n: int, k: int) -> int:
        k, t = divmod(k, n - 1)
        return n - t - 1 if k % 2 else t

上一题