03 2020 档案
摘要:题目描述: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 下图借鉴一位牛客网的同学的做法: import java.util.ArrayList; import java.util.Stack; /*
阅读全文
摘要:(1)当所在类不使用HashSet、Hashtable、HashMap等散列集合进行存储的时候,可以不使用hashcode。 (2)当在HashSet、Hashtable、HashMap中使用该类时,hashcode和equals是有关系的,hashcode和equals需要同时重写才能保证元素的唯
阅读全文
摘要:采用控制一个中断标识符的方式来停止一个线程: package thread.test; class InteruptTest extends Thread { volatile boolean stop = false;// 线程中断信号量 public static void main(Strin
阅读全文
摘要:(1)使用join()方法 在多个线程的执行过程中,若需要对于线程之间的执行顺序有要求的话,可以使用Thread类的join()方法,简单地对于join线程进行解释的话就是: 调用线程要等待join线程执行完成之后才可以继续向下执行 比如我们需要让主线程得到一个Thread1的输出值,这样子就得让T
阅读全文
摘要:反转一个链表常用的两种实现方式:递归和头插法的方式 (1)递归实现 package dsaa.反转链表; class Node { int val; Node next; public Node(Node next, int val) { this.val = val; this.next = ne
阅读全文
摘要:(二叉树的写一个节点)题目描述: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 这里给定了二叉树的其中的一个节点,而且每个节点包含的还有指向父节点的指针,所以可以先找到根节点,再对树进行中序遍历,再根据遍历的结
阅读全文
摘要:(重建二叉树)题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路:寻找根节点,重组左子树和右
阅读全文
摘要:(摘录加总结 ) 一、树的概念 (1)树是一种非线性的数据结构,是由n(n>=1)个有限节点组成的有层次关系的集合,在树中有许多节点,每一个节点最多只有一个父节点,并且可能会有0个或者更多个子节点,没有父节点的那个称为根节点,除了根节点外,每个节点又可分为多个不相交的子树。 (2)树的相关概念术语:
阅读全文
摘要:(判断字符串是否可以表示数值)题目描述: 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 解决思路
阅读全文
摘要:(摘录加总结 ) (1)为什么拼接字符串使用StringBuffer和StringBuilder 在字符串拼接的时候尽量使用StringBuffer和StringBuilder,而尽量减少“+”的使用,比如下面这段代码:“111”,“222”,“333”这些都是在编译期间就被确定下来的数据,但是实际
阅读全文
摘要:(摘录加总结 ) 一、运行测试用例 在谈及String中的等与不等的问题时,必须得考虑到JVM中的一块重要的区域,即常量池。下面的两组代码的运行结果是不一样的: (1)无new关键字 运行结果是true,等号右边是存储的String类型的数据,等号左边是指向这个数据的引用。"=="在Java比较的不
阅读全文
摘要:(替换空格)题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解决办法一:利用replace函数 将str转为字符串后调用replace方法,将空格转为“%20”即可。需要注意的
阅读全文
摘要:(摘录加总结) (1)串的基本概念 串(String)是由0个或多个字符组成的有限序列,又名叫字符串。单引号不属于串的内容。一般的字符串是一群具有前继和后继关系的相邻字符之间的拼接,所以称之为序列,有限的概念是说其拼接的字符的个数是有限的。零个字符的串称为空串(null String),可以直接用双
阅读全文
摘要:(滑动窗口的最大值)题目描述: 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6
阅读全文
摘要:(用两个栈实现队列)题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 对于栈的数据结构,元素在里面是先进后出的,比如输入数据{a,b,c},这样的一行数据希望利用两个栈来实现,以最终队列的形式,那么就得先进先出,而在栈中,最先输入进去的a是在栈底的位置
阅读全文
摘要:(摘录加总结) 栈和队列不属于基础的数据结构,它们都属于线性表。 一、栈 对于栈存储操作元素只能在栈结构的一端进行元素的插入和删除,是一种性质上的线性表结构。按照“先进后出”的原则进行存储数据。先进的元素在栈底,后进的元素在栈顶。需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。比较
阅读全文
摘要:(删除链表中重复的节点)题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 解题思路:这里的重复的节点不保留是将只要重复了的节点都要删除掉,所以考虑利用哈希set的方
阅读全文
摘要:(链表中包含环,找环的入口节点)题目描述: 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 解决思路:通过判断链表中是否包含有环 判断环中的节点数量 找到环的入口节点 (1)一般判断链表中是否包含有环的解决办法 通过一快一慢的双指针,如果链表中包含的有环的话,两指针是会相
阅读全文
摘要:(从尾到头打印链表)题目描述: 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 解题思路一:利用ArrayList原生态的add方法 (1)ArrayList的add方法具有其原生态的特点,利用list.add(index,value)来实现在指定位置处插入元素,并且在插入位置处将其
阅读全文
摘要:(备注)摘录加总结 常用的链表结构:单向链表、双端链表、双向链表、有序链表、有迭代器的链表。 链表是一种和数组类似的基础的数据结构,可以实现栈和队列这样的数据结构。 (1)单向链表(最简单的链表结构实现) 遍历时只能单向遍历。 以下基本实现的分析:①声明链表中的节点的个数和头结点,声明了这个头结点h
阅读全文
摘要:(数组中重复的数组)题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。
阅读全文
摘要:(二位数组的查找)题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解决办法一:利用二分查找的方法 利用 while ( low <= high
阅读全文

浙公网安备 33010602011771号