面试题 03.05. 栈排序

思路:2个栈,data存储顺序,help帮助data存储排序

class SortedStack {
public:stack<int> data, help;SortedStack() {}void push(int val) {if(data.size()==0 || val<=data.top()){data.push(val); return;}//直接往data上放while(data.size()!=0 && val>data.top()){help.push(data.top());data.pop();}data.push(val);while(help.size()){data.push(help.top());help.pop();}}void pop() {if(data.size()!=0)data.pop();}int peek() {if(data.size()!=0)return data.top();return -1;}bool isEmpty() {return data.empty();}
};

面试题 03.05. 栈排序相关推荐

  1. 程序员面试金典 - 面试题 03.05. 栈排序(两栈)

    1. 题目 栈排序. 编写程序,对栈进行排序使最小元素位于栈顶. 最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中. 该栈支持如下操作:push.pop.peek 和 ...

  2. 面试题 03.02. 栈的最小值

    面试题 03.02. 栈的最小值 思路:两个栈,一个存数据,一个存当前最小值 class MinStack { public:stack<int> s1;stack<int> ...

  3. 面试题 03.02. 栈的最小值/面试题30. 包含min函数的栈/155. 最小栈

    2020-05-10 1.题目描述 栈的最小值 2.题解 需要牺牲空间换时间,可以用vector来存储至当前元素的最小值,在push或者pop元素的时候需要更新. 3.代码 class MinStac ...

  4. 面试题 03.04. 化栈为队/面试题09. 用两个栈实现队列/232. 用栈实现队列

    2020-05-08 1.题目描述 用两个栈实现一个队列 2.题解 将一个栈用来进行入操作,另一个进行出操作,入栈直接入,出栈的时候如果是空的则把另一个 栈中的所有元素移动过来,再进行出栈,否则直接出 ...

  5. 【LeetCode】面试题 03. 数组中重复的数字

    [LeetCode]面试题 03. 数组中重复的数字 文章目录 [LeetCode]面试题 03. 数组中重复的数字 一.遍历数组 二.原地置换 总结 一.遍历数组 由于只需要找出数组中任意一个重复的 ...

  6. 面试题 03.03. 堆盘子

    面试题 03.03. 堆盘子 输入: ["StackOfPlates", "push", "push", "push", ...

  7. 双栈排序java_双栈排序

    23 思路: 1.先看下图 初始栈initStack中存放的数组中待排序的数:临时栈tempStack中存放的是已经排好序的数. 现在继续对初始栈中的数进行排序,5应当插入到临时栈哪个位置? 2. 5 ...

  8. P1155 双栈排序(二分图的染色判断+链式前向星)

    P1155 双栈排序 让字典序最小,当然尽量进S1 那什么时候必须进S2呢? a[i]和a[j] 不能压入同一个栈⇔存在一个k,使得i<j<k且a[k]<a[i]<a[j] 因 ...

  9. P1155 双栈排序(二分图染色)

    P1155 双栈排序(二分图染色) 题目描述 Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一 ...

最新文章

  1. [Python爬虫] 之三十:Selenium +phantomjs 利用 pyquery抓取栏目
  2. wxWidgets:wxSingleChoiceDialog类用法
  3. java中md5怎么实现的_java中md5算法的实现
  4. 每日程序C语言31-auto的使用
  5. CERT.RSA中证书的格式
  6. C++中空指针调用类成员函数的原理
  7. php定时红包,PHP随机红包和等额红包的简单实现
  8. python中什么是实例-在Python中使用’__rsub__’方法的典型实例是什么?
  9. c语言 将点同时保证x坐标从小到大,y坐标从小到大地排序,C语言第五六次作业.ppt...
  10. Excel批量打开URL
  11. [MacOS][Google Chrome 浏览器] 鼠标右键需要双击才能弹出菜单
  12. 哪些服务器适合使用固态硬盘,服务器用固态硬盘还是机械硬盘合适?
  13. 用matlab实现“太阳-地球-月亮运行示意图”动画
  14. RoaringBitmap数据结构以及精确去重UDAF实现
  15. 基于安卓的高清语音技术亮相中国国际通信展览会
  16. OBS Studio显示器捕获黑屏的解决方法
  17. 如何将小鹤单字挂接到搜狗输入法
  18. bin文件用cad打开_bin文件怎么用cad打开
  19. 小学就会背的乘法表,还藏着这么多秘密?
  20. 图解Http协议 url长度限制

热门文章

  1. 大数据_Hbase-API访问_Java操作Hbase_获取连接---Hbase工作笔记0011
  2. Netty工作笔记0018---Selector介绍和原理
  3. C#.Net工作笔记019---葡萄城控件FlexGrid自定义风格_比如给某列设置某个颜色_该颜色不受选择行的影响
  4. 计算机辅助初中数学教学,计算机辅助数学教学的优势
  5. Linux中nginx安装基础教程
  6. 嵌入式电路设计(51单片机电路设计)
  7. 随想录(单片机和步进电机学习笔记)
  8. Linux在文件第一列添加字段,linux – 如何将file1的每一列追加到file2的特定字段并创建一个新的输出文件?...
  9. java 简单阻塞队列,制作一个简单的任务队列(使用阻塞队列)
  10. pyqt5 判断lineedit是否为空_是否注意过isEmpty 和 isBlank 区别?