约瑟夫环
方法一约瑟夫环 递归
正经的约瑟夫换问题,证明过程约瑟夫环
参考代码
class Solution:def findTheWinner(self, n: int, k: int) -> int:return self.ring(n,k) + 1def ring(self, n,k):if n == 1:return 0return (self.ring(n-1,k) + k ) % n
复杂度分析
方法二约瑟夫环迭代
class Solution:def findTheWinner(self, n: int, k: int) -> int:ans = 0for i in range(1,n + 1):ans = (ans + k) % ireturn ans + 1
