每隔2个数删除一个数的删数问题
2016-08-12 17:24
141 查看
问题:有一个数组a
顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。
输入:数组的长度,如8;输出:6
下面是我的解决办法:
说明:countDel用来算删除的数的个数;count用来计算两数的间隔;i 是遍历数组的游标; l(length)是数组的长度
采用下标标记,将删除的数的下标赋值为-1,遍历数组,当遇到值非-1的就用count计数,count累计为3时,说明当前的这个下标对应的数应当被删除(对应的值置为-1),这时也要累计删除的个数countSize并将count清0。
遍历数组时,当游标 i 等于数组长度时,模掉数组长度,如此循环,直到countDel=数组长度时,跳出遍历循环,返回的 i-1 就是最后一个被删除的数的下标。下面附上java的实现:
可以访问的我的简书删数问题
顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。
输入:数组的长度,如8;输出:6
下面是我的解决办法:
说明:countDel用来算删除的数的个数;count用来计算两数的间隔;i 是遍历数组的游标; l(length)是数组的长度
采用下标标记,将删除的数的下标赋值为-1,遍历数组,当遇到值非-1的就用count计数,count累计为3时,说明当前的这个下标对应的数应当被删除(对应的值置为-1),这时也要累计删除的个数countSize并将count清0。
遍历数组时,当游标 i 等于数组长度时,模掉数组长度,如此循环,直到countDel=数组长度时,跳出遍历循环,返回的 i-1 就是最后一个被删除的数的下标。下面附上java的实现:
import java.util.Scanner; /** * @author Administrator */ public class CountIndex { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int length; while (scanner.hasNextInt()) { length = scanner.nextInt(); int[] index = new int[length]; System.out.println(coutIndex(length, index)); } } public static int coutIndex(int l, int[] index) { int i = 0; int count = 0; int countDel = 0; while (true) { if (countDel == l) { return i - 1; } if (i == l) { i = i % l; } if (index[i] != -1) { count++; } if (count == 3) { count = 0; countDel++; index[i % l] = -1; } i++; } } }
可以访问的我的简书删数问题
相关文章推荐
- 华为每隔2个删除一个数
- 针对这一段时间ASP.NET版中比较集中突出的问题,我写了一个完整的页面,包含显示/修改/删除/添加/排序/合并/写文件/显示图片或文档,有详细代码注释
- 解决XML节点删除后会留下一个空节点的问题
- (转)Win7/Ubuntu双系统删除一个后开机问题
- html页面中关于一个table表格中设置上下2个td宽度一致的问题
- 问题9:编程实现一个单链表的建立/测长/打印以及结点的删除。
- "BOF或EOF中有一个是真,或者当前的记录已被删除,所需的操作要求一个当前的记录"问题解决
- extjs环境搭建需要引入2个问题一个css一个js
- 数据更新:updata 逻辑运算符的优先等级问题 not>and>or 删除一个表中的内容 约束
- 删除2个非递增链表相同的元素,并且合并为一个非递增链表
- 在论坛中出现的比较难的sql问题:10(删除多表中的同一个外键)
- C/C++面试之算法系列--约瑟夫环:每隔两个循环删除数组元素,求最后删除者的下标问题
- Linux+Windows双系统删除其中一个的问题(引导程序问题)
- 关于在2个界面上操作数据库中同一个表的问题,
- 一个删除并且插入的事务问题
- 删除XML子节点会留下一个空节点的问题
- 约瑟夫环:每隔两个循环删除数组元素,求最后删除者的下标问题
- (转)问题:假设一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(既不是第一个,也不是最后一个节点),请将该节点从单链表中删除。
- 编程之美-快速寻找满足条件的2个数(扩展问题)的一个解法的注释
- rm: 无法删除"/run/user/root/gvfs": 是一个目录 问题