From bb098b5250903ac68a277e7c28da6f45010f5da2 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sun, 27 Oct 2019 15:51:57 +0800 Subject: [PATCH] auto commit --- docs/notes/Leetcode 题解 - 双指针.md | 18 ++++++++----- docs/notes/正则表达式.md | 24 ++++++++++-------- .../437cb54c-5970-4ba9-b2ef-2541f7d6c81e.gif | Bin 0 -> 11284 bytes notes/Leetcode 题解 - 双指针.md | 18 ++++++++----- .../437cb54c-5970-4ba9-b2ef-2541f7d6c81e.gif | Bin 0 -> 11284 bytes notes/正则表达式.md | 24 ++++++++++-------- 6 files changed, 50 insertions(+), 34 deletions(-) create mode 100644 docs/pics/437cb54c-5970-4ba9-b2ef-2541f7d6c81e.gif create mode 100644 notes/pics/437cb54c-5970-4ba9-b2ef-2541f7d6c81e.gif diff --git a/docs/notes/Leetcode 题解 - 双指针.md b/docs/notes/Leetcode 题解 - 双指针.md index 4eb7213f..7e0fdc8b 100644 --- a/docs/notes/Leetcode 题解 - 双指针.md +++ b/docs/notes/Leetcode 题解 - 双指针.md @@ -30,8 +30,14 @@ Output: index1=1, index2=2 - 如果 sum > target,移动较大的元素,使 sum 变小一些; - 如果 sum < target,移动较小的元素,使 sum 变大一些。 +数组中的元素最多遍历一次,时间复杂度为 O(N)。额外只使用了两个变量,空间复杂度为 +O(1)。 + +

