IT名企算法与数据结构题目最优解-左程云版
alan_gaohaodong
加油!
展开
-
用一个栈实现另一个栈的排序(java实现)
一、题目 一个栈中元素的类型为整形,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序? 二、解答 将要排序的栈记为stack,申请的辅助栈记为help。在stack上执行pop操作,弹出的元素记为cur。 (1)如果cur小于或等于help的栈顶元素,则将cur直接压入help; (2)如果cu...原创 2018-02-09 16:48:35 · 2240 阅读 · 0 评论 -
猫狗队列(java实现)
一、题目 宠物、狗和猫的类如下 public class Pet { private String type; public Pet(String type) { this.type = type; } public String getPetType() { return type; }}public class Dog exte...原创 2018-02-09 16:38:56 · 1042 阅读 · 0 评论 -
用栈来求解汉诺塔问题
一、题目 汉诺塔问题比较经典,这里修改一下游戏规则:现在限制不能从最左侧的塔直接移动到最右侧,也不能从最右侧直接移动到最左侧,而是必须进过中间。求当塔有N层时候,打印最优移动过程和最优移总步数。 例如,当塔数为两层时,最上层的塔记为1,最下层的塔记为2,如下图1所示: ...原创 2018-02-09 20:15:24 · 932 阅读 · 0 评论 -
生成窗口最大值数组(java实现)
一、题目 有一个整形数组arr和一个大小为w的窗口从数组最左边滑到最右边,窗口每次向右边滑一个位置。 例如,数组为[4,3,5,4,3,3,6,7],窗口大小为3时: [4,3,5],4,3,3,6,7 窗口中最大值为5 4,[...原创 2018-02-12 10:26:54 · 559 阅读 · 1 评论 -
两个栈实现一个队列(java版)
一、题目描述:用两个栈实现一个队列 二、题目解析: 解法一: 大体思路:利用栈的特点,一个栈为主栈,是存放整个队列的所有元素的,当操作入队时,可以在主栈里push(入栈)一下;如果要操作出队时就再使用一个副栈,用来倒腾的,先将主栈里的所有元素push到副栈中,在获取副栈的第一个出栈元素即为队列的第一个出队元素,但要再倒腾回去,即将副原创 2018-02-07 21:26:24 · 592 阅读 · 0 评论 -
如何仅用递归函数和栈操作逆序一个栈(java实现)
一、题目描述 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。二、解答 我们需要两个递归函数: 递归函数一:将栈stack的栈底元素返回并移除。 具体过程就是如下代码中的getAndRemoveLastElemen...原创 2018-02-08 11:23:13 · 934 阅读 · 0 评论 -
矩形覆盖(剑指offer第十题)
一、题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?二、思路解析: 2*1第一个覆盖2*n覆盖时,两种情况:(1)竖向覆盖(2)横向覆盖,需要注意的是如果横向覆盖的话,第二个也必须在它下面,导致每次都是两个一起放。 所以我们可以退出递推公式f(n)=f(n-1)+f(n-2),也即...原创 2018-07-10 19:11:13 · 167 阅读 · 0 评论 -
反转链表(剑指offer第十五题)
一、题目描述 输入一个链表,反转链表后,输出新链表的表头。 二、解题思路 需要额外的两个“指针”(java里没有指针这个概念,暂且用来理解),第一个指针temp用来指向链表已经逆序了的部分的头部,指针nextNode用来指向未逆序的部分的头部,不断地将nextNode链表部分的结点一个一个地给了temp链表部分。 三、可运行代码(java) /** *...原创 2018-08-15 10:58:38 · 228 阅读 · 0 评论 -
合并两个排序的链表(剑指offer第十六题)
一、题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 二、题目解析 (1)递归做法:两个链表分别取各自的第一个结点值, 比较大小,将较小值(如果等于时取第一个链表值)链入结果链表中。 (2)非递归做法:用循环来轮流判断两个链表各自第一个结点的值。直到用完其中的一个链表为止。 三、可运行java代码 public class...原创 2018-08-16 22:07:37 · 172 阅读 · 0 评论