WORD2010 页眉横线和页面顶端距离相同显示不一样 页眉横线和页面顶端距离相同显示不一样:https://zhidao.baidu.com/question/307350784010061524.html
数据结构——堆排序 根节点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆,又称为最大堆(大顶堆)。大顶堆要求根节点的关键字既大于或等于左子树的关键字值,又大于或等于右子树的关键字值。...
面试回答之Hashmap 1、hashmap存储原理jdk1.8 对 hashmap 底层的实现进行了优化,例如引入了红黑树的数据结构和扩容的优化。HashMap的底层是:数组+红黑树+链表在 JDK1.7 中HashMap 的数据是存储在 类型为 Entry 的一个 table 数组 中的,在JDK1.8 中使用的是 Node,Node 是 Map.Entry 的一个子类。1)EntryEntry 是 HashMap 的一个静态内部类:Entry 中封装了 key 和 valuekey 和 Value 是已知的,
switch...case... 昨天参加农行笔试,又遇到了switch…case…,每次遇到都做不出来,真是太气人了仔细阅读以下代码以及答案代码:public static void main(String[] args) { String str = "hello world!"; int len = str.length(); int val1 = 0, val2 = 0; for(int i=0; i<len; i++) { char c = str.charAt(i); swit
java多态性 多态性,就是不同对象收到相同的消息时,产生不同的行为(即方法)。 在C++中,多态性指用一个名字定义不同的函数,这些函数执行不同但又类似的操作,这样就可以用同一函数名调用不同内容的函数。也就是说,可以用同样的接口访问功能不同的函数,从而实现“一个接口,多种方法”。...
索引、B+树 leetcode 117. 填充每个节点的下一个右侧节点指针 II在这道题的评论中,有个人回复此题的意义,说 “像是 mysql 的 B+树 的数据结构,这个 next 就是为了范围搜索的时候,不用再次遍历整个树,而是从begin 位置找 next 节点一直找到不满足条件的节点即可。需要强调的一点是,mysql 的 B+ 树只在叶子节点上建立 next 指针,非叶子节点不会有 next 指针。”而且,之前的面试时,面试官曾经问我索引的作用,特此来复习一下。1. 索引索引是对数据库表中 一列或多列.
先序+后序遍历不能确定一棵二叉树 如上图两个树,先序遍历都为ab,后序遍历都为ba。一般来说,如果二叉树中存在度为1的节点,则根据 先序 和 后序 遍历不能唯一确定该二叉树。leetcode 106. 从中序与后序遍历序列构造二叉树参考自:https://zhidao.baidu.com/question/530938551.html...
Java 迭代实现二叉树的前、中、后序遍历 前序遍历最为简单,因为其 要访问的元素 和 要处理的元素 顺序是一致的,都是中间节点。1、前序遍历: public List<Integer> preOrder(TreeNode root){ Deque<TreeNode> stack = new ArrayDeque<>(); List<Integer> res = new ArrayList<>(); stack.push(root); while(!stack.isEm
平衡二叉树高度的时间复杂度 没有树的任何信息,可对树的每个节点访问一次,O(N)如果是一个平衡树,我们只需要遵循一个分支,并且平衡树的属性确保分支长度为O(log(N)),所以针对某个分支的时间复杂度为O(logN)参考:二叉平衡树的算法复杂度笔记递归计算二叉树高度的函数的时间复杂度...
Java的一些容器类 1. Map1.1 菜鸟教程:java.utill.Map1.2 Map是一个接口public interface Map<K,V> { int size(); boolean isEmpty(); Set<K> keySet(); //returns a Set view of the keys contained in this map Collection<V> values(); //returns a Collection view of t.
快慢指针确定链表中间结点 使用快慢指针判断链表的中间结点时,1)slow 和 fast 指针都从链表的头结点开始执行,判断条件为 while (fast.next != null && fast.next.next != null) slow 从链表的头结点开始执行,fast 从链表的头结点的下一结点开始执行,判断条件为:while (fast != null && fast.next != null) 代码如下所示: public ListNode sortList(ListN
归并排序 1、将序列中待排序数字分为若干组,每个数字分为一组2、将若干个组两两合并,保证合并后的组是有序的3、重复第二步操作直到只剩下一组,排序完成归并排序算法讲解这个代码有点难理解 public static void mergeSort(int arry[], int left, int middle, int right) { int temp[] = new int[right-left+1]; for(int i=left; i<=right; i++) { temp[i-l
快速排序 参考自:https://www.bilibili.com/video/BV1at411T75o?from=search&seid=14241792087840213797快速排序的基本思想:1、选定Pivot中心轴2、将大于Pivot的数字放在Pivot的右边3、将小于Pivot的数字放在Pivot的左边4、分别对左右子序列重复前三步操作指针移动的条件(比如说先移动的是R指针,以第一个下标作为Pivot):1)当R指针下标位置的数,大于 Pivot 时,不对下标处的数进行操作,