面试题:圆圈中最后剩下的数
题目描述:0,1,...n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字,求圆圈里最后剩下的数字
方法1:约瑟夫环
public class Solution { public int LastRemaining_Solution(int n, int m) { if(n==0||m<1) return -1; int last=0; for(int i=2;i<=n;i++){ last=(last+m)%i; } return last; } }
方法2 :环形链表