当前位置:   article > 正文

[编程题]删数_编程博客第2题 s2023dl6双向删除 时限:1s 空间:256m 双向删除 有n个数,保存在数组

编程博客第2题 s2023dl6双向删除 时限:1s 空间:256m 双向删除 有n个数,保存在数组

[编程题]删数

有一个数组 a[N] 顺序存放 0 ~ N-1 ,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以 8 个数 (N=7) 为例 :{ 0,1,2,3,4,5,6,7 },0 -> 1 -> 2 (删除) -> 3 -> 4 -> 5 (删除) -> 6 -> 7 -> 0 (删除),如此循环直到最后一个数被删除。

数据范围: 

输入描述:

每组数据为一行一个整数n(小于等于1000),为数组成员数

输出描述:

一行输出最后一个被删掉的数的原始下标位置。

输入例子1:

8

输出例子1:

6

输入例子2:

1

输出例子2:

0
  1. import java.util.*;
  2. public class Main {
  3. public static void main(String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. while(sc.hasNextInt()) {
  6. int n = sc.nextInt();
  7. LinkedList<Integer> queue = new LinkedList<>();
  8. for(int i = 0; i < n; i++) {
  9. queue.addLast(i);
  10. }
  11. while(queue.size() > 1) {
  12. queue.addLast(queue.getFirst());
  13. queue.removeFirst();
  14. queue.addLast(queue.getFirst());
  15. queue.removeFirst();
  16. queue.removeFirst();
  17. }
  18. System.out.println(queue.getFirst());
  19. }
  20. }
  21. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/434388
推荐阅读
相关标签
  

闽ICP备14008679号