面试题:圆圈中最后剩下的数

题目描述: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 :环形链表

 

posted on 2018-08-22 10:12  Aaron12  阅读(134)  评论(0编辑  收藏  举报

导航