队列的应用
CAFEBABE丶
颤抖吧丶发际线
展开
-
剑指Offer_用两个栈来实现队列
题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 先给子弹编号,放到你的弹夹里,把你弹夹里面的子弹换到另一个人的弹夹里,当另一个人的弹夹里有子弹的时候,就直接取出来,那么就是满足题意的,如果另一个人的弹夹没有子弹了,就从你的弹夹里取出来,再放进去就可以了; Copy版: Stack<Integer> sta...原创 2018-06-29 15:16:37 · 155 阅读 · 0 评论 -
剑指Offer_调整整数数组使奇数位于偶数前面
题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保 证奇数和奇数,偶数和偶数之间的相对位置不变。 思路:时间复杂度O(n),先用一个LinedList吧奇数记录下来,在用一个LinedList把偶数记录下来,再遍历他们装回去,相当于遍历两边;如...原创 2018-06-30 16:14:48 · 184 阅读 · 0 评论 -
剑指Offer_二叉搜索树与双向链表
题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路:中序遍历这个二叉树,倒最左边的时候,开始改变树的指针; ...原创 2018-07-02 14:08:57 · 152 阅读 · 0 评论 -
LeetCode_merge-k-sorted-lists
题目描述: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 思路1:用堆排序,每次都是从k条链表里面取出这k个节点中的最小值,然后拼接起来,取这个k个节点就可以使用堆来操作了; 思路2:用分治的思想,和归并排序一样,每次合...原创 2018-07-21 22:08:41 · 138 阅读 · 0 评论