约瑟夫环

约瑟夫环_第1张图片

class Solution {
public:
    int LastRemaining_Solution(int n, int m)
    {
        int count = n;
        int i = -1;
        int step = 0;
        vector 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;
    }
};

你可能感兴趣的:(LeetCode,简单,约瑟夫环)