剑指 Offer 62. 圆圈中最后剩下的数字

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int lastRemaining(int n, int m) {
int lastRemaining = 0; // 当 n 等于 1 时,只有一个数字 0, 即最后停留在 0 上

for (int i = 2; i <= n; i++) {
lastRemaining = (lastRemaining + m) % i;
}

return lastRemaining;
}
}

References

剑指 Offer 62. 圆圈中最后剩下的数字
四步核心公式 轻松弄懂约瑟夫环的递推原理