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

【算法练习】leetcode算法题合集之栈和队列篇

普通栈

LeetCode20 有效的括号

LeetCode20 有效的括号

定义一个辅助map,判断字符串的字符是否在]})中。一旦是右括号就要弹出元素,判断匹配。

class Solution {public boolean isValid(String s) {if (s.length() % 2 == 1) {return false;}Map<Character, Character> pairs = new HashMap<>();pairs.put(')', '(');pairs.put(']', '[');pairs.put('}', '{');Stack<Character> stack = new Stack<>();for (int i = 0; i < s.length(); i++) {if (pairs.containsKey(s.charAt(i))) {if (stack.isEmpty() || pairs.get(s.charAt(i)) != stack.peek()) {return false;}stack.pop();} else {stack.push(s.charAt(i));}}if (!stack.isEmpty()) {return false;}return true;}
}

LeetCode155. 最小栈

LeetCode155. 最小栈

使用栈记录最小的元素。

class MinStack {private Stack<Integer> stack;private Stack<Integer> minStack;public MinStack() {stack = new Stack<>();minStack = new Stack<>();}public void push(int val) {stack.push(val);if (minStack.isEmpty() || minStack.peek() >= val) {minStack.push(val);}}public void pop() {Integer pop = stack.pop();if (pop.equals(minStack.peek())) {minStack.pop();}}public int top() {return stack.peek();}public int getMin() {return minStack.peek();}
}

LeetCode232. 用栈实现队列

LeetCode232. 用栈实现队列

在这里插入图片描述

相关文章:

  • 安卓、ios系统详解
  • 黑马程序员 Java设计模式学习笔记(一)
  • qt学习:进度条,水平滑动条,垂直滑动条+rgb调试实战
  • 数据备份与恢复
  • 数据库常用系统表及常用功能
  • 高并发缓存问题分析以及分布式锁的实现
  • C++ 之LeetCode刷题记录(十三)
  • 工业 4.0 的过程监控是什么?
  • 算法笔记(动态规划入门题)
  • leetcode:1736. 替换隐藏数字得到的最晚时间(python3解法)
  • KubeSphere平台使用
  • Java和SpringBoot学习路线图
  • Linux下使用Docker部署MinIO实现远程上传
  • C#,入门教程(38)——大型工程软件中类(class)修饰词partial的使用方法
  • LeetCode刷题——55. 跳跃游戏(HOT100)
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • Android组件 - 收藏集 - 掘金
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • dva中组件的懒加载
  • input的行数自动增减
  • javascript 哈希表
  • javascript从右向左截取指定位数字符的3种方法
  • JS 面试题总结
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • React的组件模式
  • vue--为什么data属性必须是一个函数
  • vue学习系列(二)vue-cli
  • 测试如何在敏捷团队中工作?
  • 翻译:Hystrix - How To Use
  • 记一次和乔布斯合作最难忘的经历
  • 手写一个CommonJS打包工具(一)
  • 用jquery写贪吃蛇
  • 在Mac OS X上安装 Ruby运行环境
  • 智能网联汽车信息安全
  • 自动记录MySQL慢查询快照脚本
  • 最简单的无缝轮播
  • const的用法,特别是用在函数前面与后面的区别
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #控制台大学课堂点名问题_课堂随机点名
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (阿里云万网)-域名注册购买实名流程
  • (第一天)包装对象、作用域、创建对象
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复