1、将编号存储在数组中;
2、删除操作,1)如果索引超过数组长度,则需要对其进行取模值作为需要删除的下标
            2)如果没有超过数组长度,则应该直接将当前的索引值进行更新并保存。
class Solution {
public:
    /**
     *
     * @param n int整型
     * @param m int整型
     * @return int整型
     */
    int ysf(int n, int m) {
        // write code here
        vector<int> perp;
        if(m==1) return n;
        for(int i=0;i<n;i++)
        {
            perp.push_back(i+1);
        }
        int j=0;
        while(perp.size()>1)
        {
            //索引下标
            int index=j+m-1;
            if(index>perp.size()-1)
            {
                //下一次从新计数的起点
                j=index%perp.size();
                perp.erase(perp.begin()+index%perp.size());
            }
            else
            {
                j=index;
                perp.erase(perp.begin()+index);
            }
        }
        return perp[0];
    }
};</int>

京公网安备 11010502036488号