This commit is contained in:
ranwenjie
2021-11-27 02:32:30 +08:00
parent b0c67229b3
commit 0b2fb94f5a
2 changed files with 75 additions and 17 deletions
+62 -3
View File
@@ -24,7 +24,7 @@
## 刷题框架套路
遍历
### 遍历
```
# 数组遍历框架
@@ -41,12 +41,21 @@ void traverse(ListNode head) {
}
}
```
void traverse(ListNode head) {
ListNode p = head;
while(p.next != null)
...
p = p.next
递归
}
```
### 递归
```Java
# 链表递归
void traverse(ListNode head) {
// 递归访问 head.val
@@ -71,6 +80,56 @@ void traverse(TreeNode root) {
```
### 二分查找
```Java
public int bsearch(int[] nums, int target){
if(nums == null) {
return -1;
}
int low = 0;
int high = nums.length;
while(low < high){
middle = (high + low ) / 2;
if(nums[middle] < target){
low = middle;
} else if (nums[middle] == target) {
high = middle;//
} else {
high = middle;
}
}
return low;
}
```
### 滑动窗口
```Java
```
### 排序算法
[排序算法](../6%20Sort/README.md)
```Java
#快排 quickSort
#归并排序 mergeSort
```
+12 -13
View File
@@ -51,20 +51,19 @@
### [树](4%20Tree/README.md)
* 二叉树
* 二叉查找树
* 伸展树(splay tree 分裂树)
* 平衡二叉树AVL
* 红黑树
* B树,B+,B*
* R树
* Trie树(前缀树)
* 后缀树
* 最优二叉树(赫夫曼树)
* 二叉堆 (大根堆,小根堆)
* 二项树
* 二项堆
* 二叉树 [快速排序](6%20Sort/README.md)就是个二叉树的前序遍历,归并排序就是个二叉树的后序遍历
* [二叉查找树BST](4%20Tree/2-二叉查找树/二叉查找树.md) 有序的二叉树,中序遍历结果是递增的
* [平衡二叉树 AVL树](4%20Tree/3-平衡树AVL/README.md) 绝对平衡二叉树;
* [红黑树](4%20Tree/9-红黑树%20R-B%20tree/红黑树.md) 弱平衡二叉树;使用广泛
* [B树](4%20Tree/7-B树/B树.md)
* [B+树](4%20Tree/7-B树/B+树.md) mysql 索引使用 B+树 的数据结构
* [字典树trie](4%20Tree/4-字典树Trie/README.md) 字典树也叫前缀树,单词查找树
* [二叉堆](4%20Tree/8-堆/堆.md)
* [伸展树](4%20Tree/5-伸展树/伸展树.md)
* [后缀树](4%20Tree/6-后缀树/后缀树.md)
* 斐波那契堆(Fibonacci Heap)
* 最优二叉树(赫夫曼树)
### [图的算法](5%20Graph/README.md)