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>