剑指offer
诚实的小小乐
这个作者很懒,什么都没留下…
展开
-
剑指offer--用两个栈来实现队列
题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题思路: 给定两个栈,stack1和stack2。入队列时,直接push到stack1中;出队列时,判断stack2是否为空,非空则直接pop出stack2的栈顶,否则将stack1中的所有内容顺序pop出来压入到stack2中,再pop出stack2的栈顶即可。 代码: # -*- codi...原创 2018-08-26 08:40:16 · 221 阅读 · 0 评论 -
剑指offer--二叉搜索树的后序遍历序列
题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 解题思路: 对于二叉搜索树的后续遍历结果数组,该数组的最后一个位置是该树的跟节点,则跟节点之前的所有数字可以以根节点为中心,分为左子树序列和右子树序列,且左子树中所有值都比根节点值要小。右子树则相反。若根节点之前的数字不能按上述方式切分,则该树不...原创 2018-08-28 13:28:41 · 169 阅读 · 0 评论 -
剑指offer--栈的压入弹出序列
题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 解题思路: 模拟压入弹出栈的过程即可,在压入的时候判断刚压入的数字是否和输出的第一...原创 2018-08-21 13:58:38 · 186 阅读 · 0 评论