DeTechn Blog

Python圆圈中剩下的数字

递推公式:f[i] = (f[i-1]+m)%i

'''
0, 1, 2, n-1这n个数字排成一个圆环, 从数字0开始每次从这个圆圈里删除第m个数字
求这个圆圈中最后剩下的一个数字
'''

# -*- coding:utf-8 -*-
class Solution:
    def LastRemaining_Solution(self, n, m):
        if n < 1 or m < 1:
            return -1
        remainIndex = 0
        for i in range(1, n+1):
            remainIndex = (remainIndex + m) % i
        return remainIndex

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »