题目描述
https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/
思路题解
模拟递归(超时)
class Solution:
def lastRemaining(self, n: int, m: int) -> int:
a=[i for i in range(n)]
def dfs(index,m):
nonlocal a
if len(a)==1:return a[0]
if len(a)==2:return a[index] if m&1==0 else a[(index+1)%2]
i=0
while i<m-1:
if index>=len(a)-1:
index=0
i+=1
else:
index+=1
i+=1
del a[index]
if index==len(a):index=0
return dfs(index,m)
return dfs(0,m)
dp
class Solution:
def lastRemaining(self, n: int, m: int) -> int:
x = 0
for i in range(2, n + 1):
x = (x + m) % i
return x