class Solution {
public:
int LastRemaining_Solution(int n, int m) {
vector<int> num;
if(n<1)
return -1;
for(int i=0;i<n;i++){
num.push_back(i);
}
int pre = 0;//记录上一次选中小朋友的位置
while(n>1){
int index = (pre+m-1)%n; //本题代码核心
num.erase(num.begin()+index,num.begin()+index+1);
pre = index;
n--;
}
return num.back();
}
}; 本题是一道链表题,用c++的vector较为方便,

京公网安备 11010502036488号