剑指offer 面试62题

时间:2022-09-16 14:57:05

面试62题:

题目:圆圈中最后剩下的数字

题:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。

解题思路:约瑟夫环问题,可以根据数学规律找出高效的解法,具体如下,详见剑指offer。

解题代码:

# -*- coding:utf- -*-
class Solution:
def LastRemaining_Solution(self, n, m):
# write code here
if n< or m<:
return -
res=
for i in range(,n+):
res=(res+m)%i
return res