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);


    }
}
全部评论

相关推荐

程序员饺子:正常 我沟通了200多个 15个要简历 面试2个 全投的成都的小厂。很多看我是27直接不会了😅
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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