语言:python
思路:构建一个1~n的数组,把数到m的位置移除
def lispos(data,star,m): ln = len(data) star = star % ln curp = star stp = m%(ln) curp = stp + curp if curp>ln: curp = curp - ln elif curp ==0: curp = ln return curp-1 class Solution: def ysf(self , n , m ): peop = [] for i in range(n): peop.append(i+1) ln = n star = 0 while ln > 1: star = lispos(peop, star, m) peop.pop(star) ln = ln - 1 return peop[0]