zoukankan      html  css  js  c++  java
  • 约瑟夫环经典问题

    public static void main(String[] args) {
            System.out.println(JSON.toJSON(kingRing(41, 3)));
        }
    
        //链表实现-删除效率高-不需要复制或移动元素
        public static Integer[] kingRing(int count, int kill) {
            Integer[] array = new Integer[Math.min(count, kill - 1)];
            int index = 0;
            if (count < kill) {
                //自增妙用
                for (int i = 0; i < count; i++) {
                    array[index++] = index;
                }
            }
            List<Integer> link = new LinkedList();
            for (int j = 0; j < count; j++) {
                link.add(j + 1);
            }
            int number = 0;
            int pointer = 0;
            while (kill <= link.size()) {
                number++;
                if (pointer > link.size() - 1) {
                    pointer = 0;
                }
                if (number % kill == 0) {
                    link.remove(pointer);
                    continue;
                }
                pointer++;
            }
            return link.toArray(array);
        }
    
    缘于生活,而归于工作。本人所书,而意于分享。 如有转载,请注明出处! --活出自己范儿
  • 相关阅读:
    DS博客作业05--查找
    DS博客作业04--图
    DS博客作业03--树
    栈和队列
    第六次作业
    第五次作业
    第四次作业
    第三次作业
    java任务
    第三周-自主学习任务-面向对象基础与类的识别
  • 原文地址:https://www.cnblogs.com/Small-sunshine/p/14949315.html
Copyright © 2011-2022 走看看