题目

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

例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字一次是2、0、4、1,因此最后剩下的数字3。

image.png

思路

image.png
image.png
image.png

  1. class Solution:
  2. def lastRemaining(self, n: int, m: int) -> int:
  3. f = 0
  4. for i in range(2, n+1):
  5. f = (f + m) % i
  6. return f