剑指 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 }
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术