Java每隔两个数删掉一个数问题详解

 更新时间:2021年04月23日 08:36:25   作者:橘白呀啊  
这篇文章主要介绍了Java每隔两个数删掉一个数问题详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

题目描述

有一个数组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(删除)
如此循环直到最后一个数被删除。

输入:
8

输出:
6

以下是本篇文章正文内容,下面案例可供参考

解题思路

一看到这个题目,就想到了队列的约瑟夫环的问题
此题思路:将两个数字取出来放到队列的后边,删掉第三个数字,如此循环,当队列只剩一个数字的时候,删掉它就是最后一个删除的数字。

代码如下

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main1 {
    /**
     * 每日一题-隔两个删数问题
     * 类似于约瑟夫环问题
     * @param args
     */
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        if(scanner.hasNext()) {
            int n = scanner.nextInt();
            Queue<Integer> queue = new LinkedList<>();
            for (int i = 0; i < n; i++) {
                queue.offer(i);//放进队列中
            }
            while(queue.size()>1){
            //将两个放到队尾,再删一个
                queue.offer(queue.poll());
                queue.offer(queue.poll());
                queue.poll();
            }
            System.out.println(queue.poll());
        }
    }
}

 到此这篇关于Java每隔两个数删掉一个数问题详解的文章就介绍到这了,更多相关Java每隔两个数删掉一个数 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中Map的排序问题详解

    Java中Map的排序问题详解

    本文给大家分享的是java中的map的按值排序和按键排序问题,并通过具体的示例,希望对大家能有所帮助。
    2016-01-01
  • Java数据结构及算法实例:三角数字

    Java数据结构及算法实例:三角数字

    这篇文章主要介绍了Java数据结构及算法实例:三角数字,本文直接给出实现代码,代码中包含详细注释,需要的朋友可以参考下
    2015-06-06
  • java抓取鼠标事件和鼠标滚轮事件示例

    java抓取鼠标事件和鼠标滚轮事件示例

    这篇文章主要介绍了java抓取鼠标事件和鼠标滚轮事件示例,需要的朋友可以参考下
    2014-05-05
  • Java跳跃游戏实例真题解决思路详解

    Java跳跃游戏实例真题解决思路详解

    这篇文章主要介绍了Java跳跃游戏,总的来说这并不是一道难题,那为什么要拿出这道题介绍?拿出这道题真正想要传达的是解题的思路,以及不断优化探寻最优解的过程。希望通过这道题能给你带来一种解题优化的思路
    2022-10-10
  • 详解Springboot之接收json字符串的两种方式

    详解Springboot之接收json字符串的两种方式

    这篇文章主要介绍了Springboot之接收json字符串的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Lombok不生效,提示java: 找不到符号的解决方案

    Lombok不生效,提示java: 找不到符号的解决方案

    这篇文章主要介绍了Lombok不生效,提示java: 找不到符号的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • java的内部类和外部类用法讲解

    java的内部类和外部类用法讲解

    本文详细讲解了java的内部类和外部类用法,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • Android Studio中ButterKnife插件的安装与使用详解

    Android Studio中ButterKnife插件的安装与使用详解

    本篇文章主要介绍了Android Studio中ButterKnife插件的安装与使用详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Java线程中的ThreadLocal类解读

    Java线程中的ThreadLocal类解读

    这篇文章主要介绍了Java线程中的ThreadLocal类解读,ThreadLocal是一个泛型类,作用是实现线程隔离,ThreadLocal类型的变量,在每个线程中都会对应一个具体对象,对象类型需要在声明ThreadLocal变量时指定,需要的朋友可以参考下
    2023-11-11
  • Java基本数据类型与封装类型详解(int和Integer区别)

    Java基本数据类型与封装类型详解(int和Integer区别)

    这篇文章主要介绍了Java基本数据类型与封装类型详解(int和Integer区别) ,需要的朋友可以参考下
    2017-02-02

最新评论