萌新成长史
BlackTry.
这个作者很懒,什么都没留下…
展开
-
程序员算法指南-如何仅用递归函数和栈操作逆序一个栈(自带详细注释)
【说明】:本文来自左程云老师所著的《程序员面试代码指南》 【题目】如何仅用递归函数和栈操作逆序一个栈 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1。 将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序, 但是只能用递归函数来实现,不能用其他数据结构。 //仅利用递归函数和栈操作逆序一个栈 //此函数用于不断将底层的元素抽取出来 public ...原创 2020-05-08 14:44:58 · 400 阅读 · 0 评论 -
程序员算法指南-设计一个由两个栈组成的队列(自带详细注释)
【说明】:本文来自左程云老师所著的《程序员面试代码指南》 【题目】编写 一个类,用两个栈实现队列,支持队列的基本操作(add, pol,peek) 【解答】栈的特点是先进后出,而队列的特点是先进先出。 我们用两个栈正好能把顺序反过来实现类似队列的操作。 具体的做法是一个栈作为压入栈,在压入数据的时候只往这个栈压入,记为 stackPush;另一个栈只作为弹出栈,在弹出数据时候只从这个栈弹出,记为s...原创 2020-05-06 18:15:27 · 293 阅读 · 0 评论 -
程序员算法指南-设计一个带有getMin功能的栈(自带详细注释)
【题目】 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。 【要求】 1.pop、push、getMin()操作的时间复杂度都是O(1)。 2.设计的栈类型可以使用现成的栈结构。 【解答】 在设计上我们使用两个栈,一个栈用来保存当前栈中的元素,其功能和一个正常的栈没有区别,这个栈记为stackData;另一个栈用于保存每一步的最小值,这个栈记为stackMin...原创 2020-05-06 10:27:59 · 238 阅读 · 0 评论