[leetcode]716. Max Stack @ python

leetcode-multi-language:716小伙伴的刷题笔记 Leetcode多语言 前言 我们的口号是:面向跳槽刷题!!! 既然写得好的题解仓库有很多,github搜leetcode能找到一堆(详见后文),但真正能发挥功效的唯有自己的坚持不懈。 资料 一些实用的github项目(题解,面试),整理如下: 电子书《 labuladong的算法小抄》 链接: https://pan.baidu.com/s/1WH9IgfZoLXj0KT0Sm_dWyw 提取码: 652e 刷题网站: 安利指数: :white_medium_star: :white_medium_star: :white_medium_star: :white_medium_star: :white_medium_star: ,,每道题有视频讲解,很清楚很省时。 建议 每道题最好记录下自己最初的思路,有些做不出的译文在看了题解后再回头比较,这样反思收获的更多吧。 【llf路径】 详见java目录下的 立即下载

原题

Design a max stack that supports push, pop, top, peekMax and popMax.

push(x) – Push element x onto stack.
pop() – Remove the element on top of the stack and return it.
top() – Get the element on the top.
peekMax() – Retrieve the maximum element in the stack.
popMax() – Retrieve the maximum element in the stack, and remove it. If you find more than one maximum elements, only remove the top-most one.
Example 1:
MaxStack stack = new MaxStack();
stack.push(5);
stack.push(1);
stack.push(5);
stack.top(); -> 5
stack.popMax(); -> 5
stack.top(); -> 1
stack.peekMax(); -> 5
stack.pop(); -> 1
stack.top(); -> 5
Note:
-1e7 <= x <= 1e7
Number of operations won’t exceed 10000.
The last four operations won’t be called when stack is empty.

解法

使用列表, 每次push时向列表左边添加元素.

代码

class MaxStack(object):

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.data = []
        

    def push(self, x):
        """
        :type x: int
        :rtype: None
        """
        self.data.insert(0, x)

    def pop(self):
        """
        :rtype: int
        """
        return self.data.pop(0)

    def top(self):
        """
        :rtype: int
        """
        return self.data[0]

    def peekMax(self):
        """
        :rtype: int
        """
        return max(self.data)

    def popMax(self):
        """
        :rtype: int
        """
        ans = max(self.data)
        self.data.remove(ans)
        return ans


# Your MaxStack object will be instantiated and called as such:
# obj = MaxStack()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.top()
# param_4 = obj.peekMax()
# param_5 = obj.popMax()
SAP 业务技术平台(BTP) Workflow(工作流)功能介绍 这背后其实发生了很多事情:Workflow 应用里 Determine Equipment Service Task 得到执行,通过 HTTP POST,消费部署在 SAP BTP 上的 Business Rules Service,后者根据我们在 Start New Instance 里传入的 Sample Data,返回自动决定出的设备明细。关于这个 SAP BTP 开发工具的更多介绍,参考我的文章:SAP 新一代全栈开发工具:SAP Business Application Studio. 阅读详情

相关推荐

#Linux内存管理# 用一个案例详细介绍ARMv7-A架构 缺页中断处理的原理

跳转到异常向量:根据 异常向量表基地址(通常配置在 VBAR 寄存器中,例如 0xFFFF0000) + 数据中止异常的偏移量 0x10,跳转到数据中止异常的处理程序入口点 0xFFFF0010(实践中,这个入口通常是一条跳转到更复杂处理函数的指令)。malloc 通常不会立即分配物理内存页,它只是在内核为该进程维护的虚拟地址空间中找到一段足够大的空闲虚拟地址区域(比如 0x00008000 - 0x00008FFF),标记为已用,并返回起始地址(例如 0x00008000)给程序。

sinat_37817094的博客 993

716. 最大栈

