美文网首页
约瑟夫环

约瑟夫环

作者: ccDown | 来源:发表于2017-11-13 17:45 被阅读0次

    之前去面试的时候遇到这个问题,作为一只算法渣渣,自然带着恐惧的心情,然后自己瞎捣鼓了好长时间终于拼凑出来了一个很菜的算法。好不容易面到技术总监,总监问我时间复杂度这么大的算法有没有别的想法,作为一直渣渣自然是带着恐怖的心情惊恐地回答没有。不过结果很美好。

    public static void main(String[] args) {

    LinkedList queue = new LinkedList();

    for (int i = 0; i < 50; i++) {

    queue.offer(i);

    }

    printNum(queue);

    }

    public static void printNum(LinkedList queue) {

    while (queue.size() > 1) {

    for (int i = 0; i < queue.size(); i++) {

    if (i % 3 == 0) {

    System.out.println(queue.poll());

    } else {

    queue.offer(queue.poll());}}}

    System.out.println(queue.poll());

    }

    自己面试完成回来之后思考的简化操作

    public static void printNum(LinkedList queue) {

    for (int i = 0; i < queue.size() && queue.size() > 1; i++) {

    if (i % 3 == 0) {

    System.out.println(queue.poll()); i = 0;

    } else {

    queue.offer(queue.poll());

    } } System.out.println("最后一个数字=====" + queue.poll());

    }

    哇 效率提高了好多

    相关文章

      网友评论

          本文标题:约瑟夫环

          本文链接:https://www.haomeiwen.com/subject/otozmxtx.html