题解 | #孩子们的游戏(圆圈中最后剩下的数)#
孩子们的游戏(圆圈中最后剩下的数)
https://www.nowcoder.com/practice/f78a359491e64a50bce2d89cff857eb6
class Solution {
public:
public:
int LastRemaining_Solution(int n, int m) {
int array[5000] = {1}; //定义一个数组
for(int i = 0;i<n-1;i++){
array[i] = i+1;
}
array[n-1] = 0; //构建环形数组
int _num {1},_table {}; //_num 计数,_table 数组下标
while(array[_table] != _table){
if(_num == m-1){ //计数到了m-1个,更改数组指向
array[_table] = array[array[_table]];
_table= array[_table];
_num = 1;
continue; //此处需跳出本次循环
}
_table = array[_table];
_num++;
}
return _table;
}
};

传音控股公司福利 356人发布