约瑟夫环问题
递归公式 f(n) = [ f(n-1) + m ] % n
n为该轮没删除之前数字个数
class Solution {
public:
int lastRemaining(int n, int m) {
int f = 0; // f(1)=0,最后序列还剩一个数字f(1)时,就是答案,答案index=0。
for(int i=2; i<=n; i++){ // i为该轮没删除之前数字个数
f = (f+m) % i;
}
return f;
}
};
python
class Solution:
def lastRemaining(self, n: int, m: int) -> int:
f = 0
for i in range(2,n+1):
f = (f+m) % i
return f



