Compare commits

..

No commits in common. '550227803a63cd764992aa1acac3651886f46171' and '11adcc341ef51ef398f0bb7155f4a329347db4f3' have entirely different histories.

@ -51,37 +51,6 @@ private static Node reverDoubleLinkedList(Node head) {
### 位图
位图的功能 保存已知最大值的集合
位图的好处 极大的节省空间
位图的实现 java.util.BitSet
```Java
public class BitMap {
private long[] bits;
public BitMap(int max) {
bits = new long[(max + 64) >> 6];
}
// 给定数字除以64的结果result模64的结果mod分开保存bits[result]位置的mod位设置为1
public void add(int num){
// num&63等于num%64
bits[num >> 6] |= (1L << (num & 63));
}
public void delete(int num){
bits[num >> 6] &= ~(1L << (num & 63));
}
public boolean contains(int num){
return (bits[num >> 6] & (1L << (num & 63))) != 0;
}
}
```
#### 位运算实现加减乘除 LeetCode29
加法add a^b结果为无进位相加(a&b)<<10
减法delete add(a,add(~b,1))取反加1后为负数。
乘法 a左移b的每一位进制的位数相加。
除法 先取绝对值a右移到刚好大于等于b拿到一个商最后所有商相加补上符号。对系统最小值特殊处理。
位图的功能
位图的好处
位图的用法

@ -1,38 +0,0 @@
#### 合并K个升序链表 LeetCode2
使用PriorityQueue保存各链表的头结点每次prorityQueue.poll()弹出最小值注意单链表的next指针和中间变量。循环终止条件为优先级队列变空。
二叉树
先序遍历 头左右
中序遍历 左头右
后序遍历 左右头
递归序 每个节点都到达三次
主要解题思路是递归
#### 判断两颗二叉树是否相同 LeetCode100
#### 判断一个二叉树是否对称 LeetCode101
#### 获取一个二叉树的高度 LeetCode104
#### 用先序数组和中序数组重建一个二叉树 LeetCode105
先序遍历的第一个元素是头结点先序遍历剩余部分左边是左节点的先序右边是右节点的先序中序遍历左边是左节点的中序右边是右节点的中序。递归构建二叉树递归函数入参为先序遍历的起止index中序遍历的起止index返回头结点。
### 二叉树按层遍历收集节点 LeetCode107 LeetCode102
使用LinkedList(有序,快速插入),递归将每一层的节点入队、出队。
### 平衡二叉树 LeetCode110
左子树的高度和右子树的高度相差不超过1则称为平衡二叉树。
### 二叉搜索树 LeetCode98
递归解决
### 路径总和 LeetCode112
### 达标路径总和 LeetCode113
Loading…
Cancel
Save