716. 最大栈 设计一个最大栈数据结构,既支持栈操作,又支持查找栈中最大元素。 实现 MaxStack 类: MaxStack() 初始化栈对象 void push(int x) 将元素 x 压入栈中。 int pop() 移除栈顶元素并返回这个元素。 int top() 返回栈顶元素,无需移除。 int peekMax() 检索并返回栈中最大元素,无需移除。 int popMax() 检索并返回栈中最大元素,并将其移除。如果有多个最大元素,只要移除 最靠近栈顶 的那个。 示例: 输入 ["MaxSt

不搞数学的汤老师 822

SAP与泛微OA集成(半导体行业)

本项目通过SAP PO中间件集成SAP与泛微OA在半导体行业的应用,由于行业特殊性,广泛深入应用了RSA加密等特性

集信通 1164

【LeetCode 栈】最大栈(716)

【LeetCode 栈】最大栈(716)

weixin_37780776的博客 1360

2021秋招IC验证面经-ARM中国/中科芯/飞腾/地平线/中兴

中科芯 (央企福利待遇好,但是百分百不解决户口,适合当地人进去躺平。) 现场面试,三个面试官,时间大约40min 首先介绍一下自己,介绍一下项目。所做项目用到了FIFO吗,深度是多少,位宽是多少,仲裁算法是什么? 验证环境中的reference model是自己写的还是本身就有的,仲裁怎么在参考模型中实现,参考模型怎么获取寄存器的值? 怎么配置RTL寄存器,通过平台的寄存器模型进行寄存器配置,寄存器模型里边的方法,写一个寄存器或读一个寄存器怎么实现? 寄存器如何实现前门访问和后门访问,后门访问时

weixin_48014653的博客 6319

别再手动调波形了!用STM32G474的HRTIM+DAC生成精密锯齿波,附完整CubeMX配置

本文详细介绍了如何利用STM32G474的高分辨率定时器(HRTIM)和数模转换器(DAC)协同工作,实现高精度锯齿波生成。通过CubeMX配置指南、关键寄存器计算和实践技巧,帮助开发者快速掌握全硬件实现的波形生成方案,显著提升嵌入式系统的波形控制精度和响应速度。

weixin_28716769的博客 246

【LeetCode - 716】最大栈

【简单】设计

学哥斌的博客 1267

educoder实训——计算几何形状的表面积与体积

educoder python实训

qq_41234663的博客 1230

leetcode:716. 最大栈

使用两个栈来模拟,dataStack为普通的栈,用来保存所有的数字,而maxStack为最大栈,用来保存出现的最大的数字。

OceanStar的博客 310

一个 ABAP 工具,能打印系统里某个用户对 BSP 应用的浏览历史记录

只要一个用户在 SAP ABAP 系统里浏览过 BSP 页面,会留下浏览历史记录。本工具会解析出这些记录,打印出该用户浏览的历史事件,和浏览过的页面名称。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 546

仿真模型简单介绍

同时,各种以伯克利的Spice仿真程序的算法为核心的商用Spice电路仿真工具也随之产生,运行在PC和UNIX平台,许多都是基于原始的SPICE2G6版的源代码,这是一个公开发表的版本,它们都在Spice的基础上做了很多实用化的工作,比较常见的Spice仿真软件有HSpice、Pspice、Spectre、Tspice、SmartSpcie、IsSpice等,虽然它们的核心算法雷同,但仿真速度、精度和收敛性却不一样,其中以Synopsys公司的Hspice和Cadence公司的Pspice最为著名。...

小幽余生不加糖 8002

LeetCode 716. 最大栈(双栈 / list+map)

文章目录1. 题目2. 解题2.1 双栈解法2.2 list+map 1. 题目 设计一个最大栈,支持 push、pop、top、peekMax 和 popMax 操作。 push(x) -- 将元素 x 压入栈中。 pop() -- 移除栈顶元素并返回这个值。 top() -- 返回栈顶元素。 peekMax() -- 返回栈中最大元素。 popMax() -- 返回栈中最大的元素,并将其删除。 如果有多个最大元素,只要删除最靠近栈顶的那个。 样例 1: MaxStack stack = new

Michael是个半路程序员 3595

“探索thumbdata4文件的奥秘:编程中的神秘存在“

综上所述,thumbdata4文件在编程中是一个常见的存在,与图库应用程序和图片浏览器密切相关。通过使用适当的库和工具,我们可以读取和处理thumbdata4文件中的缩略图数据,以提供更好的用户体验。我们首先读取8字节的块头,其中包含了下一个缩略图块的大小。你可以根据自己的需求来定义对块数据的处理方式,例如将其保存为图像文件或进行其他的分析操作。thumbdata4文件通常以二进制格式存储,其中包含着设备上浏览过的图片的缩略图。因此,你可能需要根据具体的thumbdata4文件结构进行适当的解析和处理。

JieLun_C的博客 792

LeetCode 716. Max Stack - 链表(Linked List)系列题27

题目要求设计一个堆栈除了支持一般堆栈具有的接口函数:push(), pop(), top(),还需要支持返回堆栈中的最大值:peekMax(),和弹出堆栈中的最大值:popMax()。 本题可以在系统自带的堆栈的基础上实现题目所要求的堆栈。如果不用系统自带的而是让我自己实现一个堆栈的话,通常我们会用双向链表来实现,因为双向链表的插入和删除操作的时间复杂度可以达到在O(1)。

hgq522的博客 406

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

[LeetCode] Max Stack 最大栈

Design a max stack that supports push, pop, top, peekMax and popMax. push(x) -- Push element x onto stack. pop() -- Remove the element on top of the stack and return it. top() -- Get the ...

weixin_30878361的博客 71

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LeetCode716:最大栈

这是一道被锁住的题,需要LeetCode会员才能做。 还好lintcode上也有。最大栈 分析:前4个操作比较简单,最难处理的是第5个操作。 思路: 1.可以使用两个栈,但是这样的复杂度为O(n),不太好。 2.使用list+map,list中存放数据,map中存放值以及值对应的所有迭代器的集合,迭代器的集合使用vector存储,vector尾部的迭代器为当前值对应的最靠近栈顶的迭代器,那么我们在删除栈中最靠近栈顶的最大元素时,只需要获得最大值对应vector的最后一个元素(迭代器),然后在list和ve

princeteng's blogs 993

LeetCode讲解算法2-数据结构[栈和队列](Python版)

LeetCode讲解算法2-数据结构[栈和队列](Python版)

总裁余(余登武)博客 1426

LeetCode 716. 最大栈

设计一个最大栈,支持 push、pop、top、peekMax 和 popMax 操作。如果有多个最大元素,只要删除最靠近栈顶的那个。popMax() -- 返回栈中最大的元素,并将其删除。push(x) -- 将元素 x 压入栈中。pop() -- 移除栈顶元素并返回这个值。peekMax() -- 返回栈中最大元素。当栈为空的时候不会出现后四个操作。top() -- 返回栈顶元素。操作次数不会超过 10000。

furende31的博客 379

Leetcode 617. 合并二叉树----python

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例 1: 解题思路: 自顶向下进行合并,分情况进行讨论: (1)当tree1,tree2都为空时,返回None (2)当tree1为空时,返回tre...

missTu~的博客 592

leetcode 716最大栈

class MaxStack { public: //双栈,一个栈记录数,另一个栈记录到目前为止的最大值(每增删一次都要)。 //再进行操作时要将两栈同步。 stack<int> sck_num; stack<int> sck_max; MaxStack() { } void push(int x) { if(sck_max.empty()||x>sck_max.top()) s.

weixin_45723904的博客 323

LeetCode #716 - Max Stack

题目描述: Design a max stack that supports push, pop, top, peekMax and popMax. 1. push(x) -- Push element x onto stack. 2. pop() -- Remove the element on top of the stack and return it. 3. top() -- Ge...

LawFile的博客 500

2022-3-31 Leetcode 716.最大栈

1、好像不能用 stack 作为容器 class MaxStack { public: stack<int> maxsk; stack<int> sk; MaxStack() { maxsk.push(INT_MIN); } void push(int x) { sk.push(x); maxsk.push(max(maxsk.top(),x)); } i..

weixin_51187533的博客 250

【LeetCode】716. Max Stack 解题报告(C++)

作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录题目描述题目大意解题方法双栈日期 题目地址:https://leetcode-cn.com/problems/max-stack/ 题目描述 Design a max stack that supports push, pop, top, peekMax and ...

负雪明烛 1266

716 Max Stack

Design a max stack that supports push, pop, top, peekMax and popMax. push(x) -- Push element x onto stack.pop() -- Remove the element on top of the stack and return it.top() -- Get the element on the ...

dongbeier的博客 537

[Leetcode] 716. Max Stack 解题报告

题目: Design a max stack that supports push, pop, top, peekMax and popMax. push(x) -- Push element x onto stack.pop() -- Remove the element on top of the stack and return it.top() -- Get the

魔豆(Magicbean)的博客 1596

leetcode 算法题716 (简单186) 最大栈

leetcode 算法题716 (简单186) 最大栈 题目介绍 设计一个最大栈,支持 push、pop、top、peekMax 和 popMax 操作。 push(x) -- 将元素 x 压入栈中。 pop() -- 移除栈顶元素并返回这个值。 top() -- 返回栈顶元素。 peekMax() -- 返回栈中最大元素。 popMax() -- 返回栈中最大的元素,并将...

FYuu95100的博客 817

Leetcode题解-算法-栈和队列(python版)

文章目录1、用栈实现队列2、用队列实现栈 1、用栈实现队列 232. 用栈实现队列(Easy) class MyQueue(object): def __init__(self): self.stack_1 = [] self.stack_2 = [] def push(self, x): self.stack_1.append(x) def pop(self): if not self.stack_2:

桑凯旋的博客 582
上一篇: [leetcode] 507. Perfect Number @ python
下一篇: [leetcode] 979. Distribute Coins in Binary Tree @ python
闲庭信步的空间
博客等级 码龄9年 86粉丝 416原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值