题目描述
0, 1, …, n-1这n个数字(n>0)排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。
求出这个圆圈里剩下的最后一个数字。
样例
输入:n=5 , m=3
输出:3
算法
(约瑟夫环)
时间复杂度
$O(n!)
C++ 代码
class Solution {
public:
int lastRemaining(int n, int m){
if(n == 1) return 0;
return (lastRemaining(n - 1, m) + m) % n;
}
};