分类:

7 篇文章

栈和队列
栈和队列 1、栈 1、适合做栈相邻的内容 2、相邻的字符串、相邻的数字、括号啥的 1、逆波兰表达式 1、就是二叉树的后续遍历(左右中) 2、
239. 滑动窗口最大值【困难】
239. 滑动窗口最大值【困难】 题目 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,6,7] …
150、逆波兰表达式求值【中等】
逆波兰表达式求值【中等】 题目 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 '+'、'-'、'*' 和 '/' 。 每个操作数(运算对象)都可以是一个整数或者另一个表达式。 两个整数之间的除法总是 向零截断 。 表达式中不含除零运算。 输入…
1047.删除字符串中所有相邻重复项【简单】
删除字符串中所有相邻重复项【简单】 题目 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:"abbaca" 输出:"ca" 解释: 例如,在 …
20.有效的括号【简单】
有效的括号【简单】 题意 1、就是括号可以互相包含,但不能参差摆放,如下例: "{[]}()" true ({)} false 思路 1、就是多层if判断 2、如果有[或{或(就把相应另外一半放进去。 3、最后判断这个栈是否为空,如果为空,就是有效的括号。如果不为空,就不是有效的括号 代码 class Solution { pu…
225.用队列实现栈【简单】
用队列实现栈【简单】 思路 1、我们这里只使用一个队列来进行操作。 2、我们在push()方法中,直接将放入队列中的数据,每个取出再反向的装入到队列中,就可以实现这个方法。 3、其他就正常写 代码实现[java] class MyStack { Queue<Integer> queue; public MyStack() { queue…
232.用栈实现队列【简单】
232.用栈实现队列【简单】 1、思路 1、用两个栈来实现队列 2、一个栈是进栈inStack 3、一个栈是出栈outStack 4、其中我们自定义一个方法pushToOutStack() 5、这个方法的作用是将inStack中的数据放到outStack中 6、在peek()/pop()方法调用时,需要添加该自定义方法。用来保持队列的先进先出要求。…