- 介绍项目
- 多线程的实现方式,线程的状态
- new Thread / implements Runnable
- gc,什么时候gc,内存溢出
- Linux指令,怎么查看内存线程使用情况
- Mysql索引,group by & union
- TCP的…四次挥手,为什么等待2MSL?
- 用过哪些大数据框架
- 怎么判断一棵二叉树是镜像的?
- 层次遍历,每次取左子树左右结点,右子树右左结点,判断是否相同
- 栈实现O(1)获得最小的数getMin()
- 准备两个栈,一个正常栈,一个辅助栈,正常栈做pop和push。辅助栈push更新最小值,pop出正常栈的最小值。
- 过程很简单,当正常栈push的时候,查看辅助栈的栈顶元素,如果是比辅助栈栈顶还小或者等于,那么更新到栈顶。否则不加如辅助栈。
- 当正常栈做pop,查看辅助栈栈顶是否相等,相等的话一起pop,否则不动。
- PS:注意当做push的时候,辅助栈栈顶元素和新元素相等,还是要入栈,因为再做pop把元素出栈后,正常栈其实后面还是有这个元素。
- 原理:其实就是类似动态规划的原理,辅助栈里的元素,全是到正常栈该元素位置的最小值是谁。所以除非正常栈做出栈弹出到这个值,否则辅助栈的栈顶就是当前的最小值。
- 1000瓶水,1瓶有毒,一只小白鼠喝了有毒的一周死亡,现给10只小白鼠一周时间,怎么做?
- 二进制 标记
腾讯云后台开发实习生暑期面试
最新推荐文章于 2024-05-02 14:05:54 发布