class Solution {
public:
int LastRemaining_Solution(int n, int m)
{
int count = n;
int i = -1;
int step = 0;
vector<int> flag(n, 0);
while (count>0)
{
//使用i表示被删除节点,step表示的是当前走的步数是多少
++i;
if (i >= n)
i = 0;
if (flag[i] == 1)
continue;
++step;
if (step == m)
{
flag[i] = 1;
--count;
step = 0;
}
}
return i;
}
};
约瑟夫环
最新推荐文章于 2021-10-18 14:09:09 发布