首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:栈排序

#yyds干货盘点# LeetCode程序员面试金典:栈排序

时间:2022-12-18 12:00:13浏览次数:44  
标签:yyds peek 金典 pop LeetCode isEmpty push null stack

题目:

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

代码实现:

class SortedStack {
Stack<Integer> stack;
public SortedStack() {
stack = new Stack<Integer>();
}

public void push(int val) {
sort(val);
}

public void pop() {
if(stack.isEmpty()){
return;
}
stack.pop();
return;
}

public int peek() {
if(stack.isEmpty()){
return -1;
}
return stack.peek();
}

public boolean isEmpty() {
return stack.isEmpty();
}

private void sort(int val) {
if (stack.isEmpty()||val < stack.peek()){
stack.push(val);
return;
}else{
int temp = stack.pop();
sort(val);
stack.push(temp);
}
}

}

标签:yyds,peek,金典,pop,LeetCode,isEmpty,push,null,stack
From: https://blog.51cto.com/u_13321676/5950842

相关文章

  • leetcode-俩数相加
    链表操作2.两数相加给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返......
  • LeetCode刷题记录.Day33
    对称二叉树迭代法classSolution{public:boolisSymmetric(TreeNode*root){if(root==NULL)returntrue;queue<TreeNode*>qu......
  • [LeetCode]006-Z字形变换
    >>>传送门题目将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行 Z字形排列。比如输入字符串为"PAYPALISHIRING" 行数为3时,排列如下:PA......
  • #yyds干货盘点#聊一聊curl的用法
    curl是什么cURL(客户端URL)是一个开放源代码的命令行工具,用来请求Web和其他各种类型的服务器。curl有着大量的参数,常用来测试/调试服务器的开发和排查等,堪称一个网络“神器”......
  • #yyds干货盘点# react笔记之学习之创建表单
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • #yyds干货盘点# react笔记之学习之处理表单数据
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • #yyds干货盘点# LeetCode程序员面试金典:化栈为队
    题目:实现一个MyQueue类,该类用两个栈来实现一个队列。示例:MyQueuequeue=newMyQueue();queue.push(1);queue.push(2);queue.peek(); //返回1queue.pop(); //返回......
  • #yyds干货盘点# 名企真题专题:小招喵跑步
    1.简述:描述小招喵喜欢在数轴上跑来跑去,假设它现在站在点n处,它只会3种走法,分别是:1.数轴上向前走一步,即n=n+1 2.数轴上向后走一步,即n=n-1 3.数轴上使劲跳跃到当前点的两倍,......
  • LeetCode HOT 100:合并区间
    题目:56.合并区间题目描述:给你一个二维数组,类似于[[1,3],[2,6],[6,10],[15,18]],其中每一个元素表示一个区间,区间0下标表示区间左边界,1下标表示区间右边界。题目要求......
  • #yyds干货盘点#前端性能优化
    浏览器渲染流程解析HTML文件,构建DOM树,同时浏览器主进程负责下载CSS文件CSS文件下载完成,解析CSS文件成树形的数据结构,然后结合DOM树合并成RenderObject树布局R......