面试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