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 0000000000000000000000000000000000000000..763fc1a39fe0c495b6b54ebb5b3e844d70dad014 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 0000000000000000000000000000000000000000..07f3a9102c9d2f84d1001601327d04e3b471129d 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 0000000000000000000000000000000000000000..fe6c5503bcffa54df28b60970e4a6bdcb1240bd9 Binary files /dev/null and b/docs/notes/pics/_u66FF_u6362_u7A7A_u683C.gif differ diff --git "a/docs/notes/\345\211\221\346\214\207 offer \351\242\230\350\247\243.md" "b/docs/notes/\345\211\221\346\214\207 offer \351\242\230\350\247\243.md" index 140023c7b60b741ce463e9b35b19e78119d15ab9..6c61ccecff829c753c36053d459df008596e56b6 100644 --- "a/docs/notes/\345\211\221\346\214\207 offer \351\242\230\350\247\243.md" +++ "b/docs/notes/\345\211\221\346\214\207 offer \351\242\230\350\247\243.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)。 -当前元素的查找区间为左下角的所有元素,例如元素 12 的查找区间如下: +该二维数组中的一个数,它左边的数都比它小,下边的数都比它大。因此,从右上角开始查找,就可以根据 target 和当前元素的大小关系来缩小查找区间,当前元素的查找区间为左下角的所有元素。 -

+

```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 0000000000000000000000000000000000000000..763fc1a39fe0c495b6b54ebb5b3e844d70dad014 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 0000000000000000000000000000000000000000..07f3a9102c9d2f84d1001601327d04e3b471129d 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 0000000000000000000000000000000000000000..fe6c5503bcffa54df28b60970e4a6bdcb1240bd9 Binary files /dev/null and b/docs/pics/_u66FF_u6362_u7A7A_u683C.gif differ