今天群友出了一题:
一个数列,把第一个元素删除,然后把第二个元素放到数列的最后,依次操作下去,直到把数列中所有的数都删除,要求依次打印出这个过程中删除的数。
想一下这个过程类似于约瑟夫环,相当于把数组当成一个环,然后每隔一个数删掉一个数,直到把所有的数删完,当然这个过程中要打印出被删除的数。
/**
* 思路:弄一个bit数组和目标数组一一对应,如果目标数据项被'删除',
* 那么在对应的bit数组上做一下标记,下次数step的时候会跳过这些
* 别标记的bit。
*
* @param array
*/
public static void pirntFromArray(int[] array){
int len = array.length;
BitSet bitSet = new BitSet(len);
int p = 0;
for(int i=0;i<len;i++){
System.out.print(array[p] + " ");
bitSet.set(p);
int s = 2;
while(s > 0 && i != len - 1){
p = (len - p) == 1 ? 0 : p + 1;
if(!bitSet.get(p)){
s -- ;
}
}
}
}
public static void main(String[] args) {
int array[] = new int[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
pirntFromArray(array);
}
1 3 5 7 9 11 13 15 4 8 12 2 10 6 14
分享到:
相关推荐
在本题中,我们面对的是约瑟夫环问题的一个变体,即“猴王”问题,我们需要通过编程来解决。 猴王问题,也称为“猴子选王”或“猴子王游戏”,与原始的约瑟夫环问题类似,但目标是找出最后被选中的“猴王”。在这个...
首先,让我们来分析第一个问题——约瑟夫环问题。这是一个古老而又经典的问题,它起源于一个著名的传说:一群人围成一圈,按照规则进行报数,数到特定数字的人将被“淘汰”,直至剩下最后一人。该问题的解决方案利用...
**CS512:另一个约瑟夫环问题(未做)(Yet Another Josephus Problem)** 这个题目扩展了基本的约瑟夫问题,可能引入了新的规则或参数,需要创新性地思考和设计算法。 **CS513:三子棋游戏(Tic Tac Toe)** 三子...
在众多编程问题中,幻方问题、约瑟夫环(Josephus问题)以及n皇后问题以其丰富的历史背景和对算法基本功的考验,成为了经典的编程练习题。这些题目不仅能够锻炼程序员对数组操作、递归和回溯等编程概念的理解,而且...
这是一个经典的算法问题,通常被称为"猴子国王"或"约瑟夫环"问题。问题的核心在于模拟一个循环移除的过程,每数到m的猴子会被踢出圈子,直到只剩下一个猴子。算法实现的关键在于使用数组存储猴子的编号,并通过循环...
题目中的“报数出列问题”,也称为约瑟夫环问题(Josephus Problem),是一个经典的理论计算机科学问题。这个问题的基本设定是人们按照一定的规律报数,报到特定数字的人会被淘汰,直到只剩下最后几个人为止。在这个...
- **适用范围**:适用于解决类似约瑟夫环的问题。 ### 15. 含有指针成员的类的拷贝 - **深拷贝与浅拷贝**:当类中含有指针成员时,需要区分深拷贝和浅拷贝的概念。 - **实现细节**:在拷贝构造函数中,对于指针...
该问题是一个典型的算法问题,类似于约瑟夫环。要求找出从1开始按1-3报数,数到3退出后的最后一个小朋友编号。解决此问题需要掌握循环、条件判断及数组或链表的数据结构。 6. **文件系统操作**: 提供的附加题...
该题涉及循环控制和计数器,实现了一个类似于约瑟夫环(Josephus Problem)的算法。这里用一个循环数组q表示状态,通过i和j指针追踪元素,cnt记录连续的m个元素。当cnt等于m的倍数时,将i位置的元素移出圈子,更新n...
这是一道经典的约瑟夫环问题。问题描述了M个人围成一圈报数,每报到N的人出局,然后下一个人重新从1开始报数,直至只剩最后一个人。该问题可以通过模运算快速解决。我们可以用一个循环表示剩余人数的变化,每次报数...
3. **递归与非递归**:递归在二叉树遍历、约瑟夫环问题等中都有应用,非递归的算法如栈实现队列。 4. **图的遍历**:虽然未给出具体题目,但提到了图论算法,包括图的遍历,类似于树的遍历,需要防止死循环,通常...
用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用...
- **约瑟夫环**:通过模拟约瑟夫环问题,考察学生对于循环链表和递归的理解。 ### 6. 综合面试提问 在面试过程中,除了专业知识外,还可能会涉及到一些综合性质的问题,如项目经验、团队合作能力、解决问题的能力...
约瑟夫环问题是一个经典的递归问题,涉及循环队列或链表的使用。通过递归算法,可以有效地模拟出队列中人员按照特定规则出列的过程。 #### 4. 迷宫问题 迷宫问题通常使用图或树结构来建模,通过深度优先搜索(DFS)...
这道题目是经典的约瑟夫环问题,涉及循环、数组和条件判断。考生需要创建一个循环,模拟报数过程,并在达到条件时从数组中移除元素,最终确定最后留下的元素。 总的来说,这些试题旨在测试考生对C语言基础知识的...
8. **约瑟夫环**:也称为约瑟夫问题,是一个著名的理论问题,涉及到链表操作和循环移位,用于理解链表和循环结构的处理。 9. **冒泡排序**:基础排序算法,通过不断交换相邻的逆序元素来逐渐排序,适合小规模数据...
Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...
Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...
这可能涉及到循环结构和数组操作,通过报数的方式筛选出最后的胜者,类似于约瑟夫环问题。 #### 1.18 娶公主 这可能是一个决策树或博弈论问题,需要分析不同的选择策略,以找到最优的决策路径。 #### 1.19 递增...
4. **约瑟夫环问题**:这是算法设计中的经典问题,用数组或链表实现,模拟循环报数并移除的过程。要求能处理到30人的环,并支持动态输入m和n的值。 5. **学生宿舍管理查询软件**:设计数据库结构(数组或链表)来...