『牛客|每日一题』模板队列

简介: 基础算法无论在研究生面试还是求职面试都是十分重要的一环,这里推荐一款算法面试神器:牛客网-面试神器;算法题只有多刷勤刷才能保持思路与手感,大家赶紧行动起来吧(温馨提示:常见的面试问答题库也很nice哦 https://www.nowcoder.com/link/pc_csdncpt_ll_sf


1.每日一题

原题链接:戳我戳我

网络异常,图片无法展示
|

2.测试案例

6

push1

pop

front

push2

push3

pop

1

error

2

3.Queue类实现

用Java自带的队列实现,代码如下,只需要做输入获取的处理与三种操作的判断即可,剩下的事情就是调用对应的类方法

Modifier_and_Type Method and Description
boolean add(E e) 将指定的元素插入到此队列中,如果可以立即执行此操作,而不会违反容量限制, true在成功后返回 IllegalStateException如果当前没有可用空间,则抛出IllegalStateException。
E element() 检索,但不删除,这个队列的头。
boolean offer(E e) 如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中。
E peek() 检索但不删除此队列的头,如果此队列为空,则返回 null
E poll() 检索并删除此队列的头,如果此队列为空,则返回 null
E remove() 检索并删除此队列的头。

importjava.util.*;

publicclassMain{

   publicstaticvoidmain(Stringargs[]){

       Queue<Integer>q=newLinkedList<Integer>();

       Scannerin=newScanner(System.in);

       intn=in.nextInt();

       in.nextLine();

       intnum;

       String[] strs;

       while(n--!=0){

           strs=in.nextLine().split(" ");

           //入队

           if(strs[0].equals("push")){

               q.add(Integer.parseInt(strs[1]));

           }elseif(strs[0].equals("pop")){

           //队不空,队首出列

               if(!q.isEmpty()){

                   System.out.println(q.poll());

               }else{

                   System.out.println("error");

               }

           }elseif(strs[0].equals("front")){

           //队不空,输出队首

               if(!q.isEmpty()){

                   System.out.println(q.peek());

               }else{

                   System.out.println("error");

               }

           }

       }

   }  

}

4.数组实现队列

importjava.util.*;

publicclassMain {

   publicstaticvoidmain(String[] args) {

       // TODO Auto-generated method stub

       Scannerscan=newScanner(System.in);

       intn=Integer.parseInt(scan.nextLine()) ;

       MyQueueq=newMyQueue(n+1);

       while(scan.hasNextLine()) {

           Stringstr=scan.nextLine() ;

           Stringarr[] =str.split(" ") ;

           if(arr[0].equals("push")) {

               q.push(Integer.parseInt(arr[1])) ;

           } elseif(arr[0].equals("pop")) {

               q.pop() ;

           } else {

               q.front() ;

           }

       }

   }

}

classMyQueue{

   int []arr;//用数组实现队列

   intmaxSize;//队列的大小

   intfront;//指示队列首下标

   intrear;//指示队尾下标

   publicMyQueue(intmaxSize){

       this.maxSize=maxSize;

       arr=newint[maxSize];

       front=-1;

       rear=-1;

   }

   //添加数据

   publicvoidpush(intval){

       //如果队列满了

       if(rear==maxSize){

           System.out.println("error");

       }else{

           //添加在队列尾部

           rear++;

           arr[rear]=val;

       }

   }

   //查看头部数据

   publicvoidfront(){

       if(isEmpty()){

           System.out.println("error");

       }else{

           System.out.println(arr[front+1]);

       }

   }

   

   //取出头部数据

   publicvoidpop(){

       if(isEmpty()){

           System.out.println("error");

       }else{

           front++;

           System.out.println(arr[front]);

       }

   }

   

   //判断队列空

   publicbooleanisEmpty(){

       if(rear==front){

           returntrue;

       }

       returnfalse;

   }

}

 

相关文章
|
9月前
蓝桥杯真题代码记录(卡片
蓝桥杯真题代码记录(卡片
71 0
|
算法 安全 Java
代码随想录算法训练营第十天 | LeetCode 232.用栈实现队列、LeetCode 225. 用队列实现栈
代码随想录算法训练营第十天 | LeetCode 232.用栈实现队列、LeetCode 225. 用队列实现栈
75 0
[算法刷题题解笔记] 洛谷 P1008 [NOIP1998 普及组] 三连击 [枚举|模拟]
[算法刷题题解笔记] 洛谷 P1008 [NOIP1998 普及组] 三连击 [枚举|模拟]
[算法刷题题解笔记] 洛谷 P1003 [NOIP2011 提高组] 铺地毯 [枚举]
[算法刷题题解笔记] 洛谷 P1003 [NOIP2011 提高组] 铺地毯 [枚举]
|
编译器 C++
【C++系列P7】模板搞不懂?脑阔抖三抖!!精讲一篇过!
【C++系列P7】模板搞不懂?脑阔抖三抖!!精讲一篇过!
|
存储 机器学习/深度学习 算法
【第十四届蓝桥杯考前速成】必考知识点及代码模板总结,看完至少多拿50分
四、简单图论 1、单源最短路径 2、多源最短路 3、最小生成树 五、动态规划 1、0-1背包 2、完全背包 3、多重背包 4、线性DP 总结
180 0
|
算法
代码随想录算法训练营第四天 | 链表 + 每日一题
代码随想录算法训练营第四天 | 链表 + 每日一题
121 0
|
算法 C++ Python
queue队列算法模板-附LeetCode每日一题题解:1823. 找出游戏的获胜者-题解-python && C++源代码
queue队列算法模板-附LeetCode每日一题题解:1823. 找出游戏的获胜者-题解-python && C++源代码
queue队列算法模板-附LeetCode每日一题题解:1823. 找出游戏的获胜者-题解-python && C++源代码
|
Java Python
【LeetCode每日一题】剑指 Offer 30. 包含min函数的栈(持续更新)
【LeetCode每日一题】剑指 Offer 30. 包含min函数的栈(持续更新)
75 0