LinkedList模拟约瑟夫环

孩子们的游戏(圆圈中最后剩下的数)

http://www.nowcoder.com/questionTerminal/f78a359491e64a50bce2d89cff857eb6

比如n=5, m=3

关键在于不要让m=0,1,2,0,1,2,...这样循环:
n: 0,1,2,3,4,5
m: 0,1,2,0,1,2

可以直接跳着来:
n: 0,1,2,3,4,5
m: 0, ,2, ,4,

import java.util.*;
public class Solution {
    public int LastRemaining_Solution(int n, int m) {

        if(n<=0) return -1;

        LinkedList<Integer> container = new LinkedList<>();

        for(int i=0;i<n;++i){
            container.add(i);
        }

        int idx = 0;
        while(container.size()>1){
            idx = (idx+(m-1))%container.size();
            container.remove(idx);
        }

        return container.get(0);


    }
}
全部评论

相关推荐

面试拷打成m:我感觉他说的挺对的,感觉我找不到工作也要去送外卖了,至少饿不死
点赞 评论 收藏
分享
脾气小祖宗:这简历摸到都得狠狠地消毒液洗手😂
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务