圆圈中最后剩下的数字
class Solution {
public:
int q[4010];
bool notexist[4010];
void move(int &j,int n)//后移
{
do
{
j++;
j=j%n;
}
while(notexist[j]!=false);
}
int lastRemaining(int n, int m){
for (int i = 0,j=0; i < n-1; i ++ )//执行n-1次
{
for (int k = 0; k < m-1; k ++ )//j后移m-1次
move(j,n);
notexist[j]=true;
move(j,n);
}
for (int i = 0; i < n; i ++ )
if(notexist[i]==false) return i;
}
};
有帮助的话可以点个赞,我会很开心的~