add link
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
* 编程细节:多练习,总结
|
||||
|
||||
|
||||
常用解题套路工具
|
||||
## 常用解题套路工具
|
||||
|
||||
* 数组,字符串问题:二分查找、 快慢指针、 左右指针、 滑动窗口、 前缀和数组、 差分数组。
|
||||
* 二叉树问题:递归
|
||||
@@ -21,6 +21,59 @@
|
||||
* [常见算法题目Java实现](https://github.com/nonstriater/deep-in-java/tree/master/src/main/java/com/nonstriater/deepinjava/algo)
|
||||
|
||||
|
||||
## 刷题框架套路
|
||||
|
||||
|
||||
遍历
|
||||
|
||||
```
|
||||
# 数组遍历框架
|
||||
void traverse(int[] arr) {
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
// 迭代访问 arr[i]
|
||||
}
|
||||
}
|
||||
|
||||
# 链表遍历框架
|
||||
void traverse(ListNode head) {
|
||||
for (ListNode p = head; p != null; p = p.next) {
|
||||
// 迭代访问 p.val
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
递归
|
||||
|
||||
```
|
||||
# 链表递归
|
||||
void traverse(ListNode head) {
|
||||
// 递归访问 head.val
|
||||
traverse(head.next);
|
||||
}
|
||||
|
||||
|
||||
# 二叉树递归
|
||||
void traverse(TreeNode root) {
|
||||
traverse(root.left);
|
||||
traverse(root.right);
|
||||
}
|
||||
|
||||
# 多叉树递归
|
||||
void traverse(TreeNode root) {
|
||||
for (TreeNode child : root.children)
|
||||
traverse(child);
|
||||
}
|
||||
|
||||
# 图的递归:,用个布尔数组 visited 做标记就行了
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [字符串](1%20字符串.md)
|
||||
|
||||
计算机处理的数据除了数值,就是字符。字符处理的常见问题包括:
|
||||
@@ -95,56 +148,6 @@
|
||||
|
||||
|
||||
|
||||
# 刷题框架套路
|
||||
|
||||
遍历
|
||||
|
||||
```
|
||||
# 数组遍历框架
|
||||
void traverse(int[] arr) {
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
// 迭代访问 arr[i]
|
||||
}
|
||||
}
|
||||
|
||||
# 链表遍历框架
|
||||
void traverse(ListNode head) {
|
||||
for (ListNode p = head; p != null; p = p.next) {
|
||||
// 迭代访问 p.val
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
递归
|
||||
|
||||
```
|
||||
# 链表递归
|
||||
void traverse(ListNode head) {
|
||||
// 递归访问 head.val
|
||||
traverse(head.next);
|
||||
}
|
||||
|
||||
|
||||
# 二叉树递归
|
||||
void traverse(TreeNode root) {
|
||||
traverse(root.left);
|
||||
traverse(root.right);
|
||||
}
|
||||
|
||||
# 多叉树递归
|
||||
void traverse(TreeNode root) {
|
||||
for (TreeNode child : root.children)
|
||||
traverse(child);
|
||||
}
|
||||
|
||||
# 图的递归:,用个布尔数组 visited 做标记就行了
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
# 参考
|
||||
|
||||
|
||||
Reference in New Issue
Block a user