今天群友出了一题:
一个数列,把第一个元素删除,然后把第二个元素放到数列的最后,依次操作下去,直到把数列中所有的数都删除,要求依次打印出这个过程中删除的数。
想一下这个过程类似于约瑟夫环,相当于把数组当成一个环,然后每隔一个数删掉一个数,直到把所有的数删完,当然这个过程中要打印出被删除的数。
/**
* 思路:弄一个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)** 三子...
最后,10.5题是一个经典的约瑟夫环问题(Josephus Problem),在圈中报数并淘汰的游戏中寻找最后的幸存者。这是一个典型的链表操作问题,可以使用链表模拟报数过程,每次淘汰报到特定数字的节点,直到只剩下最后一个...
这是一个经典的算法问题,通常被称为"猴子国王"或"约瑟夫环"问题。问题的核心在于模拟一个循环移除的过程,每数到m的猴子会被踢出圈子,直到只剩下一个猴子。算法实现的关键在于使用数组存储猴子的编号,并通过循环...
题目中的“报数出列问题”,也称为约瑟夫环问题(Josephus Problem),是一个经典的理论计算机科学问题。这个问题的基本设定是人们按照一定的规律报数,报到特定数字的人会被淘汰,直到只剩下最后几个人为止。在这个...
该问题是一个典型的算法问题,类似于约瑟夫环。要求找出从1开始按1-3报数,数到3退出后的最后一个小朋友编号。解决此问题需要掌握循环、条件判断及数组或链表的数据结构。 6. **文件系统操作**: 提供的附加题...
该题涉及循环控制和计数器,实现了一个类似于约瑟夫环(Josephus Problem)的算法。这里用一个循环数组q表示状态,通过i和j指针追踪元素,cnt记录连续的m个元素。当cnt等于m的倍数时,将i位置的元素移出圈子,更新n...
3. **递归与非递归**:递归在二叉树遍历、约瑟夫环问题等中都有应用,非递归的算法如栈实现队列。 4. **图的遍历**:虽然未给出具体题目,但提到了图论算法,包括图的遍历,类似于树的遍历,需要防止死循环,通常...
用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用...
- **约瑟夫环**:通过模拟约瑟夫环问题,考察学生对于循环链表和递归的理解。 ### 6. 综合面试提问 在面试过程中,除了专业知识外,还可能会涉及到一些综合性质的问题,如项目经验、团队合作能力、解决问题的能力...
约瑟夫环问题是一个经典的递归问题,涉及循环队列或链表的使用。通过递归算法,可以有效地模拟出队列中人员按照特定规则出列的过程。 #### 4. 迷宫问题 迷宫问题通常使用图或树结构来建模,通过深度优先搜索(DFS)...
这道题目是经典的约瑟夫环问题,涉及循环、数组和条件判断。考生需要创建一个循环,模拟报数过程,并在达到条件时从数组中移除元素,最终确定最后留下的元素。 总的来说,这些试题旨在测试考生对C语言基础知识的...
8. **约瑟夫环**:也称为约瑟夫问题,是一个著名的理论问题,涉及到链表操作和循环移位,用于理解链表和循环结构的处理。 9. **冒泡排序**:基础排序算法,通过不断交换相邻的逆序元素来逐渐排序,适合小规模数据...
Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...
Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...
Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...
4. **约瑟夫环问题**:这是算法设计中的经典问题,用数组或链表实现,模拟循环报数并移除的过程。要求能处理到30人的环,并支持动态输入m和n的值。 5. **学生宿舍管理查询软件**:设计数据库结构(数组或链表)来...