约瑟夫环:孩子们的游戏(圆圈中最后剩下的数)

class Solution {
public:
    int LastRemaining_Solution(int n, int m)
    {
        if(m == 0 || n == 0)return -1;
        list list1;
        for(int i = 0; i < n; i++){
            list1.push_back(i);
        }
        list::iterator it = list1.begin();
        while(list1.size() > 1){
            for(int i = 1 ;i < m; i++){
                it++;
                if(it == list1.end()){
                    it = list1.begin();
                }
            }
            it = list1.erase(it);
            if(it == list1.end()){
                it = list1.begin();
            }
            
        }
        return list1.front();
    }
};

  这里调用了标准库中的函数。

你可能感兴趣的:(约瑟夫环:孩子们的游戏(圆圈中最后剩下的数))