From 762309f24cbf26d8fb71cb24e5a0a0dd101b6df6 Mon Sep 17 00:00:00 2001 From: SunnyQJm Date: Thu, 26 Mar 2020 21:14:21 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9Ahomework4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AlgorithmHomework1.md | 11 +- AlgorithmHomework2.md | 22 ++-- AlgorithmHomework3.md | 22 ++-- .../image-20200326200557425.png | Bin 0 -> 19539 bytes .../image-20200326210047592.png | Bin 0 -> 20053 bytes .../image-20200326211143566.png | Bin 0 -> 19724 bytes AlgorithmHomework4.md | 124 ++++++++++++++++++ README.md | 3 +- 8 files changed, 161 insertions(+), 21 deletions(-) create mode 100644 AlgorithmHomework4.assets/image-20200326200557425.png create mode 100644 AlgorithmHomework4.assets/image-20200326210047592.png create mode 100644 AlgorithmHomework4.assets/image-20200326211143566.png create mode 100644 AlgorithmHomework4.md diff --git a/AlgorithmHomework1.md b/AlgorithmHomework1.md index 6f7048d..627bf24 100644 --- a/AlgorithmHomework1.md +++ b/AlgorithmHomework1.md @@ -7,11 +7,14 @@ 3道上课讲的LeetCode题目1,69,70 - ## Leetcode problem 1 (两数之和) - - 算法思路:
- 用字典记录数字,以便在找到成对的另一个数的时候,可以快速的检索到前一个数的索引 + - 算法思路: + + 用字典记录数字,以便在找到成对的另一个数的时候,可以快速的检索到前一个数的索引 + - Leetcode提交结果 ![result](AlgorithmHomework1.assets/7222676-c485f42b177afce2.png) + - 代码: ```python def twoSum(self, nums: List[int], target: int) -> List[int]: @@ -19,10 +22,10 @@ for index, num in enumerate(nums): if num in myDict: return [myDict[num], index] - else: + else: myDict[target - num] = index ``` - + - ## Leetcode problem 69 (x 的平方根) - 算法思路:二分法 diff --git a/AlgorithmHomework2.md b/AlgorithmHomework2.md index 10f9e52..f74c6d9 100644 --- a/AlgorithmHomework2.md +++ b/AlgorithmHomework2.md @@ -10,7 +10,9 @@ ## 题解 -- ### Leetcode problem 7([整数反转](https://leetcode-cn.com/problems/reverse-integer/)) +- ### Leetcode problem 7 + + > [整数反转](https://leetcode-cn.com/problems/reverse-integer/) - **算法思路:** @@ -37,7 +39,9 @@ return 0 if result > INT_MAX_VAL or result < INT_MIN_VAL else isNegitive * result ``` -- ### Leetcode problem 13([罗马数字转整数](https://leetcode-cn.com/problems/roman-to-integer/)) +- ### Leetcode problem 13 + + > [罗马数字转整数](https://leetcode-cn.com/problems/roman-to-integer/) - **算法思路:** @@ -81,11 +85,13 @@ return result ``` -- ### Leetcode problem 3([加一](https://leetcode-cn.com/problems/plus-one/)) +- ### Leetcode problem 3 + + > [加一](https://leetcode-cn.com/problems/plus-one/) - **算法思路:** - - - 从后往前遍历,每次 + 1,如果和等于10,则发生进位,否则算法返回 + + - 从后往前遍历,每次 + 1,如果和等于10,则发生进位,否则算法返回 - 遍历结束发现 *tmp* 仍然不为0,则表示数组的值为全9,需要在数组前添加一个元素 - **Leetcode提交结果:** @@ -93,7 +99,7 @@ ![image-20200320134010709](AlgorithmHomework2.assets/image-20200320134010709.png) - **代码:** - + ```python class Solution: def plusOne(self, digits: List[int]) -> List[int]: @@ -105,7 +111,7 @@ index -= 1 if tmp != 0: digits.insert(0, 1) - return digits + return digits ``` - + \ No newline at end of file diff --git a/AlgorithmHomework3.md b/AlgorithmHomework3.md index e74a9d2..968fcf1 100644 --- a/AlgorithmHomework3.md +++ b/AlgorithmHomework3.md @@ -10,7 +10,9 @@ Leetcode: 35,58,83 ## 题解: -- ### Leetcode problem 35([搜索插入位置](https://leetcode-cn.com/problems/search-insert-position/)) +- ### Leetcode problem 35 + + > [搜索插入位置](https://leetcode-cn.com/problems/search-insert-position/) - **算法思路:** @@ -43,7 +45,9 @@ Leetcode: 35,58,83 return right + 1 ``` -- ### Leetcode problem 58([最后一个单词的长度](https://leetcode-cn.com/problems/length-of-last-word/)) +- ### Leetcode problem 58 + + > [最后一个单词的长度](https://leetcode-cn.com/problems/length-of-last-word/) - **算法思路:** @@ -78,11 +82,13 @@ Leetcode: 35,58,83 return count ``` -- ### Leetcode problem 83([删除排序链表中的重复元素](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/)) +- ### Leetcode problem 83 + + > [删除排序链表中的重复元素](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/) - **算法思路:** - - - 用一个set记录当前遍历过的值 + + - 用一个set记录当前遍历过的值 - 遍历到每一个节点,用set检查当前值是否存在于set,如果存在则删除该节点 - **Leetcode提交结果:** @@ -90,7 +96,7 @@ Leetcode: 35,58,83 ![image-20200313213736914](https://raw.githubusercontent.com/SunnyQjm/picgo_0/master/img/image-20200313211905775.png) - **代码:** - + ```python class Solution: def deleteDuplicates(self, head: ListNode) -> ListNode: @@ -105,7 +111,7 @@ Leetcode: 35,58,83 else: s.add(cur.val) pre, cur = cur, cur.next - return head + return head ``` - + \ No newline at end of file diff --git a/AlgorithmHomework4.assets/image-20200326200557425.png b/AlgorithmHomework4.assets/image-20200326200557425.png new file mode 100644 index 0000000000000000000000000000000000000000..d92794ca3d4bcc998722799b00b71f950d152076 GIT binary patch literal 19539 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 AE&u=k literal 0 HcmV?d00001 diff --git a/AlgorithmHomework4.assets/image-20200326210047592.png b/AlgorithmHomework4.assets/image-20200326210047592.png new file mode 100644 index 0000000000000000000000000000000000000000..8b052f47c3dbc8d980e1b90ac632ec420a9c611c GIT binary patch literal 20053 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

