首页 > 其他分享 >4月11日leetcode练习

4月11日leetcode练习

时间:2023-04-11 23:11:32浏览次数:48  
标签:11 元素 出栈 val 练习 运算符 堆栈 leetcode 表达式

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

实现 MinStack 类:

MinStack() 初始化堆栈对象。
void push(int val) 将元素val推入堆栈。
void pop() 删除堆栈顶部的元素。
int top() 获取堆栈顶部的元素。
int getMin() 获取堆栈中的最小元素。
 

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/min-stack
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

这道题让我明显的感觉到了封装的理念,题中说是实现一个栈并且可以获取栈中的最小元素。

可以有这样一种思路就是用两个栈来实现一个栈,用类将两个栈封装起来变成一个可以随时获取他的最小元素的栈。第一个栈保持栈的基本作用,而另一个栈用来压入第一个栈压入的小的数值,从而达到题目要求栈的实现

需要注意的一点是;当一号栈入的数值等于当前栈的最小值是也要将这个数值压入二号栈,否则一号栈出栈时二号栈跟着出栈,但是一号栈还有一个相同的最小值,但是此时因为二号栈已经将唯一的一个最小值出栈了当需要获取最小值时,就会出错。

好了下一题:

链接:https://www.nowcoder.com/questionTerminal/885c1db3e39040cbae5cdf59fb0e9382
来源:牛客网

给定一个逆波兰表达式,求表达式的值。
数据范围:表达式长度满足 1≤n≤104 1 \le n \le 10^4 \ 1≤n≤104  ,表达式中仅包含数字和 + ,- , * , / ,其中数字的大小满足 ∣val∣≤200 |val| \le 200 \ ∣val∣≤200 。 逆波兰表达式时后缀表达式,所以可以用栈来计算它的值,先不断将数字压入栈里,当判断遇到运算符时定义一个左变量一个右变量来接受出栈的两个值之后将运算的结果重新压入栈,于是最后的结果就是表达式的值了。

那么如何来将中缀表达式转换为后缀表达式呢?

得先考虑优先级的问题,优先级高的运算符应该放在前面而低的放在后面,比如现有一列字符串表示中缀现在我们要将其转化为后缀,先将其中所有字符入栈,若是数字立马出栈,若是运算符则压着,一旦遇到比栈顶优先级高的运算符则立马出栈,若是优先级低的或者相同的则先出栈在入栈,直到没有字符入栈在全部出栈,这样我们就得到了一个后缀表达式

 

标签:11,元素,出栈,val,练习,运算符,堆栈,leetcode,表达式
From: https://www.cnblogs.com/qjwxlj/p/17308221.html

相关文章

  • 4.11号今日总结
    今日我们团队录制了服创团队第一次团队会议的视频,时常为39分钟.在这次会议中我们主要讨论了已经完成的一些功能以及后期需要实现的一些功能,我们四人团队积极发表了自己的想法,认领了各自的任务以及定制了每天需要实现的进度目标.......
  • 11-键盘录入笔记
    一,键盘录入涉及到的方法如下:​ next()、nextLine()、nextInt()、nextDouble()。1)next()、nextLine():可以接受任意数据,但是都会返回一个字符串。比如:键盘录入abc,那么会把abc看做字符串返回。​ 键盘录入123,那么会把123看做字符串返回。代码示例:Scannersc=newScanner(System.in);......
  • C++/ 4/11 学习内容
    空指针调用结构体中的成员函数const修饰成员函数,不能更改函数成员的值友元,让朋友可以访问本类的私有变量, *全局函数做友元*类做友元*成员函数做友元运算符重载:注意格式就ok还有<<这个输出时候的重载, 各种个样的函数重载,主要是为了方便,在主函数里面的实现......
  • Javaweb-登录界面-filter配合案例-2023-04-11
    1、新建login.jsp登录界面响应的路径<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Login</title></head><body><h1>登录界面</h1><hr><form......
  • 「Solution Set」4.11 小记
    P3642[APIO2016]烟火表演我不太会证明凸性。像这道题就是列出DP方程,\(f_{u,x}\)表示以\(u\)为根的子树还有\(x\)分钟就全爆炸的最小代价。然后赌它是个凸函数((因为它有\(sum\),就是两个下凸函数相加,还是下凸的。然后求前缀的最小值再加一个函数一类的,所以考虑之后这......
  • 4.11每日总结
    昨天的河北省科技政策查询系统需求项目没有整出来总记录,老师没让通过。今天又修改了一下    packagecn.itcase.dao.impl;importcn.itcase.dao.UserDao;importcn.itcase.domain.User;importcn.itcase.util.JDBCUtils;importorg.springframework.jdbc.core.Be......
  • 4月11号总结
    --删除tb_user表DROPTABLEIFEXISTStb_user;--创建tb_user表CREATETABLEtb_user(idint,usernameVARCHAR(20),passwordVARCHAR(32));--添加数据INSERTINTOtb_userVALUES(1,'zhangsan','123'),(2,'lisi','234......
  • day42(2023.4.11)
    1.数据库基本概念2.数据库中,各个概念之间的关系3.数据库分类4.MySQL简介、特点、以及分类 5.下载MySQL   6.MySQL的安装与卸载 7.连接MySQL  8.Navicat工具由于MySQL自带的客户端工具(就是那个黑窗口),有点小小的简陋,也不怎么好看。我们可以......
  • 2023年4月11日(软件工程日报)
    深度学习进步之处由sigmid函数,转变为RELU函数,由于梯度下降原因,sigmid函数后期学习非常缓慢,但relu函数可以避免这种情况损失函数,用于衡量单一训练样例效果 逻辑回归中用到的损失函数是:......
  • 2023.4.11——软件工程日报
    所花时间(包括上课):8h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.学习了python,并了解了一些关于python的知识;2.了解了一些数据库的知识;......