分享|2021秋招算法总结12-栈篇
12620
2021.01.26
2021.08.09
发布于 未知归属地

置顶科普

年份是毕业年份,2021是指2021年毕业,不是2021年面试

鲂的2021秋招算法总结目录(已完结)

1. 分享|2021秋招算法总结1-DFS篇
2. 分享|2021秋招算法总结2-BFS篇
3. 分享|2021秋招算法总结3-链表篇
4. 分享|2021秋招算法总结4-二叉树篇
5. 分享|2021秋招算法总结5-排序算法篇
6. 分享|2021秋招算法总结6-字符串篇

  1. 分享|2021秋招算法总结7-双指针篇
  2. 分享|2021秋招算法总结8-哈希篇
  3. 分享|2021秋招算法总结9-位运算
  4. 分享|2021秋招算法总结10-数组篇
  5. 分享|2021秋招算法总结11-动规篇
  6. 分享|2021秋招算法总结12-栈篇

鲂的2021秋招经验总结(不定时更新)

1. 分享|2021届毕业生秋招经验总结1-岗位类别介绍
2. 分享|2021届毕业生秋招经验总结2-如何选择offer

鲂的面经整理目录(已完结)

1. 美团金融|安卓客户端|面经|offer|2021届秋招|
2. 拼多多|客户端开发|面经|offer|2021届秋招|
3. 网易云音乐|安卓客户端|面经|offer|2021届秋招|
4. 阿里巴巴|客户端开发|面经|2021届秋招|
5. 花旗银行|软件工程师|面经|offer|2021届秋招|
6. 字节跳动|客户端开发|面经|2021届秋招|
7. 叠纸游戏|客户端开发|面经|2021届秋招|
8. 腾讯|客户端开发|面经|2021届秋招|
9. 360|安卓客户端|面经|offer|2021届秋招|
10. 作业帮|IOS客户端|面经|2021届秋招|
11. 滴滴|安卓客户端|面经|2021届秋招|
12. 百度|IOS客户端|面经|2021届秋招|
13. 快手|客户端开发|面经|2021届秋招|
14. 顺丰科技|安卓客户端|面经|offer|2021届秋招|

鲂的内推

1. 内推+校招秋招|美团金融服务平台|多项岗位|北京+上海

本篇概要

本篇主要记录一些用栈做的题目,其中包括部分单调栈的题目。

栈的转化

  1. 232. 用栈实现队列剑指 Offer 09. 用两个栈实现队列面试题 03.04. 化栈为队:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty)。
  2. 225. 用队列实现栈:使用队列实现栈的下列操作:push(x) -- 元素 x 入栈;pop() -- 移除栈顶元素;top() -- 获取栈顶元素;empty() -- 返回栈是否为空。
  3. 面试题 03.01. 三合一:描述如何只用一个数组来实现三个栈。实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。

最小/大栈

  1. 155. 最小栈剑指 Offer 30. 包含min函数的栈面试题 03.02. 栈的最小值:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
  2. 716.最大栈:会员题放不了题目,感兴趣的可以看看。

验证栈序列

  1. 946.验证栈序列剑指Offer31.栈的压入、弹出序列:给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。

栈排序

  1. 面试题 03.05. 栈排序:编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek 返回 -1。
  2. 面试题 03.03. 堆盘子:设想有一堆盘子,堆太高可能会倒下来。因此,在现实生活中,盘子堆到一定高度时,我们就会另外堆一堆盘子。请实现数据结构SetOfStacks,模拟这种行为。SetOfStacks应该由多个栈组成,并且在前一个栈填满时新建一个栈。此外,SetOfStacks.push()和SetOfStacks.pop()应该与普通栈的操作方法相同(也就是说,pop()返回的值,应该跟只有一个栈时的情况一样)。 进阶:实现一个popAt(int index)方法,根据指定的子栈,执行pop操作。

单调栈

仅列举可以用单调栈求解的题目,并不意味着最优解是单调栈,也不意味着其他解法不可行。

  1. 84. 柱状图中最大的矩形:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。
  2. 85. 最大矩形:给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。
  3. 221. 最大正方形:在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。
  4. 739. 每日温度:请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。
  5. 901. 股票价格跨度:编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。
  6. 496. 下一个更大元素 I:给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。
  7. 316. 去除重复字母1081. 不同字符的最小子序列:给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。
  8. 402. 移掉K位数字:给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。
  9. 907. 子数组的最小值之和:给定一个整数数组 A,找到 min(B) 的总和,其中 B 的范围为 A 的每个(连续)子数组。

结束语

本文为系列完结篇,其实还有一些我笔记中的项目没更新,比如多线程的题,因为没几道题,所以可以直接通过题库查找。更完以后就不常上了,有问题可以留言,万一哪天上来了会统一处理问题的。本系列不保证各位一定能找到工作,但希望大家从中有所收获。祝那些给我点赞的人都能找到满意的工作,也祝那些点踩的人一辈子用不上这些东西吧。

评论 (9)