diff --git a/docs/notes/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif b/docs/notes/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif
new file mode 100644
index 00000000..763fc1a3
Binary files /dev/null and b/docs/notes/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif differ
diff --git a/docs/notes/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif b/docs/notes/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif
new file mode 100644
index 00000000..07f3a910
Binary files /dev/null and b/docs/notes/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif differ
diff --git a/docs/notes/pics/_u66FF_u6362_u7A7A_u683C.gif b/docs/notes/pics/_u66FF_u6362_u7A7A_u683C.gif
new file mode 100644
index 00000000..fe6c5503
Binary files /dev/null and b/docs/notes/pics/_u66FF_u6362_u7A7A_u683C.gif differ
diff --git a/docs/notes/剑指 offer 题解.md b/docs/notes/剑指 offer 题解.md
index 140023c7..6c61ccec 100644
--- a/docs/notes/剑指 offer 题解.md
+++ b/docs/notes/剑指 offer 题解.md
@@ -110,14 +110,13 @@ Output:
## 解题思路
-要求复杂度为 O(N) + O(1),也就是时间复杂度 O(N),空间复杂度 O(1)。因此不能使用排序的方法,也不能使用额外的标记数组。
+要求是时间复杂度 O(N),空间复杂度 O(1)。因此不能使用排序的方法,也不能使用额外的标记数组。
对于这种数组元素在 [0, n-1] 范围内的问题,可以将值为 i 的元素调整到第 i 个位置上进行求解。
以 (2, 3, 1, 0, 2, 5) 为例,遍历到位置 4 时,该位置上的数为 2,但是第 2 个位置上已经有一个 2 的值了,因此可以知道 2 重复:
-
-
+
```java
public boolean duplicate(int[] nums, int length, int[] duplication) {
@@ -148,7 +147,7 @@ private void swap(int[] nums, int i, int j) {
## 题目描述
-在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
+给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。
```html
Consider the following matrix:
@@ -166,13 +165,11 @@ Given target = 20, return false.
## 解题思路
-从右上角开始查找。矩阵中的一个数,它左边的数都比它小,下边的数都比它大。因此,从右上角开始查找,就可以根据 target 和当前元素的大小关系来缩小查找区间。
+要求时间复杂度 O(M + N),空间复杂度 O(1)。
-复杂度:O(M + N) + O(1)
+该二维数组中的一个数,它左边的数都比它小,下边的数都比它大。因此,从右上角开始查找,就可以根据 target 和当前元素的大小关系来缩小查找区间,当前元素的查找区间为左下角的所有元素。
-当前元素的查找区间为左下角的所有元素,例如元素 12 的查找区间如下:
-
-
+
```java
public boolean Find(int target, int[][] matrix) {
@@ -203,10 +200,10 @@ public boolean Find(int target, int[][] matrix) {
```text
Input:
-"We Are Happy"
+"A B"
Output:
-"We%20Are%20Happy"
+"A%20B"
```
## 解题思路
@@ -217,6 +214,8 @@ Output:
从后向前遍是为了在改变 P2 所指向的内容时,不会影响到 P1 遍历原来字符串的内容。
+
+
```java
public String replaceSpace(StringBuffer str) {
int P1 = str.length() - 1;
@@ -245,7 +244,7 @@ public String replaceSpace(StringBuffer str) {
## 题目描述
-输入链表的第一个节点,从尾到头反过来打印出每个结点的值。
+从尾到头反过来打印出每个结点的值。
diff --git a/docs/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif b/docs/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif
new file mode 100644
index 00000000..763fc1a3
Binary files /dev/null and b/docs/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif differ
diff --git a/docs/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif b/docs/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif
new file mode 100644
index 00000000..07f3a910
Binary files /dev/null and b/docs/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif differ
diff --git a/docs/pics/_u66FF_u6362_u7A7A_u683C.gif b/docs/pics/_u66FF_u6362_u7A7A_u683C.gif
new file mode 100644
index 00000000..fe6c5503
Binary files /dev/null and b/docs/pics/_u66FF_u6362_u7A7A_u683C.gif differ