v!X88TyOOjUuQXW3s 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 XG-{;_b7T0rIO6gpMd`PaM)&?VEcK7M literal 0 HcmV?d00001 diff --git a/AlgorithmHomework4.assets/image-20200326211143566.png b/AlgorithmHomework4.assets/image-20200326211143566.png new file mode 100644 index 0000000000000000000000000000000000000000..699ded5961dad6fab0a426820fb70918e080972b GIT binary patch literal 19724 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 literal 0 HcmV?d00001 diff --git a/AlgorithmHomework4.md b/AlgorithmHomework4.md new file mode 100644 index 0000000..ea23d7c --- /dev/null +++ b/AlgorithmHomework4.md @@ -0,0 +1,124 @@ +# Algorithm Homework 4 + +> 姓名:阙建明 +> +> 学号:1901213139 + +## 作业要求: + +Leetcode: 16,17,19 + +## 题解: + +- ### Leetcode problem 16 + + > [最接近的三数之和](https://leetcode-cn.com/problems/3sum-closest/) + + - **算法思路:** + + - 首先对nums进行从小到达排序; + - 然后依次遍历0 ~ size - 2,固定第一个数i,对i + 1 ~ size - 1的数用双指针法处理; + - 通过忽略已处理过的数来实现第一个数选取时的剪枝操作 + + - **Leetcode提交结果:** + + ![image-20200326200557425](AlgorithmHomework4.assets/image-20200326200557425.png) + + - **代码:** + + ```python + class Solution: + def threeSumClosest(self, nums: List[int], target: int) -> int: + if len(nums) < 3: + return 0 + elif len(nums) == 3: + return nums[0] + nums[1] + nums[2] + nums = sorted(nums) # 先排序 + result, lastFirst = nums[0] + nums[1] + nums[2], nums[0] - 1 + for i in range(0, len(nums) - 2): + if nums[i] == lastFirst: + continue + left, right, lastFirst = i + 1, len(nums) - 1, nums[i] + while left < right: + tmp = nums[i] + nums[left] + nums[right] + if abs(target - tmp) < abs(target - result): + result = tmp + if tmp < target: + left += 1 + elif tmp > target: + right -= 1 + else: + return result + return result + ``` + +- ### Leetcode problem 17 + + > [电话号码的字母组合](https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/) + + - **算法思路:** + + - 采用回溯法递归遍历 + + - **Leetcode提交结果:** + + ![image-20200326210047592](AlgorithmHomework4.assets/image-20200326210047592.png) + + - **代码:** + + ```python + class Solution: + numMap = {'2': "abc", '3': "def", '4': "ghi", '5': "jkl", '6': "mno", '7': "pqrs", '8': "tuv", '9': "wxyz"} + result = [] + def _letterCombinations(self, path, digits: str, index): + if index == len(digits) - 1: + for ch in self.numMap[digits[index]]: + self.result.append(path + ch) + return + for ch in self.numMap[digits[index]]: + path = path + ch + self._letterCombinations(path, digits, index + 1) + path = path[:len(path) - 1] + + def letterCombinations(self, digits: str) -> List[str]: + if digits == "": + return [] + self.result = [] + self._letterCombinations("", digits, 0) + return self.result + ``` + +- ### Leetcode problem 19 + + > [删除链表的倒数第N个节点](https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/) + + - **算法思路:** + + - 用快慢指针法 + - 先让快指针走n步,然后让快慢指针同时右移,快指针为None时,慢指针指向的节点即为要删除的节点; + - 对要删除的节点是头结点的情况进行特判。 + +- **Leetcode提交结果:** + + ![image-20200326211143566](AlgorithmHomework4.assets/image-20200326211143566.png) + + - **代码:** + + ```python + class Solution: + def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: + fast, slow, pre = head, head, self + try: + for i in range(n): + fast = fast.next + except BaseException: + return head + if fast is None: + return head.next + while fast is not None: + fast, slow, pre = fast.next, slow.next, slow + pre.next = slow.next + return head + ``` + + \ No newline at end of file diff --git a/README.md b/README.md index 74914b1..6628308 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,5 @@ - [第一次作业](AlgorithmHomework1.md) - [第二次作业](AlgorithmHomework2.md) -- [第三次作业](AlgorithmHomework3.md) \ No newline at end of file +- [第三次作业](AlgorithmHomework3.md) +- [第四次作业](AlgorithmHomework4.md) \ No newline at end of file