前言说明
算法学习,日常刷题记录。
题目连接
题目内容
0,1, ··· ,n - 1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。
例如:0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。
示例1:
输入: n = 5, m = 3
输出: 3
示例2:
输入: n = 10, m = 17
输出: 2
限制:
1 <= n <= 10^5
1 <= m <= 10^6
方法1
方法1使用模拟法,这种方法理解最直观,通过这种方法直观地理解计算的过程,但是比较低效,不建议使用,建议使用方法2的数学法,方法2在后面详细说明。
第一步
定义列表list,保存从0到n-1的数