圆圈中最后剩下的数字
题目 圆圈中最后剩下的数字
思路分析
约瑟夫问题 在双链表里使用模拟解决过 圆圈中最后剩下的数字
其实还可以用递归递推来写
代码实现
class Solution {
public:
int lastRemaining(int n, int m){
if(n==1)
return 0;
return (lastRemaining(n-1,m)+m)%n;
}
};
class Solution {
public:
int lastRemaining(int n, int m){
int last = 0;
for (int i = 2; i <= n; i++) {
last = (last + m) % i;
}
return last;
}
};
💬 评论