多平台统一管理软件接口,如何实现多平台统一管理软件接口
227
2022-10-18
[leetcode栈队列]1 栈实现队列
1二面记录
因为小蓝当时很想去做短视频的互联网公司,无奈学校当地鲜有相关公司来校招,所以就跋涉去了湖大,当天晚上参加了现场笔试,半夜收到第二天复试通知,二面中面试官就让手撕用栈实现队列。
在此大家可以先思考1分钟
顺便复习下
栈和队列
再看题解效果会更好哈
栈的特点
栈是一种先进后出的数据结构。栈中的元素从栈顶(top)压入(push),从栈顶弹出(top)。注意:压入我们需要判栈是否已满,弹出需要判栈是否已空。下面我们看看图加深下印象。
入栈 1 2 3
出栈 3 2 1
队列的特点
队列是一种先进先出的数据结构。队列中的元素从队尾(rear)入队(push),从队头(front)出队(pop).同样,我们用图的方式来加深印象。
入队列 1 2 3
出队列 1 2 3
1Leetcode232 用栈实现队列
使用栈实现队列的下列操作:
push(x) -- 将一个元素放入队列的尾部。
pop() -- 从队列首部移除元素。
peek() -- 返回队列首部的元素。
empty() -- 返回队列是否为空。
示例:
MyQueue queue = new MyQueue();
queue.push(1);
queue.push(2);
queue.peek(); // 返回 1
queue.pop(); // 返回 1
queue.empty(); // 返回 false
01题目解析
相信大家已经知道了栈是先进后出,队列是先进先出。假设1 2 3进栈,第一次出栈为3 2 1(反了一次),但是我们想要的出来的顺序为1 2 3,那么我们在此基础再反一次。
ok,其实我们需要引入另一栈来辅助我们完成,如下图。
好了,到这里总结下实现思路及注意事项:
使用两个栈,元素先进入A栈,然后从B栈出。在pop()和peek的时候需要注意:如果B栈有元素,直接从B栈弹出。如果B栈没有元素,将A栈元素压入B栈。
题目虽简单,细品出真理!一定掌握哈!
03代码实现1c++版本
2python版本
3java版本
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~