题目:0到n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里最后剩下的一个数字。
思路:
代码:
public int LastRemaining_Solution(int n, int m) {
if (n < 1 || m < 1) {
return -1;
}
int last = 0;
for (int i = 2 ; i <= n ; i++) {
last = (last + m) % i;
}
return last;
}

本文介绍了一种解决约瑟夫环问题的有效算法。通过迭代计算的方式,该算法能够找到从0到n-1这n个数字围成的圆圈中,在每次删除第m个数字的情况下,最终剩下的一个数字。

被折叠的 条评论
为什么被折叠?



