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


    }
}
全部评论

相关推荐

哇哇的菜鸡oc:他这不叫校招offer,而是实习offer
点赞 评论 收藏
分享
大世界中的渺小一棵:看出来你软硬都有基础,但是这样写简历软硬都擦边不知道你想投什么,建议针对岗位jd针对性修改下。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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