左神面试代码系列
左神面试代码系列
程序员·小李
不知道要干什么的时候,停一停,想一想;知道想要什么的时候,努努力,拼一拼。
展开
-
JZ59 滑动窗口的最大值
3. 如果新增的元素比队尾的元素大,则从队尾开始依次弹出较小的元素,直到队列为空,或者队尾的元素比当前元素大。给定一个长度为 n 的数组 nums 和滑动窗口的大小 size ,找出所有滑动窗口里数值的最大值。5. 在包含窗口大小个元素的位置开始,计算窗口的最大值。2. 如果新增的元素比队尾的元素小,直接入队。4. 当队头元素不在滑窗内部时,从队头弹出。1. 如果队列中没有元素,则直接入队。...原创 2022-08-14 20:59:46 · 138 阅读 · 0 评论 -
【左神】递归和栈解决汉诺塔问题
汉诺塔。原创 2022-08-13 18:35:27 · 432 阅读 · 0 评论 -
【左神】设计一个GetMin功能的栈
真实数据栈存储的是当前插入的数据,最小值栈存储的都是当前最小的值。所以每次在插入前都要判断当前元素和最小值栈栈顶元素的相对大小。使用两个栈,一个栈用于存储真实的数据,另外一个栈存储最小值。弹出的时候顺便把最小栈也弹出一下即可。设计一个带有GetMin功能的栈。当存储最小值的栈为空时,...原创 2019-08-16 11:44:27 · 197 阅读 · 0 评论 -
【左神】使用两个栈实现一个队列
压入数据的顺序是先进后出,再翻转到弹出栈以后就变成了先进先出,负负得正!一个栈用于压入数据,一个栈用于弹出数据。然后依次弹出,并压入到弹出栈。使用两个栈设计一个队列。压入1,2,3,4,5,...原创 2019-08-16 11:56:19 · 175 阅读 · 0 评论 -
【左神】仅使用递归和栈实现栈的逆转
将栈顶元素一次弹出,倒数第二弹出,倒数第三弹出,直至栈顶元素,依次压入栈顶,第二个元素,直至最后一个元素。这样实现了元素的逆转。对一个栈,仅使用递归方法和本栈,实现栈的逆转。例如,压入顺序:1,2,3,4,5,弹出顺序也是1,2,3,4,5。通过递归弹出,获取栈底元素last,返回栈底元素,其他元素位置不变。...原创 2019-08-16 15:16:44 · 880 阅读 · 0 评论 -
【左神】猫狗队列
给猫和狗的父类统一包装一下,附加属性时间戳,通过时间戳count来确定加入队列的先后顺序。使用两个队列,一个存猫的信息,一个存狗的信息。1. 存储猫的信息,狗的信息到队列中。弹出猫的信息,直接把猫队列弹出即可。弹出猫或狗,依次按照时间戳弹出即可。弹出狗的信息,只把狗队列弹出即可。2. 依次弹出所有的猫队列的猫。3. 依次弹出所有的狗队列的狗。5. 可以判断猫是否还有。4. 交替弹出猫狗队列。7. 判断猫或狗是否还有。6. 判断狗是否还有。...原创 2019-08-16 15:28:50 · 282 阅读 · 0 评论 -
【左神】使用一个辅助栈进行栈元素排序
如果弹出的元素比辅助栈的元素小,就将辅助栈的元素依次弹出并压入原栈,将这个较小的元素压入辅助栈,再递归。对一个栈的元素进行从大到小排序,可以使用一个辅助栈,创建辅助变量。如果弹出的元素比辅助栈的元素大,直接压入辅助栈,直至原栈为空。依次从栈中弹出元素,依次压入辅助栈。...原创 2019-08-16 15:50:31 · 964 阅读 · 0 评论