class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @param m int整型
* @return int整型
*/
int ysf(int n, int m) {
if(n<1 || m<1)return -1;
// write code here
list<int> nums;
for(int i=1; i<=n; i++){
nums.push_back(i);
}
auto bt = nums.begin();
while(nums.size() >1){
for(int i=1; i<m; i++){
++bt;
if(bt == nums.end()){
bt = nums.begin(); //手动创造循环
}
}
auto next = bt; //next = bt++; 是先进行= 再进行++;
++next;
if(next == nums.end()){
next = nums.begin();
}
nums.erase(bt);
bt = next;
}
return *bt;
}
};