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

LeetCode 面试题 03.05. 栈排序

文章目录

  • 一、题目
  • 二、C# 题解

一、题目

  栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:pushpoppeekisEmpty。当栈为空时,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]

说明:

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

二、C# 题解

  很基础的题目,直接上代码:

public class SortedStack {private int[] st;private int p;public SortedStack() {st = new int[5001];p = -1;}public void Push(int val) {if (p == st.Length - 1) return;int i;for (i = p; i >= 0 && st[i] < val; i--) {st[i + 1] = st[i];}st[i + 1] = val;p++;}public void Pop() {if (p == -1) return;p--;}public int Peek() {if (p == -1) return -1;return st[p];}public bool IsEmpty() {return p == -1;}
}/*** Your SortedStack object will be instantiated and called as such:* SortedStack obj = new SortedStack();* obj.Push(val);* obj.Pop();* int param_3 = obj.Peek();* bool param_4 = obj.IsEmpty();*/
  • 时间复杂度:无。
  • 空间复杂度:无。
http://www.lryc.cn/news/163541.html

相关文章:

  • 构建微服务项目时启动网关服务失败的解决方案
  • 零基础教程:使用yolov8训练无人机VisDrone数据集
  • 【Mysql专题】使用Mysql做排行榜,线上实例
  • matlab数据处理: cell table array+datetime
  • 如何应用运营商大数据精准营销?
  • AJAX学习笔记5同步与异步理解
  • 911面试
  • 【Java基础篇 | 面向对象】—— 继承
  • DELL precision上安装nvidia A4000驱动 cuda cudnn
  • 数据结构算法刷题(29)动态规划
  • W11下CMake MinGW配置OpenCV和Qt
  • 反转字符串 反转字符串 || 反转字符串 |||
  • XML解析 不允许有匹配 _[xX][mM][lL]_ 的处理指令目标
  • 【C++进阶(五)】STL大法--list模拟实现以及list和vector的对比
  • Docker安装RabbitMQ集群_亲测成功
  • 50道基础数据结构面试题
  • 【Linux基础】权限管理
  • C++初阶--类和对象(中)
  • 【MySQL系列】视图特性
  • 管理类联考——数学——汇总篇——知识点突破——应用题——最值问题
  • 学习SpringMvc第二战之【SpringMVC之综合案例】
  • 【算法日志】单调栈: 单调栈简介及其应用
  • VSCode自动分析代码的插件
  • 设计模式之外观模式
  • Web端测试和 App端测试有何不同?
  • 12.(Python数模)(相关性分析一)相关系数矩阵
  • 系统架构设计师(第二版)学习笔记----嵌入式系统及软件
  • Python列表操作指南:索引、切片、遍历与综合应用
  • 第15章_锁: MySQL并发访问相同记录以及从数据操作的类型划分锁(读锁、写锁)
  • PHP 排序函数使用方法,按照字母排序等操作