约瑟夫环问题
问题定义
0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。
例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。
解法
1. 模拟链表
该方法时间复杂度为O(n * m)
/**
* @author 49367
* @date 2021/4/5 10:47
*/
public class ListNode {
public int val;
public ListNode next = null;
public ListNode(int val){
this.val = val;
}
public ListNode() {
}
public ListNode(int val, ListNode next)