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.mzph.cn/news/716867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】查询语句:条件、排序和分页

基本查询 MySQL 数据库使用SELECT语句来查询数据。 查询字段 以下为在MySQL数据库中查询数据通用的 SELECT 语法&#xff1a; SELECT 字段名,字段名... FROM 表名;选择全部列 SELECT * FROM emp; -- 查询所有字段一般情况下&#xff0c;除非需要使用表中所有的字段数据&…

消防主机报故障时发出故障及原因及解决办法!

本文以青鸟消防JBF-11SF为例。 其他型号或品牌的消防主机也可参考。 开机前&#xff0c;必须先测量系统接线的绝缘电阻&#xff0c;确保各绝缘电阻满足以下要求&#xff1a; 1&#xff09;空载时各电路信号线之间的绝缘值应大于5K欧姆。 2&#xff09;正常天气条件下&#x…

Java SE:反射

反射作用 获取字节码文件里面的所有信息&#xff0c;包括构造方法、成员、成员方法&#xff0c;以及修饰他们的修饰符、类型和方法的返回值等等&#xff0c;只要是类里面的内容都能获取&#xff0c;获取之后可以动态的调用方法&#xff0c;动态的创建对象 获取类字节码文件对象…

2024全国水科技大会暨新材料在水污染防治中的应用论坛(十)

召集人&#xff1a;唐 量 上海大学环境与化学工程学院教授 庄赞勇 福州大学材料科学与工程学院教授 一、会议背景 为积极应对“十四五”期间我国生态环境治理面临的挑战&#xff0c;加快生态环境科技创新&#xff0c;构建绿色技术创新体系&#xff0c;全面落实科学技术部、生…

创建hadoop集群

分布式hadoop集群分布 服务器功能规划 node-1&#xff1a;namenode,datanode,nodemanager,historyserver node-2&#xff1a;resourcemanage,datanode,nodemanager node-3&#xff1a;datanode&#xff0c;nodemanager&#xff0c;secondarynamenode #在node-1上 $ bin/hdfs …

点云数据结构化与体素化理论学习

一、PCD点云数据存储格式的进一步认识 &#xff08;一&#xff09;PCD点云存储格式相较于其它存储格式&#xff08;如PLY、STL、OBJ、X3D等&#xff09;的优势[1] &#xff08;1&#xff09;具有存储和处理有组织的点云数据集的能力&#xff0c;这对于实时应用和增强现实及机器…

20240302-1-ZooKeeper面试题(三)

21. 集群最少要几台机器&#xff0c;集群规则是怎样的? 集群规则为 2N1 台&#xff0c;N>0&#xff0c;即 3 台。 22. 集群支持动态添加机器吗&#xff1f; 其实就是水平扩容了&#xff0c;Zookeeper 在这方面不太好。两种方式&#xff1a;第 62 页 共 485 页全部重启&a…

【Spring连载】使用Spring Data访问 MongoDB----对象映射之非包装类型

【Spring连载】使用Spring Data访问 MongoDB----对象映射之非包装类型 一、未包装类型映射二、未包装类型字段名三、查询未包装对象3.1 按未包装字段排序3.2 未包装对象的字段投影3.3 未包装对象的Query By Example3.4 未包装对象的存储库查询 四、更新未包装对象五、未包装对象…

苍穹外卖学习 Day10 Day11 Day12

前言 用于记录苍穹外卖Day10、Day11、Day12的学习 Day10 订单状态定时处理 来电提醒 客户催单 订单状态定时处理 Spring Task Spring Task是一个任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑&#xff08;定时自动执行某段Java代码&#xff09; cron表…

代码随想录算法训练营第三十天| 回溯篇总结

文章目录 前言一、组合问题二、切割问题三、子集问题四、排列问题五、性能分析总结 前言 回溯法就是暴力搜索&#xff0c;并不是什么高效的算法&#xff0c;最多再剪枝一下。 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合 排列问题&#xff1a;N个数按一定规则全…

【黑马程序员】STL之set和map容器

文章目录 set/multiset容器set基本概念简介区别 set的构造和赋值功能描述函数原型代码示例运行结果 set的大小和交换功能描述函数原型代码示例运行结果 set的插入和删除功能描述函数原型代码示例运行结果 set查找和统计函数原型代码示例运行结果 set和multiset区别区别代码示例…

JVM(6)

JMM JVM定义了一种Java内存模型来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果.在此之前,C/C直接使用物理硬件和操作系统的内存模型,因此,会由于不同平台下的内存模型差异,有可能导致程序在一套平台上并发完全正常,而在另…

深入解剖指针(4)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a; 我要学编程(ಥ_ಥ)-CSDN博客 目录 回调函数 qsort使用举例 使用qsort函数排序整型数据 使用qsort排序结构数据 qsort函数的模拟实现 回调函数 回调函数就是一个通过函数指…

【Android12】Android性能调优工具SystemServerTiming日志

Android性能调优工具SystemServerTiming日志 性能优化、稳定性优化是Android系统优化的两大方面&#xff0c;对于性能调试Android提供了很多工具&#xff0c;比如&#xff1a;bootchart、systrace、perfboot、log、dmsg等等。 SystemServerTiming是Android原生系统中一个日志…

《Spring Security 简易速速上手小册》第10章 未来趋势与高级话题(2024 最新版)

文章目录 10.1 云原生安全性趋势10.1.1 基础知识10.1.2 重点案例&#xff1a;保护微服务通信10.1.3 拓展案例 1&#xff1a;容器安全最佳实践10.1.4 拓展案例 2&#xff1a;自动化安全审计和合规性检查 10.2 反应式编程与 Spring Security10.2.1 基础知识10.2.2 重点案例&#…

nginx-图片模块

./configure --with-http_image_filter_module location / {root html;index index.html index.htm;if ($arg_w "") {set $arg_w -;}if ($arg_h "") {set $arg_h -;}image_filter resize $arg_w $arg_h;image_filter_jpeg_quality 95; } 访问: 1234…

CSS锥形渐变:conic-gradient()

画一个扇形图&#xff0c;使用常规方法可能很难画&#xff0c;但是用锥形渐变的话非常好画 <style>.pattern{width: 100px; height: 100px;border-radius: 50%;background: conic-gradient(yellow 30deg , black 30deg , black 90deg , yellow 90deg ,yellow 150d…

Git分布式版本控制系统——git学习准备工作

一、Git仓库介绍 开发者可以通过Git仓库来存储和管理文件代码&#xff0c;Git仓库分为两种&#xff1a; 本地仓库&#xff1a;开发人员自己电脑上的Git仓库 远程仓库&#xff1a;远程服务器上的Git仓库 仓库之间的运转如下图&#xff1a; commit&#xff1a;提交&#xff…

Decoupled Knowledge Distillation解耦知识蒸馏

Decoupled Knowledge Distillation解耦知识蒸馏 现有的蒸馏方法主要是基于从中间层提取深层特征&#xff0c;而忽略了Logit蒸馏的重要性。为了给logit蒸馏研究提供一个新的视角&#xff0c;我们将经典的KD损失重新表述为两部分&#xff0c;即目标类知识蒸馏&#xff08;TCKD&a…

c++之旅——第四弹

大家好啊&#xff0c;这里是c之旅第三弹&#xff0c;跟随我的步伐来开始这一篇的学习吧&#xff01; 如果有知识性错误&#xff0c;欢迎各位指正&#xff01;&#xff01;一起加油&#xff01;&#xff01; 创作不易&#xff0c;希望大家多多支持哦&#xff01; 本篇文章的主…