+ ```java public int[] twoSum(int[] numbers, int target) { + if (numbers == null) return null; int i = 0, j = numbers.length - 1; while (i < j) { int sum = numbers[i] + numbers[j]; @@ -49,7 +55,7 @@ public int[] twoSum(int[] numbers, int target) { # 2. 两数平方和 -633. Sum of Square Numbers (Easy) +633\. Sum of Square Numbers (Easy) [Leetcode](https://leetcode.com/problems/sum-of-square-numbers/description/) / [力扣](https://leetcode-cn.com/problems/sum-of-square-numbers/description/) @@ -80,7 +86,7 @@ public boolean judgeSquareSum(int c) { # 3. 反转字符串中的元音字符 -345. Reverse Vowels of a String (Easy) +345\. Reverse Vowels of a String (Easy) [Leetcode](https://leetcode.com/problems/reverse-vowels-of-a-string/description/) / [力扣](https://leetcode-cn.com/problems/reverse-vowels-of-a-string/description/) @@ -115,7 +121,7 @@ public String reverseVowels(String s) { # 4. 回文字符串 -680. Valid Palindrome II (Easy) +680\. Valid Palindrome II (Easy) [Leetcode](https://leetcode.com/problems/valid-palindrome-ii/description/) / [力扣](https://leetcode-cn.com/problems/valid-palindrome-ii/description/) @@ -149,7 +155,7 @@ private boolean isPalindrome(String s, int i, int j) { # 5. 归并两个有序数组 -88. Merge Sorted Array (Easy) +88\. Merge Sorted Array (Easy) [Leetcode](https://leetcode.com/problems/merge-sorted-array/description/) / [力扣](https://leetcode-cn.com/problems/merge-sorted-array/description/) @@ -185,7 +191,7 @@ public void merge(int[] nums1, int m, int[] nums2, int n) { # 6. 判断链表是否存在环 -141. Linked List Cycle (Easy) +141\. Linked List Cycle (Easy) [Leetcode](https://leetcode.com/problems/linked-list-cycle/description/) / [力扣](https://leetcode-cn.com/problems/linked-list-cycle/description/) @@ -210,7 +216,7 @@ public boolean hasCycle(ListNode head) { # 7. 最长子序列 -524. Longest Word in Dictionary through Deleting (Medium) +524\. Longest Word in Dictionary through Deleting (Medium) [Leetcode](https://leetcode.com/problems/longest-word-in-dictionary-through-deleting/description/) / [力扣](https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting/description/) diff --git a/docs/notes/正则表达式.md b/docs/notes/正则表达式.md index 43d5dcc7..4d59ae04 100644 --- a/docs/notes/正则表达式.md +++ b/docs/notes/正则表达式.md @@ -27,17 +27,17 @@ **.** 是元字符,表示它有特殊的含义,而不是字符本身的含义。如果需要匹配 . ,那么要用 \ 进行转义,即在 . 前面加上 \ 。 -正则表达式一般是区分大小写的,但是也有些实现是不区分。 +正则表达式一般是区分大小写的,但也有些实现不区分。 **正则表达式** ``` -nam. +C.C2018 ``` **匹配结果** -My **name** is Zheng. +My name is **CyC2018** . # 三、匹配一组字符 @@ -82,7 +82,7 @@ abc[^0-9] \r\n\r\n 可以匹配 Windows 下的空白行,因为它匹配两个连续的行尾标签,而这正是两条记录之间的空白行; -## 匹配特定的字符类别 +## 匹配特定的字符 ### 1. 数字元字符 @@ -105,13 +105,13 @@ abc[^0-9] | \s | 任何一个空白字符,等价于 [\f\n\r\t\v] | | \S | 对 \s 取非 | -\x 匹配十六进制字符,\0 匹配八进制,例如 \x0A 对应 ASCII 字符 10,等价于 \n。 +\x 匹配十六进制字符,\0 匹配八进制,例如 \xA 对应值为 10 的 ASCII 字符 ,即 \n。 # 五、重复匹配 - **\+** 匹配 1 个或者多个字符 -- **\** * 匹配 0 个或者多个 -- **?** 匹配 0 个或者 1 个 +- **\** * 匹配 0 个或者多个字符 +- **?** 匹配 0 个或者 1 个字符 **应用** @@ -141,12 +141,12 @@ abc[^0-9] a.+c ``` -由于 + 是贪婪型的,因此 .+ 会匹配更可能多的内容,所以会把整个 abcabcabc 文本都匹配,而不是只匹配前面的 abc 文本。用懒惰型可以实现匹配前面的。 - **匹配结果** **abcabcabc** +由于 + 是贪婪型的,因此 .+ 会匹配更可能多的内容,所以会把整个 abcabcabc 文本都匹配,而不是只匹配前面的 abc 文本。用懒惰型可以实现匹配前面的。 + # 六、位置匹配 ## 单词边界 @@ -327,7 +327,9 @@ aBCd # 九、前后查找 -前后查找规定了匹配的内容首尾应该匹配的内容,但是又不包含首尾匹配的内容。向前查找用 **?=** 来定义,它规定了尾部匹配的内容,这个匹配的内容在 ?= 之后定义。所谓向前查找,就是规定了一个匹配的内容,然后以这个内容为尾部向前面查找需要匹配的内容。向后匹配用 ?<= 定义(注: javaScript 不支持向后匹配, java 对其支持也不完善)。 +前后查找规定了匹配的内容首尾应该匹配的内容,但是又不包含首尾匹配的内容。 + +向前查找使用 **?=** 定义,它规定了尾部匹配的内容,这个匹配的内容在 ?= 之后定义。所谓向前查找,就是规定了一个匹配的内容,然后以这个内容为尾部向前面查找需要匹配的内容。向后匹配用 ?<= 定义(注: JavaScript 不支持向后匹配,Java 对其支持也不完善)。 **应用** @@ -349,7 +351,7 @@ aBCd ## 回溯引用条件 -条件判断为某个子表达式是否匹配,如果匹配则需要继续匹配条件表达式后面的内容。 +条件为某个子表达式是否匹配,如果匹配则需要继续匹配条件表达式后面的内容。 **正则表达式** diff --git a/docs/pics/437cb54c-5970-4ba9-b2ef-2541f7d6c81e.gif b/docs/pics/437cb54c-5970-4ba9-b2ef-2541f7d6c81e.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a188a573c91623d1c8b0986cdb1d94cf7202555 GIT binary patch literal 11284 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 literal 0 HcmV?d00001 diff --git a/notes/Leetcode 题解 - 双指针.md b/notes/Leetcode 题解 - 双指针.md index 4eb7213f..c189d37c 100644 --- a/notes/Leetcode 题解 - 双指针.md +++ b/notes/Leetcode 题解 - 双指针.md @@ -30,8 +30,14 @@ Output: index1=1, index2=2 - 如果 sum > target,移动较大的元素,使 sum 变小一些; - 如果 sum < target,移动较小的元素,使 sum 变大一些。 +数组中的元素最多遍历一次,时间复杂度为 O(N)。额外只使用了两个变量,空间复杂度为 +O(1)。 + +

