标签:logs 操作 iat stand note bsp and sem ble
题目:
Implement the following operations of a queue using stacks.
Notes:
push to top
, peek/pop from top
, size
, and is empty
operations are valid.
题意及分析:使用stack实现queue的功能。这里对于queue的push和enpty操作来说,和stack一样就行。对于pop和peek,由于stack是pop和peek都是从队尾来讲,然而queue是要的这两个操作时对于队首的元素来讲。所以这里需要使用另一个stack来讲当前stack倒序添加进新stack,对于最后一个元素 取值或者去掉,然后在将新stack倒序回去即可。具体看代码:
代码:
public class MyQueue { Stack<Integer> stack; /** Initialize your data structure here. */ public MyQueue() { stack = new Stack<>(); } /** Push element x to the back of queue. */ public void push(int x) { stack.push(x); } /** Removes the element from in front of queue and returns that element. */ public int pop() { Stack<Integer> tempStack=new Stack<>(); int lenght=stack.size(); for(int i=0;i<lenght-1;i++){ tempStack.push(stack.peek()); stack.pop(); } int res=stack.peek(); stack.pop(); int tempSize=tempStack.size(); for(int i=0;i<tempSize;i++){ stack.push(tempStack.peek()); tempStack.pop(); } return res; } /** Get the front element. */ public int peek() { Stack<Integer> tempStack=new Stack<>(); int lenght=stack.size(); for(int i=0;i<lenght-1;i++){ tempStack.push(stack.peek()); stack.pop(); } int res=stack.peek(); stack.pop(); tempStack.push(res); int tempSize=tempStack.size(); for(int i=0;i<tempSize;i++){ stack.push(tempStack.peek()); tempStack.pop(); } return res; } /** Returns whether the queue is empty. */ public boolean empty() { return stack.isEmpty(); } } /** * Your MyQueue object will be instantiated and called as such: * MyQueue obj = new MyQueue(); * obj.push(x); * int param_2 = obj.pop(); * int param_3 = obj.peek(); * boolean param_4 = obj.empty(); */
[LeetCode] 232. Implement Queue using Stacks Java
标签:logs 操作 iat stand note bsp and sem ble
原文地址:http://www.cnblogs.com/271934Liao/p/7029287.html