![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构题目最优解
朵朵_calm
这个作者很懒,什么都没留下…
展开
-
1栈和队列--设计一个有getMin功能的栈
实现功能: - 正常压栈 - 正常弹栈 - 返回栈中最小值方法1: 方法2:原创 2016-12-27 10:04:13 · 308 阅读 · 0 评论 -
1栈和队列--由两个栈组成队列
功能:支持队列的基本操作(add压入队列,poll将队首返回并移除,peek获取队首) public void add(int pushInt) { stackPush.push(pushInt); } public int poll() {//删除并返回队首元素 if (stackPop.empty() && stac原创 2016-12-27 10:33:49 · 350 阅读 · 0 评论 -
1栈和队列--仅用递归函数和栈操作逆序一个栈
功能:栈的逆序,只能用递归函数 public static void reverse(Stack<Integer> stack) { if (stack.isEmpty()) { return; } int i = getAndRemoveLastElement(stack); reverse(stack);原创 2016-12-27 10:53:51 · 335 阅读 · 0 评论 -
1栈和队列--猫狗队列
//宠物、猫、狗的类 public static class Pet { private String type; public Pet(String type) { this.type = type; } public String getPetType() { return t原创 2016-12-27 11:13:02 · 518 阅读 · 0 评论 -
1栈和队列--用一个栈实现另一个栈的排序
**功能:将该栈排序 要求:只允许申请一个栈,不许用其他的数据结构** stack —-cur—- helpif(cur小于等于help的栈顶元素,则直接将cur压入help)else(弹出help的中的元素压入stack,直到cur小于等于help弹出的元素)将cur压入help直到stack中为空,将help压回stackpublic static void原创 2016-12-27 11:26:55 · 439 阅读 · 1 评论 -
1栈和队列--用栈来求解汉诺塔问题
修改游戏规则,只能移动一步,不能直接从最左侧到最右侧,必须经过中间过度。 当有N层塔时,打印最优移动过程和最优总步数。 递归方法 非递归方法,用栈来模拟三个塔 递归方法 (1)终止条件:移动最小号 (2)非最左到最右:三个步骤 (3)最左到最右:五个步骤public static void main(String[] args) { in原创 2016-12-29 22:35:55 · 720 阅读 · 0 评论 -
1栈和队列--生成窗口最大数值
输入:整型数组arr,窗口大小w输出:长度为n-w+1数组解析: 用双向队列(两头都可以操作),从队首到队尾,存的下标代表的数值依次减小,队首代表的总是最大的。当队首的下标等于当前下标减去w时,表示队首下标已经过期,移除!每次输出队首public static int[] getMaxWindow(int[] arr, int w) { if (arr == null || w <原创 2016-12-30 08:46:15 · 351 阅读 · 0 评论 -
2链表问题--01打印两个有序列表的公共部分
package chapter_2_listproblem;public class Problem_01_PrintCommonPart { public static class Node {//定义一个Node类 public int value; public Node next; public Node(int data) {原创 2016-12-30 12:02:21 · 356 阅读 · 0 评论