`
oboaix
  • 浏览: 275659 次
社区版块
存档分类
最新评论

循环删除指定索引位置一道面试题算法(2)

    博客分类:
  • JAVA
阅读更多

  最近再次跟朋友同事一起讨论一次,现在把改进的一些方法与想法实现代码贴出来,参考参考...先做个记录了,大家一起学习了...感觉调整幅度不小,简化了代码,共享学习l...

   

/**
*created by zxb
*date  2008-12-22 - 下午07:12:09
*zxb 开源测试项目 test
*500人站一圈数到第7的出列,循环反复直到剩下最后一个是谁?
*to do TODO
**/

package com.suanfa;

import java.util.ArrayList;
import java.util.List;

public class FiveHundred2 {

    private static final int CYCLE_NODE = 7; // 出列循环人数 就是到第三个点 人数位置 该人出列

    private static final int CYCLE_TOTAL_NUMBER = 500; // 循环圈的总人数

    public static void main(String[] args) {
        long l1 = System.currentTimeMillis();
        int a = CYCLE_NODE;
        int t = CYCLE_TOTAL_NUMBER;
        List<Integer> list = new ArrayList<Integer>();
        // 初始化 总人数
        for (int i = 1; i <= t; i++) {
            list.add(i);
        }
        list=doCycleList(list, a);
        for (int i = 0, len = list.size(); i < len; i++) {
            System.out.println(list.get(i));
        }
        long l2 = System.currentTimeMillis();
        System.out.println("程序执行完成花费时间: " + (l2 - l1));
    }


    public static List<Integer> doCycleList(List<Integer> list, int number) {
        int count = 0;
        int length = list.size();
        while (length > 1) {
            for (int i = 0; i < length; i++) { // 标记出列数位置
                count++;
                if (count % number == 0) {
                    list.set(i, 0);                 //出列标志为0 记数是一直往下走
                }
            }
            for (int i = 0; (length = list.size()) > 0 && i < length; i++) { // 正式出列
                if (list.get(i).equals(0)) {
                    list.remove(i);
                }
            }
        }
        return list;
    }
}



 

分享到:
评论

相关推荐

    计算机常见算法面试题

    计算机常见算法面试题 本资源摘要信息涵盖了计算机常见算法面试题,主要涉及链表、字符串操作、搜索算法等方面的知识点。下面是对标题、描述、标签和部分内容的详细解释: 标题:计算机常见算法面试题 该标题表明...

    c 数据结构 面试题 算法 面试题

    本资源包聚焦于C语言实现的数据结构面试题,旨在帮助应聘者准备相关面试,提升对数据结构和算法的理解。 一、链表 链表是一种线性数据结构,与数组不同,它在内存中不是连续存储的。每个节点包含数据和指向下一个...

    java面试题(算法+数据库)

    【Java面试题】 在Java面试中,面试官通常会考察候选人的算法基础以及数据库操作能力。这包括但不限于数据结构的理解、算法设计与分析、以及SQL的熟练运用。以下是相关知识点的详细介绍: 1. **算法基础**: - **...

    最热门的Java 算法面试题汇总

    以下是一些热门的Java算法面试题及其详细解释: 1. **双指针问题**:常用于解决数组相关的问题,如寻找两个数之和等于目标值,或者在有序数组中查找重复元素等。通过维护两个指针,一个从左向右移动,另一个从右向...

    面试题得物1

    【面试题得物1】涉及了众多IT领域的知识点,涵盖了Java、Kafka、RocketMQ、MySQL、Redis、算法和分布式等多个方面。以下是这些知识点的详细解释: 1. **数据库索引结构**:索引是数据库管理系统中用于提高查询速度...

    22道数据结构算法面试题.doc

    根据给定文件的信息,我们可以总结出以下数据结构与算法...以上是对文档中提到的几道数据结构和算法面试题的详细解析,每一道题目都给出了具体的代码实现和分析思路,这对于理解这些经典问题及其解决方法具有重要意义。

    面试宝典!高级软件测试面试题大放送

    本文总结了高级软件测试面试题,涵盖了软件测试的多个方面,包括数据类型、哈希算法、哈希冲突、内存管理和垃圾回收机制、拷贝机制、协程机制等。 一、列表和元组的区别 列表是动态的,长度可变,可以随意地增删改...

    数据库面试题数据库面试题.

    数据库面试题涵盖了数据库基础知识、数据结构、算法、面向对象编程、软件工程以及特定数据库系统(如Visual FoxPro和SQL)的使用等多个方面。以下是这些题目所涉及的关键知识点的详细解释: 1. **算法的执行效率与...

    算法大全-面试题-链表-栈-二叉树-数据结构

    "算法大全-面试题-链表-栈-二叉树-数据结构"这个压缩包文件提供了丰富的知识资源,旨在帮助学习者深入理解和应用这些核心概念。 链表是一种线性数据结构,与数组不同,它的元素在内存中不是连续存储的。链表由一...

    算法面试题大全

    从给定的文件信息来看,我们探讨的主题是“算法面试题”,这在IT行业特别是软件开发领域是非常重要的一个环节。面试官通过算法题来评估应聘者的逻辑思维能力、编程技能以及解决问题的能力。以下是对给定内容中涉及的...

    数据结构面试题

    面试题可能涉及循环队列、优先级队列(堆)等。 5. **哈希表**:哈希表通过哈希函数将键映射到数组中的位置,提供快速的查找、插入和删除操作。面试中可能问到哈希冲突的解决方法(开放寻址法、链地址法等)。 6. ...

    面试管经常文的Matlab面试题算法矩阵详情加解答2023.docx

    以下是对这些常见面试题的详细解释: 1. 创建矩阵: 在Matlab中,矩阵是其核心数据结构。创建矩阵的方法多种多样,最简单的方式是直接通过方括号`[]`来定义。例如,创建一个2x2矩阵A,包含数字1到4,可以使用如下...

    C# 面试题及答案 C# 面试题及答案

    这些知识点涵盖了C#的基础语法、面向对象特性、Web开发以及算法等多个方面,对于理解和解答C#面试题至关重要。通过深入学习和实践,开发者可以更好地掌握C#编程,从而在面试和实际工作中表现出色。

    C#面试题100例

    本资源提供了100多个C#面试题,涵盖了C#语言的各个方面,包括ASP.NET、委托、事件、索引器、排序算法等。这些题目可以帮助开发者更好地理解C#语言的特性和使用方法,并提高面试的通过率。 1. ASP.NET页面之间传递值...

    java中级面试题(自己汇总)

    "java中级面试题(自己汇总)" 本文总结了Java中级面试题,涵盖了集合、HashMap、HashSet、HashTable、ConcurrentHashMap、红黑树、Java 8对HashMap的优化、LinkedHashMap、TreeMap、IdentityHashMap等知识点。 ...

    .NET经典面试题(.NET面试集锦 全)

    本资源摘要信息涵盖了.NET经典面试题的知识点,涉及到C#语言、ASP.NET Web开发、面向对象编程、数据结构和算法等方面。 1. 访问权限修饰符 * private:私有成员,在类的内部才可以访问。 * protected:保护成员,...

    计算机常见算法面试题.docx

    【计算机常见算法面试题】涉及的是一些经典的C语言编程和算法问题,这些问题在面试中经常出现,对理解和掌握C语言以及基础算法至关重要。以下是对这些题目及其解法的详细解析: 1. **判断链表中是否有环**: 判断...

Global site tag (gtag.js) - Google Analytics