解密QQ号--队列

作者: Airycode | 来源:发表于2018-04-19 08:56 被阅读17次

解密QQ号的规则是:先将第一个数删除,紧接着将第二个数放到这串数字的末尾,知道剩下最后一个数字,将最后一个数字也删除,把删除的数字链接起来就是QQ号。
尝试编程思路:
首先需要一个数组来存储这串数字,解密的第一步就是怎么讲第一个数删除,在数组中删除一个元素就是把后面的元素往前面挪动一位,将前面的数字覆盖掉。补上之前的空位,但是这样会很好费时间,在这里我们引入两个变量head和tail,head用来记录队列的队首(即第一位),tail记录队列的队尾(即最后一位)的下一个位置。tail为什么记录队尾的下一个位置而不是队尾,这是因为队列中只剩下一个元素的时候,队首和队尾重合会带来一些麻烦,我们规定队首和队尾重合的时候,队列为空。
现在有9个数,9个数全部放入队列之后head=1;tail=10;此时head和tail之间的数就是目前队列中“有效”的数,如果删除一个数的话就head++。这样做虽然浪费了空间,但是节省了大量的时间。新添加一个数就q[tail] = x ;tail++;
代码实现:

import java.util.Scanner;


public class MyQueue {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int [] arr = new int[102];//开辟的数组空间
        for (int i=1;i<10;i++) {
            arr[i] = input.nextInt();
        }
        
        int head = 1;
        int tail = 10;//目前数组中
        while (head < tail) {//当队列不为空的时候循环
            //打印队首
            System.out.print(arr[head]+" ");
            head++;//出队
            //先将新的队首数据添加到队列的末尾
            arr[tail] = arr[head];
            tail++;
            //再讲队首出队
            head++;
        }
        
        
        
        
    }
    
}

运行结果:


image.png

相关文章

  • 解密QQ号--队列

    解密QQ号的规则是:先将第一个数删除,紧接着将第二个数放到这串数字的末尾,知道剩下最后一个数字,将最后一个数字也删...

  • 队列——解密 QQ 号

    新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ 号,小哈当然不会直接告诉小哼啦,原因...

  • 队列 - 解密美女QQ号

    FIFO

  • 05_解密 QQ 号_队列

    新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ 号,小哈当然不会直接告诉小哼啦,原因...

  • 数据结构-队列

    上一节我们讲解了解密QQ号,我们就用到队列的性质,队列是一种特殊的线性结构,它只允许在队列的首部进行删除操作,我们...

  • 算法学习2_队列,栈,链表

    队列 解密QQ号 新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ 号, 小哈当然不会...

  • 《啊哈!算法》学习 - Python笔记

    最常用的排序 -- 快速排序 解密QQ号 -- 队列 坑爹的奥数:口口口+口口口=口口口 代码参考网上的,原谅我自...

  • Flutter上线项目实战——队列任务

    一、应用场景 队列压缩视频 队列解密视频 队列请求网络 等等 二、实现思路 定义一个任务队列taskList [先...

  • 重拾算法Day05-队列

    解密QQ 小哼问小哈QQ,小哈说了一串加密数字"6 3 1 7 5 8 9 2 4", 解密规则是:丢到第一个数字...

  • QQ号

    自从有了网络营销以来,不少的企业都看到了这样的一种商机,也体会到网络营销带来的好处和发展。其实,现在想要买帐号也可...

网友评论

    本文标题:解密QQ号--队列

    本文链接:https://www.haomeiwen.com/subject/sjdbkftx.html