03 2020 档案
摘要:/** * * 问题:判断两个字符串是否为变形词 * 给定两个字符串str1和str2, 如果str1和str2中出现的字符种类一样且每种字符出现 * 的次数也一样,那么 str1与 str2互为变形词。 * * 举例: * str1 = " 123", str2="231", 返回 true。 *
阅读全文
摘要:/** * 问题:有环链表相交问题 * 如何判断两个有环链表是否相交, 相交则返回第一个相交节点, 不相交则返回 null。 * * 两个链表各自的第一个入环节点, 假设链表1的第一个入环节点记为 loop1,链表 2的第一个 * 入环节点记为 loop2。 * * 1.如果loop1 == loo
阅读全文
摘要:/** * * 问题: * 判断无环单链表相交问题 * 如何判断两个无环链表是否相交, 相交则返回第一个相交节点,不相交则返回 null。 * 如果两个无环链表相交, 那么从相交节点开始, 一直到两个链表终止的这一段, 是两个链 * 表共享的。 * * 分析: *1.链表 1从头节点开始,走到最后一
阅读全文
摘要:/** * 问题:链表环问题 * 判断一个链表是否有环, 如果有, 则返回第一个进入环的节点, 没有则返回null。 * * 分析: * 如果一个链表没有环, 那么遍历链表一定可以遇到链表的终点: 如果链表有环, 那 *么遍历链表就永远在环里转下去了。如何找到第一个入环节点, 具体过程如下: * *
阅读全文
摘要:/** * * 问题:两个单链表相加生成相加链表 * 假设链表中每一个节点的值都在0-9之间, 那么链表整体就可以代表一个整数。 * 例如: 9->3->7, 可以代表整数 937。 * 给定两个这种链表的头节点 head1和 head2, 请生成代表两个整数相加值的结果链表。 * 例如: 链表 1
阅读全文
摘要:/** * * 问题:两个单链表相加生成相加链表 * 假设链表中每一个节点的值都在0-9之间, 那么链表整体就可以代表一个整数。 * 例如: 9->3->7, 可以代表整数 937。 * 给定两个这种链表的头节点 head1和 head2, 请生成代表两个整数相加值的结果链表。 * 例如: 链表 1
阅读全文
摘要:/** * * 问题: 复制含有随机指针节点的链表 * * 分析: * 给定一个由Node节点类型组成的无环单链表的头节点head, 请实现一个函数完成这 * 个链表中所有结构的复制, 并返回复制的新链表的头节点。例如: 链表1->2->3->null, * 假设1的 rand指针指向3, 2的 r
阅读全文
摘要:/** * 题目:将单向链表按某值划分成左边小、中间相等、右边大的形式(进阶) * * 要求: * 给定一个单向链表的头节点 head, 节点的值类型是整型, 再给定一个整数 pivot。实现 *一个调整链表的函数, 将链表调整为左部分都是值小于pivot的节点, 中间部分都是值等于pivot *的
阅读全文
摘要:/** * 题目:将单向链表按某值划分成左边小、中间相等、右边大的形式 * * 要求: * 给定一个单向链表的头节点 head, 节点的值类型是整型, 再给定一个整数 privot。实现 *一个调整链表的函数, 将链表调整为左部分都是值小于privot的节点, 中间部分都是值等于privot *的节
阅读全文
摘要:/** * 问题: 判断一个链表是否为回文结构 * 给定一个链表的头节点head, 请判断该链表是否为回文结构。 * * 例如: * 1->2->1, 返回 true。 * 1->2->2-> 1, 返回 true 。 * 15->6-> 15, 返回 true。 * 1->2->3, 返回 fal
阅读全文
摘要:/** * 题目: * 环形单链表约瑟夫问题 * 据说著名犹太历史学家Josephus有过以下故事:在罗马人占领乔塔帕特后,39个犹太 *入与 Josephus及他的朋友躲到一个洞中, 39个犹太人决定宁愿死也不要被敌人抓到,于是 *决定了一个自杀方式,41个人排成一个圆圈,由第 1个人开始报数,报
阅读全文
摘要:/** * 问题:反转部分单向链表 * 给定一个单向链表的头节点head,以及两个整数from和to,在单向链表上把第form个节点到第to个节点这一部分进行反转。 * 例如: * 1->2->3->4->5->null, from=2, to=4 * 调整结果为: 1->4->3->2->5->n
阅读全文
摘要:/** * 问题:反转双向链表 * * 要求: * 如果链表长度为 N,时间复杂度为O(N),额外的空间复杂度为O(1)。 * * @author 雪瞳 * */ public class Node<T>{ public T value; public Node next; public Node
阅读全文
摘要:/** * 问题:反转单向链表 * * 要求: * 如果链表长度为 N,时间复杂度为O(N),额外的空间复杂度为O(1)。 * * @author 雪瞳 * */ * 代码 public class Node<T>{ public T value; public Node next; public
阅读全文
摘要:/** * 题目:删除链表的a/b处节点 * 给定链表的头节点 head、整数 a和 b, 实现删除位于 a/b处节点的函数。 * * 例如: * 链表: 1->2->3->4->5, 假设a/b的值为r。 * 如果r等于0, 不删除任何节点; * 如果r在区间(0, 1/5]上, 删除节点1; *
阅读全文
摘要:/** * *问题:删除链表的中间节点 * 给定链表的头节点head, 实现删除链表的中间节点的函数。 * *分析: * 不删除任何节点; * 1->2, 删除节点1; * 1->2->3, 删除节点2; * 1->2->3->4, 删除节点2: * 1->2->3->4->5, 删除节点3; *
阅读全文
摘要:/** * 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。 * 所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 * 这也就导致了在对链表数据进行删除和添加的时候要明确指定出节点的前驱节点和后继节点。 * @author
阅读全文
摘要:/*双向链表 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方 便地访问它的前驱结点和后继结点。 下图是双向链表的逻辑结构图,和单链表不同的是,双向链表中每个节点包含两个节点的指针引用,和一个数据域,这两个
阅读全文
摘要:/** * 题目:在单链表中删除倒数第K个节点 * 实现函数可以删除单链表中的倒数第K个节点。 * 要求: * 如果链表长度为N,时间复杂度为O(N),额外空间复杂度达到O(1)。 * 分析: * 1.如果链表为空或者 K值小于1, 这种情况下, 参数是无效的, 直接返回即可。 * 除此之外, 让链
阅读全文
摘要:/** * 问题: * 打印两个有序链表的公共部分 * 给定两个有序链表的头指针head1和head2,打印出这两个链表的公共部分 * 分析: * 因为是有序链表,所以从两个链表的头开始进行如下判断 * 1.如果head1的值小于head2的值,则head1往下移动。 * 2.如果head1的值大于
阅读全文
摘要:public class Node { //每一个链表实际上就是由多个节点组成的 private String data; //用于保存数据 private Node next; //用于保存下一个节点 public Node(String data){ //每一个Node类对象都必须保存有数据 t
阅读全文
摘要:/** * * 问题: * 最大值减去最小值小于或等于num子数组的数量 * 给定数组arr和整数num,共返回有多少个子数组满足如下情况: * 1.max(arr[i..j])-min(arr[i..j]) <= num * 2.max(arr[i..j])表示子数组arr[i..j]中的最大值
阅读全文
摘要:* 单调栈的相关应用 /** * 问题:求最大子矩阵的大小 * 给定一个整形矩阵map,其中的值只有0和1两种,求其中全是1的所有矩形区域中,最大的矩形区域为1的数量。 * 例如: * 1 1 1 0 * 其中,最大的矩形区域有三个1,所以返回3. * 再如: * 1 0 1 1 * 1 1 1 1
阅读全文
摘要:/** * 题目: 第七题的进阶问题 * 给定一个可能含重复值的数组arr,找到每一个i位置左边和右边离i位置最近且值比arr[i]小的位置。 * 返回所有的位置信息。 * 分析: * 初始arr=[3,1,3,4,3,5,3,2,2],stack从栈顶到栈底为:{} * 位置角标 0,1,2,3,
阅读全文
摘要:/** * 题目: * 给定一个不含重复值的数组arr,找到每一个i位置左边和右边离i位置最近且值比arr[i]小的位置。 * 返回所有的位置信息。 * 举例: * arr = [3,4,1,5,6,2,7] * 返回如下的二维数组作为结果: * { * {-1 , 2}, * { 0 , 2},
阅读全文
摘要:*Java双端队列的知识 Deque 接口是 double ended queue 的缩写,即双端队列,支持在队列的两端插入和删除元素,继承 Queue接口。public interface Deque extends Queue Deque 的 12 种方法总结如下: 插入: 如果操作失败则抛出异
阅读全文
摘要:/** * 问题: 生成窗口最大值数组 * 有一个整形数组array和一个大小为w的窗口从数组最左边滑到最右边,窗口每次向右边滑动一个位置。 * 例如,数组为[4,3,5,4,3,3,6,7],窗口大小为3时: * [4 3 5] 4 3 3 6 7 窗口的最大值是5 * 4 [3 5 4] 3 3
阅读全文
摘要:/** * 题目: 用一个栈实现另一个栈的排序 * 一个栈的元素是整形,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。 * 除此之外,可以申请新的变量,但不能申请额外的数据结构。 * 分析: * 将要排序的栈记为stack,申请的辅助栈记为helpStack。在stack栈上执行pop
阅读全文
摘要:调试程序 Debug窗口 Resume(F8)到下一个断点 Step into(F5)进入到函数等里面 Step over(F6)到下一行代码 Step return(F7)返回到调用的下一行 Drop to Frame返回到当前方法的第一行, Terminate (F12)终止虚拟机,程序就结束了
阅读全文
摘要:MyEclipse常用快捷键 MyEclipse设置工作空间默认编码utf-8等,使新建工程使用默认编码 菜单栏——Window / Preferences / General / Workspace 。 内容提示:Alt + / Content Assist 选中多行代码,按Tab键是整块向右推进
阅读全文
摘要:今天在启动myEclipse的时候遇到 java was started but returned exit code =-805306369 这个问题。具体如下图所示: *解决方法 在项目的工作目录下删除workbench.xmi文件 *路径 F:\code\myeclipseCode\.meta
阅读全文
摘要:/** * 题目: 猫狗队列 * 如题可知 宠物、狗、猫的类已知,试实现一种狗猫队列的结构 * 要求: * 1.用户可以调用add方法将cat类或dog类的实例放入队列。 * 2.用户可以调用pollAll方法,将队列中的所有实例按照进队列的先后顺序依次弹出。 * 3.用户可以调用pollDog方法
阅读全文
摘要:/** * 问题: * 如何仅适用递归函数和栈操作逆序一个栈 * 一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈转置后, * 从栈顶到栈底为5、4、3、2、1,也就是实现了栈中元素的逆序,但是只可以通过递归函数来实现。 * 分析: * 本题目考验查找操作和递归函
阅读全文
摘要:/** * 题目: * 编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek) * 分析: * 栈的特点是先进后出,而队列的特点是先进先出,我们可以用两个栈正好能把顺序 * 反过来实现类似队列的操作。 * 具体实现是一个栈作为压入栈,在压入数据时只往这个栈中压入,记为stac
阅读全文
摘要:Java 栈的相关操作 题目 : * 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作 * 要求 : * 1.pop、push、getMin操作的时间复杂度都是O(1)。 * 2.设计栈类型可以使用现成的栈结构。 * 首先明确Java栈的相关操作函数 Stack stack
阅读全文

浙公网安备 33010602011771号