剑指 Offer 09. 用两个栈实现队列
题目:
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
示例 1:
输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,null,3,-1]
示例 2:
输入: ["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"] [[],[],[5],[2],[],[]] 输出:[null,-1,null,null,5,2]
提示:
1 <= values <= 10000最多会对 appendTail、deleteHead 进行 10000 次调用
代码:
1 /** 2 * Your CQueue object will be instantiated and called as such: 3 * CQueue obj = new CQueue(); 4 * obj.appendTail(value); 5 * int param_2 = obj.deleteHead(); 6 */ 7 8 class CQueue { 9 private int head; 10 private int tail; 11 int[] ob; 12 public CQueue() { 13 this.head=0; 14 this.tail=0; //初始头尾在一个下标 15 this.ob=new int[10000]; 16 } 17 18 public void appendTail(int value) { 19 this.ob[this.tail++]=value; 20 } 21 22 public int deleteHead() { 23 if(this.head==this.tail){return -1;} 24 return this.ob[this.head++]; 25 } 26 }

浙公网安备 33010602011771号