+ ```java public int[] twoSum(int[] numbers, int target) { + if (numbers == null) return null; int i = 0, j = numbers.length - 1; while (i < j) { int sum = numbers[i] + numbers[j]; @@ -49,7 +55,7 @@ public int[] twoSum(int[] numbers, int target) { # 2. 两数平方和 -633. Sum of Square Numbers (Easy) +633\. Sum of Square Numbers (Easy) [Leetcode](https://leetcode.com/problems/sum-of-square-numbers/description/) / [力扣](https://leetcode-cn.com/problems/sum-of-square-numbers/description/) @@ -80,7 +86,7 @@ public boolean judgeSquareSum(int c) { # 3. 反转字符串中的元音字符 -345. Reverse Vowels of a String (Easy) +345\. Reverse Vowels of a String (Easy) [Leetcode](https://leetcode.com/problems/reverse-vowels-of-a-string/description/) / [力扣](https://leetcode-cn.com/problems/reverse-vowels-of-a-string/description/) @@ -115,7 +121,7 @@ public String reverseVowels(String s) { # 4. 回文字符串 -680. Valid Palindrome II (Easy) +680\. Valid Palindrome II (Easy) [Leetcode](https://leetcode.com/problems/valid-palindrome-ii/description/) / [力扣](https://leetcode-cn.com/problems/valid-palindrome-ii/description/) @@ -149,7 +155,7 @@ private boolean isPalindrome(String s, int i, int j) { # 5. 归并两个有序数组 -88. Merge Sorted Array (Easy) +88\. Merge Sorted Array (Easy) [Leetcode](https://leetcode.com/problems/merge-sorted-array/description/) / [力扣](https://leetcode-cn.com/problems/merge-sorted-array/description/) @@ -185,7 +191,7 @@ public void merge(int[] nums1, int m, int[] nums2, int n) { # 6. 判断链表是否存在环 -141. Linked List Cycle (Easy) +141\. Linked List Cycle (Easy) [Leetcode](https://leetcode.com/problems/linked-list-cycle/description/) / [力扣](https://leetcode-cn.com/problems/linked-list-cycle/description/) @@ -210,7 +216,7 @@ public boolean hasCycle(ListNode head) { # 7. 最长子序列 -524. Longest Word in Dictionary through Deleting (Medium) +524\. Longest Word in Dictionary through Deleting (Medium) [Leetcode](https://leetcode.com/problems/longest-word-in-dictionary-through-deleting/description/) / [力扣](https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting/description/) diff --git a/notes/pics/437cb54c-5970-4ba9-b2ef-2541f7d6c81e.gif b/notes/pics/437cb54c-5970-4ba9-b2ef-2541f7d6c81e.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a188a573c91623d1c8b0986cdb1d94cf7202555 GIT binary patch literal 11284 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 literal 0 HcmV?d00001 diff --git a/notes/正则表达式.md b/notes/正则表达式.md index 1cfdcbf8..0067b94c 100644 --- a/notes/正则表达式.md +++ b/notes/正则表达式.md @@ -27,17 +27,17 @@ **.** 是元字符,表示它有特殊的含义,而不是字符本身的含义。如果需要匹配 . ,那么要用 \ 进行转义,即在 . 前面加上 \ 。 -正则表达式一般是区分大小写的,但是也有些实现是不区分。 +正则表达式一般是区分大小写的,但也有些实现不区分。 **正则表达式** ``` -nam. +C.C2018 ``` **匹配结果** -My **name** is Zheng. +My name is **CyC2018** . # 三、匹配一组字符 @@ -82,7 +82,7 @@ abc[^0-9] \r\n\r\n 可以匹配 Windows 下的空白行,因为它匹配两个连续的行尾标签,而这正是两条记录之间的空白行; -## 匹配特定的字符类别 +## 匹配特定的字符 ### 1. 数字元字符 @@ -105,13 +105,13 @@ abc[^0-9] | \s | 任何一个空白字符,等价于 [\f\n\r\t\v] | | \S | 对 \s 取非 | -\x 匹配十六进制字符,\0 匹配八进制,例如 \x0A 对应 ASCII 字符 10,等价于 \n。 +\x 匹配十六进制字符,\0 匹配八进制,例如 \xA 对应值为 10 的 ASCII 字符 ,即 \n。 # 五、重复匹配 - **\+** 匹配 1 个或者多个字符 -- **\** * 匹配 0 个或者多个 -- **?** 匹配 0 个或者 1 个 +- **\** * 匹配 0 个或者多个字符 +- **?** 匹配 0 个或者 1 个字符 **应用** @@ -141,12 +141,12 @@ abc[^0-9] a.+c ``` -由于 + 是贪婪型的,因此 .+ 会匹配更可能多的内容,所以会把整个 abcabcabc 文本都匹配,而不是只匹配前面的 abc 文本。用懒惰型可以实现匹配前面的。 - **匹配结果** **abcabcabc** +由于 + 是贪婪型的,因此 .+ 会匹配更可能多的内容,所以会把整个 abcabcabc 文本都匹配,而不是只匹配前面的 abc 文本。用懒惰型可以实现匹配前面的。 + # 六、位置匹配 ## 单词边界 @@ -327,7 +327,9 @@ aBCd # 九、前后查找 -前后查找规定了匹配的内容首尾应该匹配的内容,但是又不包含首尾匹配的内容。向前查找用 **?=** 来定义,它规定了尾部匹配的内容,这个匹配的内容在 ?= 之后定义。所谓向前查找,就是规定了一个匹配的内容,然后以这个内容为尾部向前面查找需要匹配的内容。向后匹配用 ?<= 定义(注: javaScript 不支持向后匹配, java 对其支持也不完善)。 +前后查找规定了匹配的内容首尾应该匹配的内容,但是又不包含首尾匹配的内容。 + +向前查找使用 **?=** 定义,它规定了尾部匹配的内容,这个匹配的内容在 ?= 之后定义。所谓向前查找,就是规定了一个匹配的内容,然后以这个内容为尾部向前面查找需要匹配的内容。向后匹配用 ?<= 定义(注: JavaScript 不支持向后匹配,Java 对其支持也不完善)。 **应用** @@ -349,7 +351,7 @@ aBCd ## 回溯引用条件 -条件判断为某个子表达式是否匹配,如果匹配则需要继续匹配条件表达式后面的内容。 +条件为某个子表达式是否匹配,如果匹配则需要继续匹配条件表达式后面的内容。 **正则表达式**