一、题目
二、思路
1、本质是对从0到n-1这些数循环,然后找到m-1这个数,删除掉
2、因此思路为将0到n-1放到vector容器中,然后里面for循环遍历,外面while循环
3、Count计数不断累加,当Count==m-1时清0,重新开始计数
4、退出条件为vector容器大小为1
三、代码
class Solution {
public:
int LastRemaining_Solution(int n, int m) {
if(n<=0 || m<=0 )
{
return -1;
}
vector<int>res;
for(int i=0;i<n;++i)
{
res.emplace_back(i);
}
int Count=0;
while(!res.empty() && res.size()!=1)
{
for(auto iter=res.begin();iter!=res.end();)
{
if(Count==m-1)
{
res.erase(iter);
Count=0;
}
else
{
++iter;
Count++;
}
}
}
if(!res.empty())
{
return *res.begin();
}
else
{
return -1;
}
}
};