题解 | #孩子们的游戏(圆圈中最后剩下的数)#
孩子们的游戏(圆圈中最后剩下的数)
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; } };