牛客网上有一道很nt的题目,用两个栈实现队列,你直接用队列不好吗?还耗内存,真的是脱裤子放屁,但是骂归骂,题目还是要做的。

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

我们可以用stack1进栈,stack2出栈。这样就可以让先进先出的顺序变成先进后出。如果stack2为空的话,stack1进栈元素进stack2 。stack2再出栈就可以了

import java.util.Stack;public class Solution {Stack<Integer> stack1 = new Stack<Integer>();Stack<Integer> stack2 = new Stack<Integer>();public void push(int node) {//放就往栈1里面放stack1.push(node);}public int pop() {//拿就从栈2拿,如果没有就栈1 的入栈if(!stack2.isEmpty()){return stack2.pop();}else{while(!stack1.isEmpty()){stack2.push(stack1.pop());}return stack2.pop();}}
}

我记得还有一道也是nt的题目,用两个队列实现一个栈
我都无语了,吃饱了没事干吗?

思路就是:放元素的时候,往空的哪一个队列放,放完之后,让另外一个队列的元素进队。每次都这样操作

class MyStack {Queue<Integer> q1,q2;/** Initialize your data structure here. */public MyStack() {q1 = new LinkedList<>();q2 = new LinkedList<>();}/** Push element x onto stack. */public void push(int x) {if(q1.isEmpty()){q1.offer(x);}else{//往q2里放q2.offer(x);//吧q1的放到q2去while(!q1.isEmpty()){q2.offer(q1.poll());}//现在q1已经没了//缓过来,让q2为空Queue temp = q1;q1 = q2;q2 = temp;}}/** Removes the element on top of the stack and returns that element. */public int pop() {return q1.poll();}/** Get the top element. */public int top() {return q1.peek();}/** Returns whether the stack is empty. */public boolean empty() {return q1.isEmpty();}
}/*** Your MyStack object will be instantiated and called as such:* MyStack obj = new MyStack();* obj.push(x);* int param_2 = obj.pop();* int param_3 = obj.top();* boolean param_4 = obj.empty();*/

脱裤子放屁之用两个栈实现队列、用两个队列实现栈相关推荐

  1. 设计模式是不是一件脱裤子放屁的事

    我这条老程序狗也曾有年轻的时候,当年毛色鲜亮,油光水滑,60级经验已满,正准备升级转职.跟职业训练师聊过后接受任务:学习名字很屌的专家级技能书<Head First Design Pattern ...

  2. 新一配:程序员因一行代码被老板开除,网友评论:你这不是脱裤子放屁吗?

    在生活中,只要是你自己能够写代码的就是程序员,但是程序员只是一个统称,其中的差距也是巨大.除了理论知识的差异之外,其实我们可以看见最直观的差异就是编码能力的差距或者项目经验的差距,最主要你还是你的编程 ...

  3. 脱裤子放屁,多此一举

    脱裤子放屁,多此一举. 转载于:https://www.cnblogs.com/zhangzujin/p/3892468.html

  4. 一个“脱裤子放屁“的功能!

    一个"脱裤子放屁"的功能! 哩语 "脱了裤子放屁",此话通常用来讥讽别人说话做事画蛇添足.多此一举. 1.背景 故事是这样的.公司的其他部门经常会要求我们部门以 ...

  5. 一个夭折 脱裤子放屁的QSql Sqlite操作类

    本来想自己封装一下Sqlite操作类   写到一半才发现是脱裤子放屁       多此一举了 自己写的东西还没有Qt用起来简洁      唯一的好处估计就是能在整个工程里对同一个数据库进行操作     ...

  6. 实践中的重构19_脱裤子放屁

    每当看到代码中有一个明显的冗余的时候,我就有一个感慨,这家伙时间真多啊,放个屁还要脱裤子. 看例子. if (addressCode != null && (StringUtil.eq ...

  7. 当着众多MM脱裤子放屁

    今天是我的生日,女友早早的打来电话说晚上要到家里去为我祝贺生日,还要带给我惊喜!听了这个好消息!我今天工作起来是格外买力,一下跑了十几个客户!回到公司.都下午三点了,到食堂一看,只剩下可怜巴巴的一菜一 ...

  8. 模板解析原理,脱裤子放屁

    <?php$datalist = array('11','11','11','11','11','11',);$hello = "模板测试";function compile ...

  9. 用三剑客取ip地址的方法(请忽略脱裤子放屁的~)

    在这里插入图片描述

最新文章

  1. Java 常用构建对象的三种方式
  2. java类定义的顺序_Java类及对象的初始化顺序
  3. 文巾解题 167. 两数之和 II - 输入有序数组
  4. 【AI初识境】什么是深度学习成功的开始?参数初始化
  5. OSSIM主要数据库表结构
  6. [Pytorch] BCELoss和BCEWithLogitsLoss(Sigmoid-BCELoss合成为一步)
  7. Python tan函数图像绘制,不带有极值的线条
  8. html上下表格合并单元格,html表格合并单元格的方法_WEB前端开发
  9. android 菜鸟面单打印_android菜鸟 实战项目之简单界面实现
  10. 0111总结-函数与极限-高等数学
  11. 总结一下使用Emgucv的经验和经历
  12. 「竞品分析报告」不会写?不知从哪收集数据?请收下这篇竞品指南
  13. mysql8修改密码报:Your password does not satisfy the current policy requirements
  14. 基于大数据的健康未来
  15. 【SQL开发实战技巧】系列(十):从拆分字符串、替换字符串以及统计字符串出现次数说起
  16. 日本东映动画遭黑客入侵,《海贼王》等多部作品遭停播
  17. Vue + gojs 绘制鱼骨图
  18. VINS-Mono理论学习——IMU预积分 Pre-integration (Jacobian 协方差)
  19. #009#献给阿尔吉侬的花束
  20. 带时间锉字段查询不走索引优化记录!+数据库卡顿问题排查顺序

热门文章

  1. GRE单词里的大数据和丰富情感,一笑
  2. MQClientException The producer service state not OK, CREATE_JUST
  3. mysql 1067_mysql启动错误1067进程意外终止的解决方法
  4. 为本教育柳春丽心理咨询师擅长哪些方面领域
  5. 网易(163)yum源是国内最好的yum源
  6. Atcoder Beginner Contest 260D - Draw Your Cards 解题报告
  7. JAVA下载文件的几_详解Java文件下载的几种实现方式
  8. 约瑟夫问题-输出最后的编号
  9. 最后完美解决pip没法用的问题
  10. 电脑硬盘右击计算机就卡死,win10总是莫名其妙卡死怎么解决