当前位置: 首页 > news >正文

day14:栈排序

问题描述: 

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

示例1:

 输入:
["SortedStack", "push", "push", "peek", "pop", "peek"]
[[], [1], [2], [], [], []]
 输出:
[null,null,null,1,null,2]

示例2:

 输入: 
["SortedStack", "pop", "pop", "push", "pop", "isEmpty"]
[[], [], [], [1], [], []]
 输出:
[null,null,null,null,null,true]

说明:

  1. 栈中的元素数目在[0, 5000]范围内。

解决方案:

1、分析题目:用两个栈(主栈+辅助栈)实现排序算法,返回主栈

2、栈顶元素比较:主栈 始终为较大的值,辅助栈 始终为小值

注:辅助栈中始终为降序出栈(先大后小)

3、循环判断:如果 主栈 中栈顶元素 < 待输入值(val),该元素归入 辅助栈里。

例:1,3,2

(1)1--> 主栈

(2)1<3:1-->辅助栈,3-->主栈,1-->主栈 

(3)1<2:同上,结果:主栈(3)辅助栈(1)

                   第二次判断:3>2 :2 直接放入 主栈,合并辅助栈,即主栈(1,2,3)

函数代码:

class SortedStack {
public:stack<int> num;stack<int> tmp;SortedStack() {}void push(int val) {while(!num.empty() && num.top()<val){tmp.push(num.top());num.pop();}num.push(val);while(!tmp.empty()){num.push(tmp.top());tmp.pop();}}void pop() {if(!num.empty())    num.pop();}int peek() {if(num.empty()) return -1;return num.top();}bool isEmpty() {return num.empty();}
};
http://www.lryc.cn/news/310100.html

相关文章:

  • 【LeetCode:2368. 受限条件下可到达节点的数目 + BFS】
  • pyorbbecsdk奥比中光python版本SDK在Windows下环境配置笔记
  • YOLOV8介绍
  • 【ElfBoard】基于 Linux 的智能家居小项目
  • 自动化测试介绍、selenium用法(自动化测试框架+爬虫可用)
  • 深度学习的一个完整过程通常包括以下几个步骤
  • WPS如何共享文件和文件夹
  • PowerData 2024“数字经济-城市开源行”活动预告
  • QT多语言切换功能
  • windows上elasticsearch的ik分词器的安装
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的口罩识别系统(Python+PySide6界面+训练代码)
  • 在Windows系统中启动Redis服务
  • k8s.gcr.io/pause:3.2镜像丢失解决
  • 全面整理!机器学习常用的回归预测模型
  • 在vue中对keep-alive的理解,它是如何实现的,具体缓存的是什么?
  • 章节一、认识three.js与开发环境学习笔记01;
  • QT摄像头采集
  • C语言第三十四弹---动态内存管理(下)
  • PDN分析及应用系列二-简单5V电源分配-Altium Designer仿真分析-AD
  • Vue开发实例(一)Vue环境搭建第一个项目
  • 将SpringBoot项目改造成solon项目
  • 更详细的软件测试理论基础:流程,开发、测试模型,测试分类,测试用例及其设计方法,缺陷
  • input css padding
  • 如何打印 springboot 框架中 接收请求的日志
  • JVM的内存区域划分
  • YOLOv9有效改进|使用动态蛇形卷积Dynamic Snake Convolution
  • 设计模式学习笔记 - 设计原则 - 1.单一职责原则
  • 飞天使-学以致用-devops知识点4-SpringBoot项目CICD实现(实验失败,了解大概流程)
  • 使用HTML5画布(Canvas)模拟图层(Layers)效果
  • 违背祖训,微软骚操作强制用户更新至 Win 11 23H2