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

【百日算法计划】:每日一题,见证成长(021)

题目

栈排序

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

思路

  • 构造两个栈,一个用作临时栈;
  • 每次新元素入栈的时候,循环与栈顶元素比较,比栈顶元素小则直接入栈,否则,将栈里元素搬移到临时栈中;直到栈为空或新元素小于栈顶元素。
public class Code03 {static class SortedStack {Stack<Integer> stack = new Stack();Stack<Integer> tmpStack = new Stack();//临时栈public SortedStack() {}public void push(int val) {//如果栈不为空且新元素比栈顶元素大 则要把栈顶元素搬移到临时栈中while (!stack.isEmpty() && stack.peek() < val){tmpStack.push(stack.pop());//加入到临时栈}stack.push(val); //新元素入栈while (!tmpStack.isEmpty()){stack.push(tmpStack.pop());//再把临时栈中元素放回stack}}public void pop() {if (!stack.isEmpty()){stack.pop();}}public int peek() {if (stack.isEmpty()) return -1;return stack.peek();}public boolean isEmpty() {return stack.isEmpty();}}}

相关文章:

  • IP地址如何与网络虚拟化技术融合?
  • AQS为什么采用双向链表
  • Linux 块设备开发学习
  • 8个前端小程序开发框架的介绍
  • 【JAVA开源】基于Vue和SpringBoot的足球俱乐部管理后台
  • 记一次停车场后台管理系统漏洞挖掘
  • 让具身智能更快更强!华东师大上大提出TinyVLA:高效视觉-语言-动作模型,遥遥领先
  • 小麦生长状态检测系统源码分享
  • 第十章 【后端】商品分类管理微服务 > 分类列表查询接口(10.8.3)——MyBatis-Plus 逻辑删除
  • Ansible 剧本的执行
  • 设备管理系统-TPM(PC+APP/PDA全流程)高保真Axure原型 源文件分享
  • 【二十七】【QT开发应用】VS如何复制项目,QT无边窗窗口Pro版本,信号与信号槽的应用,背景图片自适应控件大小
  • 文件上传、amrkdown编辑器
  • 第十章 【后端】商品分类管理微服务 > 分类列表查询接口(10.8.2)——MyBatis-Plus 自动填充
  • Qualitor processVariavel.php 未授权命令注入漏洞复现(CVE-2023-47253)
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 0基础学习移动端适配
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • ES6--对象的扩展
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript创建对象的四种方式
  • php ci框架整合银盛支付
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 浮动相关
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 前嗅ForeSpider采集配置界面介绍
  • 数据仓库的几种建模方法
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一起参Ember.js讨论、问答社区。
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #### golang中【堆】的使用及底层 ####
  • #、%和$符号在OGNL表达式中经常出现
  • (11)MATLAB PCA+SVM 人脸识别
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (HAL库版)freeRTOS移植STMF103
  • (定时器/计数器)中断系统(详解与使用)
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (生成器)yield与(迭代器)generator
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .考试倒计时43天!来提分啦!
  • @AliasFor注解
  • @Bean注解详解
  • @Builder用法
  • @property python知乎_Python3基础之:property
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [ C++ ] STL---仿函数与priority_queue
  • [2023-年度总结]凡是过往,皆为序章
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [ACM独立出版]2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024)