From ac938612093cda0dccd10b3ad8c09ced1a63328c Mon Sep 17 00:00:00 2001 From: Rosy Huang <1042915541@qq.com> Date: Sun, 13 Oct 2019 10:41:53 +0800 Subject: [PATCH 001/740] Add files via upload --- ...60\346\215\256\347\273\223\346\236\204.png" | Bin 0 -> 61066 bytes .../\347\256\227\346\263\225.png" | Bin 0 -> 123376 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 "691_Week \351\242\204\344\271\240\345\221\250/\346\225\260\346\215\256\347\273\223\346\236\204.png" create mode 100644 "691_Week \351\242\204\344\271\240\345\221\250/\347\256\227\346\263\225.png" diff --git "a/691_Week \351\242\204\344\271\240\345\221\250/\346\225\260\346\215\256\347\273\223\346\236\204.png" "b/691_Week \351\242\204\344\271\240\345\221\250/\346\225\260\346\215\256\347\273\223\346\236\204.png" new file mode 100644 index 0000000000000000000000000000000000000000..1f4df4a9d7b6867d8324620cb756e08ae1a2463e GIT binary patch literal 61066 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

8Qd@$xH{T91eK7KntWLA=_(L?c2 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 literal 0 HcmV?d00001 diff --git "a/691_Week \351\242\204\344\271\240\345\221\250/\347\256\227\346\263\225.png" "b/691_Week \351\242\204\344\271\240\345\221\250/\347\256\227\346\263\225.png" new file mode 100644 index 0000000000000000000000000000000000000000..5aa0d310556f5328f9f7dea3d4d67ebbe7c0dd54 GIT binary patch literal 123376 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�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

6-l$s?yS5kBeJ$Hm(jJz=}1`^KyGpi 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

XK3zPeE`?@Cgsp8eC614)7e90%Cw42o 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 Date: Thu, 24 Oct 2019 05:16:50 +0800 Subject: [PATCH 002/740] Add files via upload --- LeetCode_66_766.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 LeetCode_66_766.java diff --git a/LeetCode_66_766.java b/LeetCode_66_766.java new file mode 100644 index 000000000..a58670244 --- /dev/null +++ b/LeetCode_66_766.java @@ -0,0 +1,22 @@ +/* + * @lc app=leetcode.cn id=66 lang=java + * + * [66] 加一 + */ + +// @lc code=start +class Solution { + public int[] plusOne(int[] digits) { + for (int i = digits.length - 1; i >=0; i--) { + digits[i]++; + digits[i] = digits[i] % 10; + if (digits[i] != 0) return digits; + } + digits = new int[digits.length + 1]; + digits[0] = 1; + return digits; + + } +} +// @lc code=end + From a036f39c89033abdbfbc705ec865ed0f7821c34b Mon Sep 17 00:00:00 2001 From: yongli <51604539+yongliRUC@users.noreply.github.com> Date: Thu, 24 Oct 2019 05:21:12 +0800 Subject: [PATCH 003/740] Add files via upload --- LeetCode_88_766.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 LeetCode_88_766.java diff --git a/LeetCode_88_766.java b/LeetCode_88_766.java new file mode 100644 index 000000000..58b67de2c --- /dev/null +++ b/LeetCode_88_766.java @@ -0,0 +1,16 @@ +/* + * @lc app=leetcode.cn id=88 lang=java + * + * [88] 合并两个有序数组 + */ + +// @lc code=start +class Solution { + public void merge(int[] nums1, int m, int[] nums2, int n) { + System.arraycopy(nums2, 0, nums1, m, n); + Arrays.sort(nums1); + + } +} +// @lc code=end + From aefbe406aa5654f0403b1568d3cc5f60ef90b39d Mon Sep 17 00:00:00 2001 From: Fangbaso4 <44719631+Fangbaso4@users.noreply.github.com> Date: Sat, 26 Oct 2019 23:40:34 +0800 Subject: [PATCH 004/740] Update NOTE.md --- Week 02/id_111/NOTE.md | 63 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/Week 02/id_111/NOTE.md b/Week 02/id_111/NOTE.md index bc95be083..310abba51 100644 --- a/Week 02/id_111/NOTE.md +++ b/Week 02/id_111/NOTE.md @@ -89,3 +89,66 @@ HashMap 小总结 ## 前中后序遍历 ## leetcode 题目 +# 递归的实现、特性、 +## 理论部分 + 树的面试题解法一般是递归 +### 递归的本质是循环 +- 循环体调用自身 +- 类比《盗梦空间》 + - 向下进入不同梦境,向上回到上一层 + - 每层之间相互独立 + - 可以穿越梦境的主角类似于参数 + - 简单递归形式 + - 求阶乘 n! + - n! = 1*2*3*4*5...*n + - 代码实现 + def Factorial(n): if n <= 1: return 1 return 1​ n* Factorial(n -1 )​​​ + - 递归栈 +- 递归注意点 + 1. 不要人肉递归(画递归图辅助理解,入门可使用,进阶需抛弃,直接看函数) + 2. 找最近重复子问题 + 3. 数学归纳法 + 1 成立、2 成立 ,同时可证明n成立 n+成立 + 4. 机械化记忆递归代码模板 +## 算法题 +- 爬楼梯 +- 找最近重复性 +- 思考到三级台阶时,考虑重复性问题,否则陷入人肉递归 + f(3)=f(1)+f(2) + f(n)=f(n-1)+f(n-2) + mutual exclusive | complete exhaustive + 括号生成 + https://leetcode-cn.com/problems/generate-parentheses/ + +# 分治 Divide & Conque + 本质就是递归,找重复性,递归为多个子问题 +- 分治代码模板 + 泛型递归模板(类似) + 回溯 Backtracking + +- leecode 22 生成括号 + - 暴力回溯 +建立完六层,最后发现不可行,去掉,再回到前一层 +分治、回溯习题 +leecode 50 Pow(x,n) **高频** + - 暴力法: +for 循环n 次,得到x的n次方 +时间复杂度为O(n) + - 分治 +- 递归模板: + 1. terminator 终结条件 + 2. process(split your big problem) + 3. drill down (subproblems),merge (subresult) + 4. reserve states +- pow(x,n) + - subproblem : subresult = pow(x,n/2) + - merge: +判断奇偶,进行处理(考虑负数问题,若负数,取其绝对值进行判断 +if n % 2 ==1: result = subresult * subresult *xelse result = ​​​ subresult * subresult +时间复杂度 O(logn) + - 快速幂法 + - 牛顿迭代 +- leetcode 78.子集 +写过排列组合再看此题 + + From 06f6074b648a7cd6f84751f23b2957374b6e1962 Mon Sep 17 00:00:00 2001 From: Fangbaso4 <44719631+Fangbaso4@users.noreply.github.com> Date: Sun, 27 Oct 2019 00:11:44 +0800 Subject: [PATCH 005/740] Update leetcode_1_111.py --- Week 02/id_111/leetcode_1_111.py | 42 +++++++++----------------------- 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/Week 02/id_111/leetcode_1_111.py b/Week 02/id_111/leetcode_1_111.py index b840366d6..14fb8b1b4 100644 --- a/Week 02/id_111/leetcode_1_111.py +++ b/Week 02/id_111/leetcode_1_111.py @@ -16,38 +16,20 @@ def twoSum(self, nums: List[int], target: int) -> List[int]: if nums[i] == target - nums[j]: return i,j #哈希表法: -方法二:两遍哈希表 -为了对运行时间复杂度进行优化,我们需要一种更有效的方法来检查数组中是否存在目标元素。 -如果存在,我们需要找出它的索引。保持数组中的每个元素与其索引相互对应的最好方法是什么?哈希表。 +#字典模拟哈希 -通过以空间换取速度的方式,我们可以将查找时间从 O(n)O(n) 降低到 O(1)O(1)。 -哈希表正是为此目的而构建的,它支持以 近似 恒定的时间进行快速查找。 -我用“近似”来描述,是因为一旦出现冲突,查找用时可能会退化到 O(n)O(n)。 -但只要你仔细地挑选哈希函数,在哈希表中进行查找的用时应当被摊销为 O(1)O(1)。 - -一个简单的实现使用了两次迭代。在第一次迭代中,我们将每个元素的值和它的索引添加到表中。 -然后,在第二次迭代中,我们将检查每个元素所对应的目标元素(target - nums[i]target−nums[i])是否存在于表中。 -注意,该目标元素不能是 nums[i]nums[i] 本身! - -Java -class Solution { - public int[] twoSum(int[] nums, int target) { - Map map = new HashMap<>(); - for (int i = 0; i < nums.length; i++) { - map.put(nums[i], i); - } - for (int i = 0; i < nums.length; i++) { - int complement = target - nums[i]; - if (map.containsKey(complement) && map.get(complement) != i) { - return new int[] { i, map.get(complement) }; - } - } - throw new IllegalArgumentException("No two sum solution"); - } -} - -复杂度分析: +class Solution: + def twoSum(self, nums: List[int], target: int) -> List[int]: + _dict = {}#定义空字典 + for i, m in enumerate(nums): + _dict[m] = i#i值赋给下标 + for i, m in enumerate(nums): + j = _dict.get(target - m) #在哈希表中匹配出目标值 + if j is not None and i != j: + return [i, j]#如果目标值不等于初始值自身 则返回 + #return [_dict.get(target - m), i] + 时间复杂度:O(n)O(n), 我们把包含有 nn 个元素的列表遍历两次。由于哈希表将查找时间缩短到 O(1)O(1) ,所以时间复杂度为 O(n)O(n)。 From e83aa56ea5c916f33ca7d20e2abeede8276d6503 Mon Sep 17 00:00:00 2001 From: cool Date: Sun, 27 Oct 2019 17:07:39 +0800 Subject: [PATCH 006/740] =?UTF-8?q?20.=20=E6=9C=89=E6=95=88=E7=9A=84?= =?UTF-8?q?=E6=8B=AC=E5=8F=B7=20=E5=9B=9E=E9=A1=BE4=20=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 01/id_251/LeetCode_20_251.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Week 01/id_251/LeetCode_20_251.py b/Week 01/id_251/LeetCode_20_251.py index abacbb0fb..872713f6d 100644 --- a/Week 01/id_251/LeetCode_20_251.py +++ b/Week 01/id_251/LeetCode_20_251.py @@ -71,13 +71,13 @@ def isValid2(self, s): stack = [] hash_map = {')': '(', ']': '[', '}': '{'} - for char in s: - if char in hash_map: + for c in s: + if c in hash_map: top_element = stack.pop() if stack else '#' - if hash_map[char] != top_element: + if hash_map[c] != top_element: return False else: - stack.append(char) + stack.append(c) return not stack # 栈方法 正向思维 推荐 @@ -90,14 +90,13 @@ def isValid3(self, s): for c in s: if c in hash_map: stack.append(c) - continue elif stack and hash_map[stack[-1]] == c: - del stack[-1] + stack.pop() else: return False return not stack - # 栈方法 + # 栈方法 增加一个特殊字符 def isValid3_1(self, s): if len(s) & 1 == 1: # 位运算判断奇偶 return False From 6e016dd2edc8896e35d23755187661fee75178f5 Mon Sep 17 00:00:00 2001 From: cool Date: Sun, 27 Oct 2019 17:31:19 +0800 Subject: [PATCH 007/740] =?UTF-8?q?155.=20=E6=9C=80=E5=B0=8F=E6=A0=88=20?= =?UTF-8?q?=E5=9B=9E=E9=A1=BE4=20=E5=AE=8C=E5=96=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 01/id_251/LeetCode_155_251.py | 49 +++++++++++++----------------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/Week 01/id_251/LeetCode_155_251.py b/Week 01/id_251/LeetCode_155_251.py index c6195c4b3..873f04ded 100644 --- a/Week 01/id_251/LeetCode_155_251.py +++ b/Week 01/id_251/LeetCode_155_251.py @@ -39,7 +39,7 @@ def __init__(self): initialize your data structure here. """ # 数据栈 - self.data = [] + self.stack = [] # 辅助栈 self.helper = [] @@ -48,9 +48,9 @@ def push(self, x): :type x: int :rtype: None """ - self.data.append(x) + self.stack.append(x) # 这里 x < self.helper[-1] 或者 x <= self.helper[-1] 都可以 - if len(self.helper) == 0 or x <= self.helper[-1]: + if len(self.helper) == 0 or x < self.helper[-1]: self.helper.append(x) else: self.helper.append(self.helper[-1]) @@ -59,19 +59,16 @@ def pop(self): """ :rtype: None """ - if self.data: - # del 时间复杂度比pop高 - # del self.helper[-1] - # del self.data[-1] + if self.stack: self.helper.pop() - self.data.pop() + self.stack.pop() def top(self): """ :rtype: int """ - if self.data: - return self.data[-1] + if self.stack: + return self.stack[-1] def getMin(self): """ @@ -94,7 +91,7 @@ def __init__(self): initialize your data structure here. """ # 数据栈 - self.data = [] + self.stack = [] # 辅助栈 self.helper = [] @@ -103,7 +100,7 @@ def push(self, x): :type x: int :rtype: None """ - self.data.append(x) + self.stack.append(x) # 关键1 和 关键2 if len(self.helper) == 0 or x <= self.helper[-1]: self.helper.append(x) @@ -112,20 +109,17 @@ def pop(self): """ :rtype: None """ - if self.data: - if self.data[-1] == self.helper[-1]: - # del 时间复杂度比pop高 - # del self.helper[-1] - # del self.data[-1] + if self.stack: + if self.stack[-1] == self.helper[-1]: self.helper.pop() - self.data.pop() + self.stack.pop() def top(self): """ :rtype: int """ - if self.data: - return self.data[-1] + if self.stack: + return self.stack[-1] def getMin(self): """ @@ -147,7 +141,6 @@ def push(self, x): def pop(self): if self.stack: - # del self.stack[-1] self.stack.pop() def top(self): @@ -162,21 +155,21 @@ def getMin(self): # 方法3 升级 class MinStack4(object): def __init__(self): - self.data = [(None, float('inf'))] + self.stack = [(None, float('inf'))] def push(self, x): - self.data.append((x, min(x, self.data[-1][1]))) + self.stack.append((x, min(x, self.stack[-1][1]))) def pop(self): - if len(self.data) > 1: - self.data.pop() - # del self.data[-1] + if len(self.stack) > 1: + self.stack.pop() def top(self): - return self.data[-1][0] + return self.stack[-1][0] def getMin(self): - return self.data[-1][1] + if len(self.stack) > 1: + return self.stack[-1][1] # Your MinStack object will be instantiated and called as such: # obj = MinStack() From 1471527fc000083066a5814ebca70b0136c9a5f8 Mon Sep 17 00:00:00 2001 From: jiangnaizheng <15972179243@163.com> Date: Sun, 27 Oct 2019 22:31:53 +0800 Subject: [PATCH 008/740] 676-Week 02 676-Week 02 --- ...\345\272\217\351\201\215\345\216\206.java" | 111 ++++++++++ ...\345\272\217\351\201\215\345\216\206.java" | 190 ++++++++++++++++++ ...\350\257\215\345\210\206\347\273\204.java" | 82 ++++++++ 3 files changed, 383 insertions(+) create mode 100644 "Week 02/id_676/144.\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.java" create mode 100644 "Week 02/id_676/145.\344\272\214\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.java" create mode 100644 "Week 02/id_676/49.\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204.java" diff --git "a/Week 02/id_676/144.\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.java" "b/Week 02/id_676/144.\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.java" new file mode 100644 index 000000000..539509595 --- /dev/null +++ "b/Week 02/id_676/144.\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.java" @@ -0,0 +1,111 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +import javax.swing.tree.TreeNode; + +/* + * @lc app=leetcode.cn id=144 lang=java + * + * [144] 二叉树的前序遍历 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ + + /* + *思路:1.使用递归的方法实现,时间复杂度为O(n) + * 2.使用栈的方法实现,时间复杂度为O(n) + */ + + //使用递归来实现 +class Solution { + public List preorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + helper(root, res); + return res; + } + + public void helper(TreeNode root,List res) { + if (root != null) { + res.add(root.val); + if (root.left != null ) { + helper(root.left, res); + } + if (root.right != null) { + helper(root.right, res); + } + } + } +} +// @lc code=end + +//使用栈来实现 +class SolutionOne { + public List preorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + Stack stack = new Stack<>(); + TreeNode cur = root; + while (!stack.isEmpty() || cur != null) { + while (cur != null) { + res.add(cur.val); + stack.push(cur); + cur = cur.left; + } + cur = stack.pop(); + cur = cur.right; + } + return res; + } +} + +//递归实现中序遍历 +class SolutionTwo { + public List inorderTraversal(TreeNode root) { + List res = new ArrayList<>() ; + helper(root, res); + return res; + } + + public void helper(TreeNode root,List res) { + if (root != null) { + if (root.left != null) { + helper(root.left, res); + } + res.add(root.val); + if (root.right != null) { + helper(root.right, res); + } + } + } +} + +//递归实现后序遍历 +class SolutionThree{ + public List postorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + helper(root, res); + return res; + } + + public void helper(TreeNode root, List res) { + if (root != null) { + if (root.left != null) { + helper(root.left, res); + } + + if (root.right != null) { + helper(root.right, res); + } + res.add(root.val); + } + } +} diff --git "a/Week 02/id_676/145.\344\272\214\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.java" "b/Week 02/id_676/145.\344\272\214\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.java" new file mode 100644 index 000000000..f5ec41de1 --- /dev/null +++ "b/Week 02/id_676/145.\344\272\214\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.java" @@ -0,0 +1,190 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +import javax.swing.tree.TreeNode; + +/* + * @lc app=leetcode.cn id=145 lang=java + * + * [145] 二叉树的后序遍历 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ + + /* + *思路:1.使用递归的方法实现,时间复杂度为O(n) + * 2.使用栈的方法实现,时间复杂度为O(n) + */ + + //使用递归来实现 +class Solution { + public List postorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + helper(root, res); + return res; + } + + public void helper(TreeNode root, List res) { + if (root != null) { + if (root.left != null) { + helper(root.left, res); + } + + if (root.right != null) { + helper(root.right, res); + } + res.add(root.val); + } + } +} +// @lc code=end + +//使用栈: +class SolutionTwo { + public List postorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + if (root == null) return res; + Stack stack = new Stack<>(); + stack.push(root); + while(!stack.isEmpty()) { + TreeNode cur = stack.pop(); + res.add(0,cur.val); + if (cur.left != null) { + stack.push(cur.left); + } + if (cur.right != null) { + stack.push(cur.right); + } + } + return res; + } +} + +/* +*使用栈来实现前序,中序和后序遍历 +*/ +//inorder +public List inorderTraversal(TreeNode root) { + List res=new ArrayList<>(); + if (root==null) return res; + + Stack stack=new Stack<>(); + TreeNode curr=root; + + while(curr!=null || !stack.isEmpty()){ + while (curr!=null){ + stack.push(curr); + curr=curr.left; + } + curr=stack.pop(); + res.add(curr.val); + curr=curr.right; + } + return res; +} + +//preorder +public List preorderTraversal(TreeNode root) { + List list = new ArrayList<>(); + if(root == null) return list; + Stack stack = new Stack<>(); + stack.push(root); + while(!stack.isEmpty()) { + TreeNode current = stack.pop(); + list.add(current.val); + if(current.right!=null) { + stack.push(current.right); + } + if(current.left!=null) { + stack.push(current.left); + } + } + return list; +} + +//postorder + public List postorderTraversal(TreeNode root) { + List list = new ArrayList<>(); + if(root == null) return list; + Stack stack = new Stack<>(); + stack.push(root); + while(!stack.isEmpty()) { + TreeNode curr = stack.pop(); + list.add(0,curr.val); + if(curr.left!=null) { + stack.push(curr.left); + } + if(curr.right!=null) { + stack.push(curr.right); + } + } + return list; +} + +/* +*使用队列来实现前序、中序和后序遍历 +*/ + +//proorder +public List preorderTraversal(TreeNode root) { + List result = new ArrayList<>(); + Deque stack = new ArrayDeque<>(); + TreeNode p = root; + while(!stack.isEmpty() || p != null) { + if(p != null) { + stack.push(p); + result.add(p.val); // Add before going to children + p = p.left; + } else { + TreeNode node = stack.pop(); + p = node.right; + } + } + return result; +} + +//inorder +public List inorderTraversal(TreeNode root) { + List result = new ArrayList<>(); + Deque stack = new ArrayDeque<>(); + TreeNode p = root; + while(!stack.isEmpty() || p != null) { + if(p != null) { + stack.push(p); + p = p.left; + } else { + TreeNode node = stack.pop(); + result.add(node.val); // Add after all left children + p = node.right; + } + } + return result; +} + +//postorder +public List postorderTraversal(TreeNode root) { + LinkedList result = new LinkedList<>(); + Deque stack = new ArrayDeque<>(); + TreeNode p = root; + while(!stack.isEmpty() || p != null) { + if(p != null) { + stack.push(p); + result.addFirst(p.val); // Reverse the process of preorder + p = p.right; // Reverse the process of preorder + } else { + TreeNode node = stack.pop(); + p = node.left; // Reverse the process of preorder + } + } + return result; +} \ No newline at end of file diff --git "a/Week 02/id_676/49.\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204.java" "b/Week 02/id_676/49.\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204.java" new file mode 100644 index 000000000..3bb18ce0f --- /dev/null +++ "b/Week 02/id_676/49.\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204.java" @@ -0,0 +1,82 @@ +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/* + * @lc app=leetcode.cn id=49 lang=java + * + * [49] 字母异位词分组 + */ + + /* + *思路:1.先将字符串进行排序,排序后的字符串相等为字母异位词 + * 2.使用计数法来统计每个字符串字符出现的次数,如果相等那么就是字母异位词 + */ + +// @lc code=start +class Solution { + public List> groupAnagrams(String[] strs) { + if (strs.length == 0) return new ArrayList>(); + Map> map = new HashMap>(); + for (String s : strs) { + char[] a = s.toCharArray(); + Arrays.sort(a); //排序 + String key = String.valueOf(a); //排序后的字母异位词作为key + if (! map.containsKey(key)) { //向hashmap中添加key + map.put(key, new ArrayList()); + } + map.get(key).add(s); //向hashmap中相应的key添加对应的元素 + } + return new ArrayList>(map.values()); + } +} +// @lc code=end +class SolutionOne { + public List> groupAnagrams(String[] strs) { + if (strs.length == 0) return new ArrayList>(); + Map > map = new HashMap>(); + int[] count = new int[26]; + for (String s : strs) { //遍历传进来的字符数组中的字符串 + Arrays.fill(count, 0); //每次循环开始清0计数数组 + for (int i = 0 ; i < s.length() ; i++) { + count[s.charAt(i) - 'a'] ++; + } + StringBuilder stringbuilder = new StringBuilder(); + + for (int j = 0; j < 26;j++) { + stringbuilder.append('#'); //用#1#2.....的方式组成key值 + stringbuilder.append(count[j]); + } + String key = stringbuilder.toString(); + if (! map.containsKey(key)) { + map.put(key, new ArrayList()); + } + map.get(key).add(s); + } + return new ArrayList>(map.values()); + } +} + +class SolutionTwo { + public List> groupAnagrams(String[] strs) { + if (strs.length == 0) return new ArrayList(); + Map ans = new HashMap(); + int[] count = new int[26]; + for (String s : strs) { + Arrays.fill(count, 0); + for (char c : s.toCharArray()) count[c - 'a']++; + + StringBuilder sb = new StringBuilder(""); + for (int i = 0; i < 26; i++) { + sb.append('#'); + sb.append(count[i]); + } + String key = sb.toString(); + if (!ans.containsKey(key)) ans.put(key, new ArrayList()); + ans.get(key).add(s); + } + return new ArrayList(ans.values()); + } +} From c9558754f8d2583f3cf1c3e2f3d34ac170d12733 Mon Sep 17 00:00:00 2001 From: cool Date: Sun, 27 Oct 2019 22:32:02 +0800 Subject: [PATCH 009/740] =?UTF-8?q?84.=20=E6=9F=B1=E7=8A=B6=E5=9B=BE?= =?UTF-8?q?=E4=B8=AD=E6=9C=80=E5=A4=A7=E7=9A=84=E7=9F=A9=E5=BD=A2=20?= =?UTF-8?q?=E5=9B=9E=E9=A1=BE4=20=E4=BF=AE=E6=94=B9=E8=A7=A3=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 01/id_251/LeetCode_84_251.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Week 01/id_251/LeetCode_84_251.py b/Week 01/id_251/LeetCode_84_251.py index ca4f0e35a..017f15660 100644 --- a/Week 01/id_251/LeetCode_84_251.py +++ b/Week 01/id_251/LeetCode_84_251.py @@ -84,8 +84,8 @@ def largestRectangleArea3_1(self, heights): """ heights.append(0) 这里很巧妙有2点 1:将第一个while的stack[-1] != -1判断省掉 - 因为当stack[-1] == -1时,height[i] > 0, heights[stack[-1]] = heights[-1] = 0 - 从而 heights[i] < heights[stack[-1]] 包含 stack[-1= != -1 的判断 + 因为当stack[-1] == -1时,height[i] >= 0, heights[stack[-1]] = heights[-1] = 0 + 从而 stack[-1]= != -1 的判断可以省略 2:讲上一方法的最后for循环提升到前面来实现 while stack[-1] != -1: max_area = max(max_area, heights[stack.pop()] * (len(heights) - stack[-1] - 1)) @@ -100,5 +100,3 @@ def largestRectangleArea3_1(self, heights): max_area = max(max_area, heights[stack.pop()] * (i - stack[-1] - 1)) stack.append(i) return max_area - -# leetcode submit region end(Prohibit modification and deletion) From b45675e2b5c701e68f5ee31dc94d837ed4ea294a Mon Sep 17 00:00:00 2001 From: "18616009800@163.com" Date: Sun, 27 Oct 2019 22:49:50 +0800 Subject: [PATCH 010/740] 541-Week 02 --- ...P236LowestCommonAncestorOfABinaryTree.java | 96 +++++++++++++ .../P590NAryTreePostorderTraversal.java | 129 ++++++++++++++++++ 2 files changed, 225 insertions(+) create mode 100644 Week 01/id_541/P236LowestCommonAncestorOfABinaryTree.java create mode 100644 Week 01/id_541/P590NAryTreePostorderTraversal.java diff --git a/Week 01/id_541/P236LowestCommonAncestorOfABinaryTree.java b/Week 01/id_541/P236LowestCommonAncestorOfABinaryTree.java new file mode 100644 index 000000000..ebc971f97 --- /dev/null +++ b/Week 01/id_541/P236LowestCommonAncestorOfABinaryTree.java @@ -0,0 +1,96 @@ +//给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 +// +// 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” +// +// 例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] +// +// +// +// +// +// 示例 1: +// +// 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 +//输出: 3 +//解释: 节点 5 和节点 1 的最近公共祖先是节点 3。 +// +// +// 示例 2: +// +// 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4 +//输出: 5 +//解释: 节点 5 和节点 4 的最近公共祖先是节点 5。因为根据定义最近公共祖先节点可以为节点本身。 +// +// +// +// +// 说明: +// +// +// 所有节点的值都是唯一的。 +// p、q 为不同节点且均存在于给定的二叉树中。 +// +// Related Topics 树 + +package leetcode.editor.cn; + +import java.lang.reflect.Array; + +//Java:二叉树的最近公共祖先 +public class P236LowestCommonAncestorOfABinaryTree{ + public static void main(String[] args) { + Solution solution = new P236LowestCommonAncestorOfABinaryTree().new Solution(); + // TO TEST + } + + +//leetcode submit region begin(Prohibit modification and deletion) +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ + // root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4 +class Solution { + + public class TreeNode { + int val; + TreeNode left; + TreeNode right; + TreeNode(int x) { val = x; } + + } + + public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { + // TreeNode + // n = 1 ,3 , left = n+1 = 5,right = n+2 = 1 . + // n = 2, 5 , left = n+2 = 6 ,right = n+3 = 2 . + // n = 3, 1 , left = n+3 = 0 ,right = n+4 = 8 . + // + // n = n ,2n,2n+1 + + //解法1:1.root 先序遍历->数组,2.在数组里面找最近p,q,然后逆向求解出其根节点,将根节点存放在list里面,找最近公共节点 + //优化:可以用栈来替代1步骤。 + + //解法2:递归+回溯 + + if (root == null || root == p || root == q) return root; + + TreeNode left = lowestCommonAncestor(root.left,p,q); + TreeNode right = lowestCommonAncestor(root.right,p,q); + + if (left == null) return right; + if (right == null) return left; + return root; + + } + + +} +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/Week 01/id_541/P590NAryTreePostorderTraversal.java b/Week 01/id_541/P590NAryTreePostorderTraversal.java new file mode 100644 index 000000000..256e2ca69 --- /dev/null +++ b/Week 01/id_541/P590NAryTreePostorderTraversal.java @@ -0,0 +1,129 @@ +//给定一个 N 叉树,返回其节点值的后序遍历。 +// +// 例如,给定一个 3叉树 : +// +// +// +// +// +// +// +// 返回其后序遍历: [5,6,3,2,4,1]. +// +// +// +// 说明: 递归法很简单,你可以使用迭代法完成此题吗? Related Topics 树 + +package leetcode.editor.cn; + +import java.util.*; + +//Java:N叉树的后序遍历 +public class P590NAryTreePostorderTraversal{ + public static void main(String[] args) { + Solution solution = new P590NAryTreePostorderTraversal().new Solution(); + // TO TEST + + } + + +//leetcode submit region begin(Prohibit modification and deletion) + +// Definition for a Node. +class Node { + public int val; + public List children; + + public Node() {} + + public Node(int _val,List _children) { + val = _val; + children = _children; + } +}; + + //{"$id":"1", + // "children":[{"$id":"2","children":[{"$id":"5","children":[],"val":5},{"$id":"6","children":[],"val":6}],"val":3}, + // {"$id":"3","children":[],"val":2},{"$id":"4","children":[],"val":4}],"val":1} +//后序遍历 +class Solution { + //递归 +// public List postorder(Node root) { +// +// List result = new ArrayList(); +// if (root == null) return result; +// List childrenList = root.children; +// if (childrenList != null){ +// searchAndPut(root,result); +// } +// return result; +// } +// +// +// private void searchAndPut(Node root, List result ){ +// if (root == null) return ; +// if (root.children == null) return; +// for (Node node : root.children) { //栈的深入 +// searchAndPut(node,result); +// } +// result.add(root.val); //出栈 +// } + + //迭代 +//public List postorder(Node root) { +// +// List ans = new LinkedList<>(); +// Stack s1 = new Stack<>(); +// Stack s2 = new Stack<>(); //用一个辅助栈记录当前节点已经访问到其第几个孩子了 +// Node node = root; +// while (node != null || !s1.isEmpty()) { +// while (node != null) { +// s1.push(node); //s1放了整棵树 +// s2.push(1); //s2存放访问记录。当前节点第一个孩子(内层循环遍历完成,s2存放所有左子树) +// if (node.children != null && node.children.size() > 0) { //判断当前节点存在孩子节点 +// node = node.children.get(0); //将左子树赋给当前节点。 +// } else { //否则,跳出内层循环。(左子树到底) +// node = null; +// } +// } +// node = s1.peek(); //取出第栈顶第一个节点。 s2.peek() 该节点在其树中的位置 +// //如果已经访问到最后一个孩子了,那么就该访问当前节点了。 +// if (node.children == null || s2.peek() >= node.children.size()) { //当前节点(左子树节点)无叶子节点,或者 s2.peek() >= node.children.size() 判断是否存在右子节点。 +// ans.add(node.val); //当前node满足条件,加到结果。 满足条件--左右中, +// s1.pop(); +// s2.pop(); +// node = null; +// } else { //否则继续遍历 +// node = node.children.get(s2.peek()); // +// s2.push(s2.pop() + 1); +// } +// } +// +// //难点: 怎么判断是右子树 +// return ans; +//} +// https://leetcode-cn.com/problems/n-ary-tree-postorder-traversal/submissions/ + //更为简洁的写法。这种解法的思想是先序遍历的变形,先序遍历是“根->左->右”,后序遍历是“左->右->根”,那么把先序遍历改成“根->右->左”,再逆序一下就是后序遍历。 + //逆序一下,改造后的先序遍历 + public List postorder(Node root) { + List ans = new LinkedList<>(); // + if (root == null) return ans; + Stack stack = new Stack(); //stack:右比左先出 ans:右比左先插(头插法)-> 左在右前门 + stack.push(root); + while (!stack.empty()){ + root = stack.pop(); + ans.add(0,root.val); //头插 + if (root.children !=null){ + for (Node child : root.children) { + stack.push(child); //左右进,左右出 + } + } + } + return ans; + } + + + +} + +} \ No newline at end of file From f7478ee0c0f9ebb061170d6c0f202150195c2f66 Mon Sep 17 00:00:00 2001 From: chengpy <1209492554@qq.com> Date: Sun, 27 Oct 2019 22:52:00 +0800 Subject: [PATCH 011/740] week02 --- Week 02/id_026/InorderTraversal.java | 16 +++++++++++++++ Week 02/id_026/IsAnagram.java | 28 ++++++++++++++++++++++++++ Week 02/id_026/TwoSum.java | 30 ++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 Week 02/id_026/InorderTraversal.java create mode 100644 Week 02/id_026/IsAnagram.java create mode 100644 Week 02/id_026/TwoSum.java diff --git a/Week 02/id_026/InorderTraversal.java b/Week 02/id_026/InorderTraversal.java new file mode 100644 index 000000000..3ae7831bb --- /dev/null +++ b/Week 02/id_026/InorderTraversal.java @@ -0,0 +1,16 @@ +// 中序遍历 +public class InorderTraversal { + public List inorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + helper(root, res); + return res; + } + + private void helper(TreeNode root, List res) { + if (root == null) return; + helper(root.left, res); + res.add(root.val); + helper(root.right, res); + } + +} diff --git a/Week 02/id_026/IsAnagram.java b/Week 02/id_026/IsAnagram.java new file mode 100644 index 000000000..40c0ba3bf --- /dev/null +++ b/Week 02/id_026/IsAnagram.java @@ -0,0 +1,28 @@ +package com.abc.week02; + +// 字母异位词 +public class IsAnagram { + public boolean isAnagram(String s, String t) { + if (s.length() != t.length()) { + return false; + } + int[] counter = new int[26]; + for (int i = 0; i < s.length(); i++) { + counter[s.charAt(i) - 'a']++; + counter[t.charAt(i) - 'a']--; + } + for (int i = 0; i < counter.length; i++) { + if (counter[i] != 0) { + return false; + } + } + return true; + } + + public static void main(String[] args) { + String a = "anagram"; + String b = "nagaram"; + IsAnagram anagram = new IsAnagram(); + System.out.println(anagram.isAnagram(a, b)); + } +} diff --git a/Week 02/id_026/TwoSum.java b/Week 02/id_026/TwoSum.java new file mode 100644 index 000000000..0fb56abb9 --- /dev/null +++ b/Week 02/id_026/TwoSum.java @@ -0,0 +1,30 @@ +package com.abc.week02; + +import java.util.HashMap; +import java.util.Map; + +//两数之和 +public class TwoSum { + public int[] twoSum(int[] nums, int target) { + Map map = new HashMap<>(); + for (int i = 0; i < nums.length; i++) { + map.put(nums[i], i); + } + + for (int i = 0; i < nums.length; i++) { + int temp = target - nums[i]; + if (map.containsKey(temp) && map.get(temp) != i) { + return new int[]{i,map.get(temp)}; + } + } + throw new IllegalArgumentException("No two sum solution"); + } + + public static void main(String[] args) { + TwoSum twoSum = new TwoSum(); + int[] nums = new int[]{2, 7, 11, 15}; + int target = 9; + twoSum.twoSum(nums, target); + + } +} From 40dc24b64c99f885f078ed7eedf141d069bbf6fa Mon Sep 17 00:00:00 2001 From: "18616009800@163.com" Date: Sun, 27 Oct 2019 23:05:46 +0800 Subject: [PATCH 012/740] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...CommonAncestorOfABinaryTree.java => LeetCode_236_541.java} | 4 ++-- ...0NAryTreePostorderTraversal.java => LeetCode_590_541.java} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename Week 01/id_541/{P236LowestCommonAncestorOfABinaryTree.java => LeetCode_236_541.java} (94%) rename Week 01/id_541/{P590NAryTreePostorderTraversal.java => LeetCode_590_541.java} (100%) diff --git a/Week 01/id_541/P236LowestCommonAncestorOfABinaryTree.java b/Week 01/id_541/LeetCode_236_541.java similarity index 94% rename from Week 01/id_541/P236LowestCommonAncestorOfABinaryTree.java rename to Week 01/id_541/LeetCode_236_541.java index ebc971f97..4ebda2cb5 100644 --- a/Week 01/id_541/P236LowestCommonAncestorOfABinaryTree.java +++ b/Week 01/id_541/LeetCode_236_541.java @@ -37,9 +37,9 @@ import java.lang.reflect.Array; //Java:二叉树的最近公共祖先 -public class P236LowestCommonAncestorOfABinaryTree{ +public class LeetCode_236_541{ public static void main(String[] args) { - Solution solution = new P236LowestCommonAncestorOfABinaryTree().new Solution(); + Solution solution = new LeetCode_236_541().new Solution(); // TO TEST } diff --git a/Week 01/id_541/P590NAryTreePostorderTraversal.java b/Week 01/id_541/LeetCode_590_541.java similarity index 100% rename from Week 01/id_541/P590NAryTreePostorderTraversal.java rename to Week 01/id_541/LeetCode_590_541.java From 70d4c5beb67da228a5d4d660b6a667c6f3be2492 Mon Sep 17 00:00:00 2001 From: cool Date: Sun, 27 Oct 2019 23:48:21 +0800 Subject: [PATCH 013/740] =?UTF-8?q?51.=20N=E7=9A=87=E5=90=8E=20=E5=9B=9E?= =?UTF-8?q?=E6=BA=AF=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 02/id_251/LeetCode_51_251.py | 98 +++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 Week 02/id_251/LeetCode_51_251.py diff --git a/Week 02/id_251/LeetCode_51_251.py b/Week 02/id_251/LeetCode_51_251.py new file mode 100644 index 000000000..1febe91b5 --- /dev/null +++ b/Week 02/id_251/LeetCode_51_251.py @@ -0,0 +1,98 @@ +# n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 +# +# +# +# 上图为 8 皇后问题的一种解法。 +# +# 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 +# +# 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。 +# +# 示例: +# +# 输入: 4 +# 输出: [ +# [".Q..", // 解法 1 +# "...Q", +# "Q...", +# "..Q."], +# +# ["..Q.", // 解法 2 +# "Q...", +# "...Q", +# ".Q.."] +# ] +# 解释: 4 皇后问题存在两个不同的解法。 +# +# Related Topics 回溯算法 +""" +1 回溯法 +""" + + +# leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def solveNQueens(self, n): + """ + :type n: int + :rtype: List[List[str]] + """ + if n < 1: return [] + + self.result = [] + self.cols, self.pie, self.na = set(), set(), set() + self.DFS(n, 0, []) + return self._generate_result(n) + + def DFS(self, n, row, cur_state): + # recursion terminator + if row >= n: + self.result.append(cur_state) + return + + # current level! Do it ! + for col in range(n): + if col in self.cols or row + col in self.pie or row - col in self.na: + # go die! + continue + + # update the flags + self.cols.add(col) + self.pie.add(row + col) + self.na.add(row - col) + + self.DFS(n, row + 1, cur_state + [col]) + + # reverse states + self.cols.remove(col) + self.pie.remove(row + col) + self.na.remove(row - col) + + def _generate_result(self, n): + board = [] + for res in self.result: + for i in res: + board.append('.' * i + 'Q' + '.' * (n - i - 1)) + return [board[i: i + n] for i in range(0, len(board), n)] + + +# 回溯法优化写法 +class Solution1(object): + def solveNQueens(self, n): + """ + :type n: int + :rtype: List[List[str]] + """ + + def DFS(queens, xy_dif, xy_sum): + p = len(queens) + if p == n: + result.append(queens) + return + for q in range(n): + if q not in queens and p - q not in xy_dif and p + q not in xy_sum: + DFS(queens + [q], xy_dif + [p - q], xy_sum + [p + q]) + + result = [] + DFS([], [], []) + return [['.' * i + 'Q' + '.' * (n - i - 1) for i in sol] for sol in result] From ce80c8ae28777ccafc64e3dab391d7c7cb5a30e0 Mon Sep 17 00:00:00 2001 From: Fangbaso4 <44719631+Fangbaso4@users.noreply.github.com> Date: Sun, 27 Oct 2019 23:53:10 +0800 Subject: [PATCH 014/740] Create leetcode_242_1111.py --- Week 02/id_111/leetcode_242_1111.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Week 02/id_111/leetcode_242_1111.py diff --git a/Week 02/id_111/leetcode_242_1111.py b/Week 02/id_111/leetcode_242_1111.py new file mode 100644 index 000000000..d076f6959 --- /dev/null +++ b/Week 02/id_111/leetcode_242_1111.py @@ -0,0 +1,17 @@ +#给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 + +#解法 1 +class Solution: + def isAnagram(self, s: str, t: str) -> bool: + # 定义默认布尔值参与后续运算 + result = True + # 利用 Python 数据结构 set 去重去序 + set_tmp = set(s) + # 先判断组成字符串的各个字符元素是否一致 + if set_tmp == set(t): + for i in set_tmp: + # 利用逻辑运算符判断各个字符元素的数量一致,均为 True 才输出 True + result = result and (s.count(i) == t.count(i)) + else: + result = False + return (result) \ No newline at end of file From 2f9bfaf7399608376b774c1f6543e00188923a33 Mon Sep 17 00:00:00 2001 From: gh Date: Mon, 28 Oct 2019 14:25:33 +0800 Subject: [PATCH 015/740] =?UTF-8?q?=E7=AE=97=E6=B3=95=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 02/id_406/LeetCode_1213_406.py | 3 +++ Week 02/id_406/LeetCode_46_406.py | 3 +++ Week 02/id_406/LeetCode_49_406.py | 6 ++++++ Week 02/id_406/LeetCode_51_406.py | 27 +++++++++++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 Week 02/id_406/LeetCode_1213_406.py create mode 100644 Week 02/id_406/LeetCode_46_406.py create mode 100644 Week 02/id_406/LeetCode_49_406.py create mode 100644 Week 02/id_406/LeetCode_51_406.py diff --git a/Week 02/id_406/LeetCode_1213_406.py b/Week 02/id_406/LeetCode_1213_406.py new file mode 100644 index 000000000..265f8bfdf --- /dev/null +++ b/Week 02/id_406/LeetCode_1213_406.py @@ -0,0 +1,3 @@ +class Solution: + def game(self, guess: List[int], answer: List[int]) -> int: + return sum(guess[i]==answer[i] for i in range(len(guess))) \ No newline at end of file diff --git a/Week 02/id_406/LeetCode_46_406.py b/Week 02/id_406/LeetCode_46_406.py new file mode 100644 index 000000000..a987b7da9 --- /dev/null +++ b/Week 02/id_406/LeetCode_46_406.py @@ -0,0 +1,3 @@ +class Solution: + def permute(self, nums: List[int]) -> List[List[int]]: + return list(itertools.permutations(nums)) \ No newline at end of file diff --git a/Week 02/id_406/LeetCode_49_406.py b/Week 02/id_406/LeetCode_49_406.py new file mode 100644 index 000000000..519081fb6 --- /dev/null +++ b/Week 02/id_406/LeetCode_49_406.py @@ -0,0 +1,6 @@ +class Solution: + def groupAnagrams(self, strs: List[str]) -> List[List[str]]: + ans = collections.defaultdict(list) + for s in strs: + ans[tuple(sorted(s))].append(s) + return ans.values() \ No newline at end of file diff --git a/Week 02/id_406/LeetCode_51_406.py b/Week 02/id_406/LeetCode_51_406.py new file mode 100644 index 000000000..442b2f957 --- /dev/null +++ b/Week 02/id_406/LeetCode_51_406.py @@ -0,0 +1,27 @@ +class Solution: + def solveNQueens(self, n: int) -> List[List[str]]: + res = [] + if n == 0: + return res + + nums = [i for i in range(n)] + col = set() + master = set() + slave = set() + stack = [] + + self.__backtracking(nums, 0, n, col, master, slave, stack, res) + return res + + def __backtracking(self, nums, row, n, col, master, slave, stack, res): + if row == n: + board = self.__convert2board(stack, n) + res.append(board) + return + + for i in range(n): + if i not in col and row + i not in master and row - i not in slave: + stack.append(nums[i]) + col.add(i) + master.add(row + i) + slave.add(row - i) \ No newline at end of file From 293e652d9debef0154877f95fa96cb022f7f8752 Mon Sep 17 00:00:00 2001 From: karringqing <823307513@qq.com> Date: Tue, 29 Oct 2019 07:57:59 +0800 Subject: [PATCH 016/740] LeetCode_102_416 And LeetCode_515_416 --- Week 03/id_416/LeetCode_102_416.java | 2 +- Week 03/id_416/LeetCode_515_416.java | 40 ++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_416/LeetCode_515_416.java diff --git a/Week 03/id_416/LeetCode_102_416.java b/Week 03/id_416/LeetCode_102_416.java index 09576593a..a94f58ee2 100644 --- a/Week 03/id_416/LeetCode_102_416.java +++ b/Week 03/id_416/LeetCode_102_416.java @@ -57,7 +57,7 @@ public List> levelOrder(TreeNode root) { while(!queue.isEmpty()) { List lis = new ArrayList(); int size = queue.size(); - for(int i =0;i 0) { TreeNode currNode = queue.pop(); lis.add(currNode.val); if(null != currNode.left) queue.offer(currNode.left); diff --git a/Week 03/id_416/LeetCode_515_416.java b/Week 03/id_416/LeetCode_515_416.java new file mode 100644 index 000000000..ca0be96aa --- /dev/null +++ b/Week 03/id_416/LeetCode_515_416.java @@ -0,0 +1,40 @@ +/** + * 您需要在二叉树的每一行中找到最大的值。 + * + * 示例: + * + * 输入: + * + * 1 + * / \ + * 3 2 + * / \ \ + * 5 3 9 + * + * 输出: [1, 3, 9] + * + * 来源:力扣(LeetCode) + * 链接:https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row + * 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 + */ +public class LeetCode_22_416{ + public List largestValues(TreeNode root) { + Deque deque = new LinkedList(); + List list = new ArrayList(); + if(null == root) return list; + deque.offer(root); + while(!deque.isEmpty()) { + int len = deque.size(); + int max = Integer.MIN_VALUE; + while(len-- > 0){ + TreeNode treeNode = deque.pop(); + int cur = treeNode.val; + if(cur > max) max = cur; + if(null != treeNode.left) deque.offer(treeNode.left); + if(null != treeNode.right) deque.offer(treeNode.right); + } + list.add(max); + } + return list; + } +} \ No newline at end of file From 9816e7ed67f5c7179fa3655a835cf7c4cc83f47f Mon Sep 17 00:00:00 2001 From: shniu Date: Tue, 29 Oct 2019 09:41:14 +0800 Subject: [PATCH 017/740] =?UTF-8?q?=E9=A2=98=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 02/id_716/LeetCode_22_716.java | 40 +++++++++ Week 02/id_716/LeetCode_98_716.java | 123 ++++++++++++++++++++++++++++ Week 02/id_716/NOTE.md | 2 +- 3 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 Week 02/id_716/LeetCode_22_716.java create mode 100644 Week 02/id_716/LeetCode_98_716.java diff --git a/Week 02/id_716/LeetCode_22_716.java b/Week 02/id_716/LeetCode_22_716.java new file mode 100644 index 000000000..519c60100 --- /dev/null +++ b/Week 02/id_716/LeetCode_22_716.java @@ -0,0 +1,40 @@ +import java.util.ArrayList; +import java.util.List; + +// https://leetcode-cn.com/problems/generate-parentheses +// 括号生成 + +public class LeetCode_22_716 { + // 1. 递归解法 + public List generateParenthesis(int n) { + List res = new ArrayList<>(); + _generate(0, 0, n, "", res); + return res; + } + + // 一定是先放左括号,再放右括号,不然不合法 + // 左括号的个数 == 右括号的个数 == n + // 在添加括号的过程中:左括号个数 >= 右括号个数,只有当左括号个数大于右括号个数时才可以添加右括号 + // 只有当左括号个数小于n时才可以添加左括号 + // left: 表示添加的左括号个数;right: 表示添加的右括号个数 + // s: 表示已经生成的字符串 + private void _generate(int left, int right, int n, String s, List res) { + // terminator:左右括号个数都等于n时,生成完毕 + if (left == n && right == n) { + res.add(s); + return; + } + // process current logic: add left or add right + + // drill down + if (left < n) { + _generate(left + 1, right, n, s + "(", res); + } + + if (left > right) { + _generate(left, right + 1, n, s + ")", res); + } + + // revert status + } +} \ No newline at end of file diff --git a/Week 02/id_716/LeetCode_98_716.java b/Week 02/id_716/LeetCode_98_716.java new file mode 100644 index 000000000..010515591 --- /dev/null +++ b/Week 02/id_716/LeetCode_98_716.java @@ -0,0 +1,123 @@ + +// https://leetcode-cn.com/problems/validate-binary-search-tree +// 验证二叉搜索树 + +public class LeetCode_98_716 { + + // 1. 递归实现 + // 重复子问题:当前节点的值是其左子树的上限,是其右子树的下限 + public boolean isValidBST11(TreeNode root) { + return isValid(root, null, null); + } + + // low 表示右子树的下限,不能比他小 + // high 表示左子树的上限,不能比他大 + private boolean isValid(TreeNode node, Integer low, Integer high) { + // terminator + if (node == null) return true; + + // process current logic + int val = node.val; + // 在右子树中每个节点都要大于low,出现小于low的就返回false + if (low != null && val <= low) return false; + // 在左子树中每个节点都要小于high,出现大于high的就返回false + if (high != null && val >= high) return false; + + // drill down + // 陷入下一层,进入的是左子树,如果下一层直接返回了不合法,就提前终止递归,返回不合法 + if (!isValid(node.left, low, val)) return false; + // 陷入下一层,进入的是右子树,如果下一层直接返回了不合法,就提前终止递归,返回不合法 + if (!isValid(node.right, val, high)) return false; + + // default terminator,正常返回合法 + return true; + } + + // 1.2 更加优雅的写法, 简洁一些 + public boolean isValidBST12(TreeNode root) { + return validBSTHelper(root, null, null); + } + + private boolean validBSTHelper(TreeNode node, TreeNode low, TreeNode high) { + // terminator + if (node == null) return true; + // process current logic + if ((low != null && node.val <= low.val) || (high != null && node.val >= high.val)) return false; + // drill down + return validBSTHelper(node.left, low, node) && validBSTHelper(node.right, node, high); + } + + // 2. 利用中序遍历二叉树输出有序序列的特性 + // 这种方式肯定不如直接递归法 + public boolean isValidBST21(TreeNode root) { + List res = new ArrayList<>(); + inorder(root, res); + + // 要保证顺序性 + for (int i = 0; i < res.size() - 1; i++) { + if (res.get(i) >= res.get(i + 1)) { + return false; + } + } + return true; + } + + private void inorder(TreeNode node, List res) { + if (node != null) { + // 加上 if (node.left != null) 的判断,少一层递归 + inorder(node.left, res); + res.add(node.val); + inorder(node.right, res); + } + } + + // 2.2 使用另外一种优化的做法 + // 用 BST 的中序遍历保证前一个节点都小于当前节点 + public boolean isValidBST22(TreeNode root) { + LinkedList stack = new LinkedList<>(); + TreeNode prev = null; + TreeNode curr = root; + while (curr != null || !stack.isEmpty()) { + // 左子树 + while (curr != null) { + stack.push(curr); + curr = curr.left; + } + // 当前节点 + curr = stack.pop(); + if (prev != null && curr.val <= prev.val) + return false; + prev = curr; + // 右节点 + curr = curr.right; + } + + return true; + } + + // 2.3 中序递归的写法 + private TreeNode prev; + public boolean isValidBST23(TreeNode root) { + // terminator + if (root == null) return true; + + // drill down, to left + if (!isValidBST23(root.left)) return false; + + // process current logic + if (prev != null && root.val <= prev.val) return false; + prev = root; + + // drill down, to right + if (!isValidBST23(root.right)) return false; + + // terminator + return true; + } + + // 3. 迭代法, 将递归的实现使用loop的方式进行实现 + public boolean isValidBST3(TreeNode root) { + // todo + return false; + } +} \ No newline at end of file diff --git a/Week 02/id_716/NOTE.md b/Week 02/id_716/NOTE.md index 7049939a3..d4d42ca68 100644 --- a/Week 02/id_716/NOTE.md +++ b/Week 02/id_716/NOTE.md @@ -48,7 +48,7 @@ 1. https://leetcode-cn.com/problems/climbing-stairs/ (done) 2. https://leetcode-cn.com/problems/generate-parentheses/ 3. https://leetcode-cn.com/problems/invert-binary-tree/description/ (done) -4. https://leetcode-cn.com/problems/validate-binary-search-tree +4. https://leetcode-cn.com/problems/validate-binary-search-tree (done) 5. https://leetcode-cn.com/problems/maximum-depth-of-binary-tree 6. https://leetcode-cn.com/problems/minimum-depth-of-binary-tree 7. https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/ From f8d8cd17079abc9ae22e50a316850fb8e6256cd6 Mon Sep 17 00:00:00 2001 From: tigerzhang Date: Tue, 29 Oct 2019 19:44:35 +0800 Subject: [PATCH 018/740] week 02 homework --- Week 02/id_281/LeetCode_105_281.java | 59 +++++++++++++++++++++++ Week 02/id_281/LeetCode_236_281.java | 57 ++++++++++++++++++++++ Week 02/id_281/NOTE.md | 70 +++++++++++++++++++++++++++- 3 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 Week 02/id_281/LeetCode_105_281.java create mode 100644 Week 02/id_281/LeetCode_236_281.java diff --git a/Week 02/id_281/LeetCode_105_281.java b/Week 02/id_281/LeetCode_105_281.java new file mode 100644 index 000000000..b790e4160 --- /dev/null +++ b/Week 02/id_281/LeetCode_105_281.java @@ -0,0 +1,59 @@ +import java.util.HashMap; +import java.util.Map; + +import javax.management.RuntimeErrorException; +import javax.swing.tree.TreeNode; + +/* + * @lc app=leetcode.cn id=105 lang=java + * + * [105] 从前序与中序遍历序列构造二叉树 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ +class Solution { + + // 内层O(n)的查找,可以通过hash表降为O(1) + private int[] preorder; + private Map hash; + + public TreeNode buildTree(int[] preorder, int[] inorder) { + if (preorder.length != inorder.length) { + throw new RuntimeException("Incorrect input data."); + } + + this.preorder = preorder; + this.hash = new HashMap<>(); + for (int i = 0; i < inorder.length; i++) { + this.hash.put(inorder[i], i); + } + + return buildTree(preorder, 0, preorder.length - 1, inorder, 0, inorder.length - 1); + } + + private TreeNode buildTree(int[] preodrder, int preLeft, int preRight, int[] inorder, int inLeft, int inRight) { + if (preLeft > preRight || inLeft > inRight) { + return null; + } + + int pivot = preodrder[preLeft]; + TreeNode root = new TreeNode(pivot); + int pivotIndex = hash.get(pivot); + + // while (inorder[pivotIndex] != pivot) { + // pivotIndex++; + // } + root.left = buildTree(preodrder, preLeft + 1, preLeft + pivotIndex - inLeft, inorder, inLeft, pivotIndex-1); + root.right = buildTree(preodrder, preLeft + pivotIndex - inLeft + 1, preRight, inorder, pivotIndex + 1, inRight); + return root; + } +} \ No newline at end of file diff --git a/Week 02/id_281/LeetCode_236_281.java b/Week 02/id_281/LeetCode_236_281.java new file mode 100644 index 000000000..19776f596 --- /dev/null +++ b/Week 02/id_281/LeetCode_236_281.java @@ -0,0 +1,57 @@ +/* + * @lc app=leetcode.cn id=236 lang=java + * + * [236] 二叉树的最近公共祖先 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ +class Solution { + + private TreeNode ans; + + public Solution() { + this.ans = null; + } + + private boolean recurseTree (TreeNode currentNode, TreeNode p, TreeNode q) { + if (currentNode == null) { + return false; + } + + int left = this.recurseTree(currentNode.left, p, q) ? 1 : 0; + int right = this.recurseTree(currentNode.right, p, q) ? 1 : 0; + + int mid = (currentNode == p || currentNode == q) ? 1 : 0; + + if (mid + left + right >= 2) { + this.ans = currentNode; + } + + return (mid + left + right > 0); + } + + // 回溯 + public TreeNode lowestCommonAncestor1(TreeNode root, TreeNode p, TreeNode q) { + this.recurseTree(root, p, q); + return this.ans; + } + + + public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { + if (root == null || root == p || root == q) return root; + + TreeNode left = lowestCommonAncestor(root.left, p, q); + TreeNode right = lowestCommonAncestor(root.right, p, q); + + return left == null ? right : right == null ? left : root; + } +} \ No newline at end of file diff --git a/Week 02/id_281/NOTE.md b/Week 02/id_281/NOTE.md index a6321d6e2..41957567c 100644 --- a/Week 02/id_281/NOTE.md +++ b/Week 02/id_281/NOTE.md @@ -1,4 +1,72 @@ -# NOTE +### 第二周学习总结 +* hash表具有O(1)的查找时间复杂度,在遍历时间复杂度为O(n)时,可以考虑用hash表来代替遍历查找。 +* hash表存在hash碰撞的情况,采用链表来处理,根据性能可改为红黑树实现。 +#### 切题四件套回顾 +* clarification +* possible solutions --> optimal(time&space) +* code +* test case + +#### 遍历树 +* 前序遍历 +* 中序遍历 +* 后序遍历 + +### 递归模板 +```python +def recursion(level, param1, param2,...): + # recursion terminator + if level > MAX_LEVEL: + process_result + return + + # process logic in current level + process(level, data, ...) + + #dirll down + self.recursion(level + 1, p1, ...) + + # reverse the current level status if needed +``` + +#### 思维要点 +* 不要进行人肉递归 (最大误区) +* 找到最近最简方法,将其拆解成可重复解决的子问题 +* 数学归纳法思维 + + +### 分治模板 +```python +def divide_conquer(problem, parma1, param2, ...): + # recursion terminator + if problem is None: + print_result + return + + # prepare data + data = prepare_data(problem) + subproblems = split_problem(problem, data) + + # conquer subproblems + subresult1 = self.divide_conquer(subproblems[0], p1, ...) + subresult2 = self.divide_conquer(subproblems[1], p1, ...) + subresult3 = self.divide_conquer(subproblems[0], p1, ...) + ... + + result = process_result(subresult1, subresult2, subresult2, ...) + + # revert the current level status + +``` + +### 回溯 + +* 回溯法采用的是错思想,尝试分步去解决一个问题。在分步解决问题的过程中,当通过尝试发现现有分步的答案不能得到有效的正确的解答时,它将取消上一步或者上几步的计算,在通过其他的可能的分步解答再次尝试寻找问题的答案。 + +* 回溯法通常采用递归的方法来实现。 + + + From 59a47ea7ea6b600e65425b78b24bfe51c2adf763 Mon Sep 17 00:00:00 2001 From: annchd Date: Wed, 30 Oct 2019 00:56:59 +0800 Subject: [PATCH 019/740] leetcode 102 and 433 --- Week 03/id_201/LeetCode_102_LevelOrder | 94 +++++++++++++++++++++++++ Week 03/id_201/LeetCode_433_MinMutation | 78 ++++++++++++++++++++ 2 files changed, 172 insertions(+) create mode 100644 Week 03/id_201/LeetCode_102_LevelOrder create mode 100644 Week 03/id_201/LeetCode_433_MinMutation diff --git a/Week 03/id_201/LeetCode_102_LevelOrder b/Week 03/id_201/LeetCode_102_LevelOrder new file mode 100644 index 000000000..7cf6431b8 --- /dev/null +++ b/Week 03/id_201/LeetCode_102_LevelOrder @@ -0,0 +1,94 @@ +//给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 +// +// 例如: +//给定二叉树: [3,9,20,null,null,15,7], +// +// 3 +// / \ +// 9 20 +// / \ +// 15 7 +// +// +// 返回其层次遍历结果: +// +// [ +// [3], +// [9,20], +// [15,7] +//] +// +// Related Topics 树 广度优先搜索 + + + +//leetcode submit region begin(Prohibit modification and deletion) + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.Stack; + +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ +class Solution { + /** + * #1 BFS + * 时间复杂度为O(N) + * @param root + * @return + */ + public List> levelOrder(TreeNode root) { + ArrayList levelNodeValList = new ArrayList(); + LinkedList nodes = new LinkedList<>(); + nodes.add(root); + int size = 0, level = 0; + ArrayList subList; + TreeNode current; + while (!nodes.isEmpty()) { + subList = new ArrayList(); + size = nodes.size(); + while (size-- > 0) { + current = nodes.poll(); + subList.add(current.val); + if (current.left != null) + nodes.add(current.left); + if (current.right != null) + nodes.add(current.right); + } + levelNodeValList.add(subList); + } + return levelNodeValList; + } + + /** + * #2 DFS + * 时间复杂度为O(N) + * @param root + * @return + */ + public List> levelOrder1(TreeNode root) { + List> levelOrderList = new ArrayList>(); + travelNode(root, 0, levelOrderList); + return levelOrderList; + } + + public void travelNode(TreeNode current, Integer level, List> levelOrderList) { + if (current == null) + return; + if (levelOrderList.size() == level) { + levelOrderList.add((new ArrayList())); + } + levelOrderList.get(level).add(current.val); + + travelNode(current.left, level + 1, levelOrderList); + travelNode(current.right, level + 1, levelOrderList); + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_201/LeetCode_433_MinMutation b/Week 03/id_201/LeetCode_433_MinMutation new file mode 100644 index 000000000..f24a18bf7 --- /dev/null +++ b/Week 03/id_201/LeetCode_433_MinMutation @@ -0,0 +1,78 @@ +//一条基因序列由一个带有8个字符的字符串表示,其中每个字符都属于 "A", "C", "G", "T"中的任意一个。 +// +// 假设我们要调查一个基因序列的变化。一次基因变化意味着这个基因序列中的一个字符发生了变化。 +// +// 例如,基因序列由"AACCGGTT" 变化至 "AACCGGTA" 即发生了一次基因变化。 +// +// 与此同时,每一次基因变化的结果,都需要是一个合法的基因串,即该结果属于一个基因库。 +// +// 现在给定3个参数 — start, end, bank,分别代表起始基因序列,目标基因序列及基因库,请找出能够使起始基因序列变化为目标基因序列所需的最少变化次数。如果无法实现目标变化,请返回 -1。 +// +// 注意: +// +// +// 起始基因序列默认是合法的,但是它并不一定会出现在基因库中。 +// 所有的目标基因序列必须是合法的。 +// 假定起始基因序列与目标基因序列是不一样的。 +// +// +// 示例 1: +// +// +//start: "AACCGGTT" +//end: "AACCGGTA" +//bank: ["AACCGGTA"] +// +//返回值: 1 +// +// +// 示例 2: +// +// +//start: "AACCGGTT" +//end: "AAACGGTA" +//bank: ["AACCGGTA", "AACCGCTA", "AAACGGTA"] +// +//返回值: 2 +// +// +// 示例 3: +// +// +//start: "AAAAACCC" +//end: "AACCCCCC" +//bank: ["AAAACCCC", "AAACCCCC", "AACCCCCC"] +// +//返回值: 3 +// +// + + +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public int minMutation(String start, String end, String[] bank) { + int step = 0; + if (start.length() != end.length()) + return step; + char[] startChars = start.toCharArray(); + char[] endChars = end.toCharArray(); + HashSet mediumStrSet = new HashSet(); + for (int i = 0; i < startChars.length; i++) { + if (startChars[i] == endChars[i]) + continue; + startChars[i] = endChars[i]; + mediumStrSet.add(String.valueOf(startChars)); + step++; + } + for (String illegalStr: bank) { + mediumStrSet.remove(illegalStr); + } + return mediumStrSet.isEmpty() ? step: 0; + } +} +//leetcode submit region end(Prohibit modification and deletion) From 9709940c6c00408d640fbb4f0596f59615270872 Mon Sep 17 00:00:00 2001 From: yongliRUC Date: Wed, 30 Oct 2019 01:00:53 +0800 Subject: [PATCH 020/740] commit logs --- .../id_766/66.\345\212\240\344\270\200.java" | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 "Week 01/id_766/66.\345\212\240\344\270\200.java" diff --git "a/Week 01/id_766/66.\345\212\240\344\270\200.java" "b/Week 01/id_766/66.\345\212\240\344\270\200.java" deleted file mode 100644 index f80bd1d66..000000000 --- "a/Week 01/id_766/66.\345\212\240\344\270\200.java" +++ /dev/null @@ -1,22 +0,0 @@ -/* - * @lc app=leetcode.cn id=66 lang=java - * - * [66] 加一 - */ - -// @lc code=start -class Solution { - public int[] plusOne(int[] digits) { - for (int i = digits.length - 1; i >=0; i--) { - digits[i]++; - digits[i] = digits[i] % 10; - if (digits[i] != 0) return digits; - } - digits = new int[digits.length + 1]; - digits[0] = 1; - return digits; - - } -} -// @lc code=end - From 4b292d57486778c9a173acaa2b82449072dd39df Mon Sep 17 00:00:00 2001 From: cool Date: Wed, 30 Oct 2019 16:59:28 +0800 Subject: [PATCH 021/740] =?UTF-8?q?141.=20=E7=8E=AF=E5=BD=A2=E9=93=BE?= =?UTF-8?q?=E8=A1=A8=20=E5=88=A4=E6=96=AD=E9=93=BE=E8=A1=A8=E4=B8=AD?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=9C=89=E7=8E=AF=20=E5=9B=9E=E9=A1=BE4=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 01/id_251/LeetCode_141_251.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/Week 01/id_251/LeetCode_141_251.py b/Week 01/id_251/LeetCode_141_251.py index bcbf92de2..4bec03b82 100644 --- a/Week 01/id_251/LeetCode_141_251.py +++ b/Week 01/id_251/LeetCode_141_251.py @@ -63,20 +63,15 @@ def hasCycle(self, head): """ hash_set = set() while head: - if head in hash_set: - return True + if head in hash_set: return True hash_set.add(head) head = head.next return False # 快慢指针法 def hasCycleSlowFastIndex(self, head): - slow = fast = head + slow, fast = head, head while fast and fast.next: - slow = slow.next - fast = fast.next.next - if slow is fast: - return True + slow, fast = slow.next, fast.next.next + if slow is fast: return True return False - -# leetcode submit region end(Prohibit modification and deletion) From 224c85fd449d3234b8da61dc7c91a8556fd1faa9 Mon Sep 17 00:00:00 2001 From: chendan5 Date: Wed, 30 Oct 2019 17:27:29 +0800 Subject: [PATCH 022/740] leetcode 433 minmutation --- Week 03/id_201/LeetCode_433_MinMutation | 157 ++++++++++++++---------- 1 file changed, 91 insertions(+), 66 deletions(-) diff --git a/Week 03/id_201/LeetCode_433_MinMutation b/Week 03/id_201/LeetCode_433_MinMutation index f24a18bf7..0de39ed08 100644 --- a/Week 03/id_201/LeetCode_433_MinMutation +++ b/Week 03/id_201/LeetCode_433_MinMutation @@ -1,78 +1,103 @@ -//一条基因序列由一个带有8个字符的字符串表示,其中每个字符都属于 "A", "C", "G", "T"中的任意一个。 -// -// 假设我们要调查一个基因序列的变化。一次基因变化意味着这个基因序列中的一个字符发生了变化。 -// -// 例如,基因序列由"AACCGGTT" 变化至 "AACCGGTA" 即发生了一次基因变化。 -// -// 与此同时,每一次基因变化的结果,都需要是一个合法的基因串,即该结果属于一个基因库。 -// -// 现在给定3个参数 — start, end, bank,分别代表起始基因序列,目标基因序列及基因库,请找出能够使起始基因序列变化为目标基因序列所需的最少变化次数。如果无法实现目标变化,请返回 -1。 -// -// 注意: -// -// -// 起始基因序列默认是合法的,但是它并不一定会出现在基因库中。 -// 所有的目标基因序列必须是合法的。 -// 假定起始基因序列与目标基因序列是不一样的。 -// -// -// 示例 1: -// -// -//start: "AACCGGTT" -//end: "AACCGGTA" -//bank: ["AACCGGTA"] -// -//返回值: 1 -// -// -// 示例 2: -// -// -//start: "AACCGGTT" -//end: "AAACGGTA" -//bank: ["AACCGGTA", "AACCGCTA", "AAACGGTA"] -// -//返回值: 2 -// -// -// 示例 3: -// -// -//start: "AAAAACCC" -//end: "AACCCCCC" -//bank: ["AAAACCCC", "AAACCCCC", "AACCCCCC"] -// -//返回值: 3 -// -// - - -import java.util.Collection; +import java.util.ArrayList; import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; +import java.util.LinkedList; +import java.util.Queue; //leetcode submit region begin(Prohibit modification and deletion) class Solution { + /** + * #1 + * @param start + * @param end + * @param bank + * @return + */ public int minMutation(String start, String end, String[] bank) { - int step = 0; if (start.length() != end.length()) - return step; - char[] startChars = start.toCharArray(); - char[] endChars = end.toCharArray(); - HashSet mediumStrSet = new HashSet(); - for (int i = 0; i < startChars.length; i++) { - if (startChars[i] == endChars[i]) - continue; - startChars[i] = endChars[i]; - mediumStrSet.add(String.valueOf(startChars)); + return 0; + HashSet bankSet = new HashSet(); + char[] startChars, replaceChars = new char[]{'A', 'C', 'G', 'T'}; + Queue possibleStr = new LinkedList<>(); + HashSet visitedSet = new HashSet(); + char diffChar; + int step = 0, size; + String currentStart; + possibleStr.offer(start); + // put element in bank to set + for (String s : bank) + bankSet.add(s); + while (!possibleStr.isEmpty()) { + size = possibleStr.size(); + while (size-- > 0) { + currentStart = possibleStr.poll(); + if (currentStart.equals(end)) + return step; + startChars = currentStart.toCharArray(); + for (int i = 0; i < startChars.length; i++) { + diffChar = startChars[i]; + for (int j = 0; j < replaceChars.length; j++) { + if (replaceChars[j] == startChars[i]) + continue; + startChars[i] = replaceChars[j]; + currentStart = String.valueOf(startChars); + if (!visitedSet.contains(currentStart) && bankSet.contains(currentStart)) { + visitedSet.add(currentStart); + possibleStr.offer(currentStart); + } + } + startChars[i] = diffChar; + } + } step++; } - for (String illegalStr: bank) { - mediumStrSet.remove(illegalStr); + return -1; + } + + /** + * #2 improvememt of #1 + * @param start + * @param end + * @param bank + * @return + */ + public int minMutation1(String start, String end, String[] bank) { + if (start.length() != end.length()) + return 0; + HashSet bankSet = new HashSet(); + char[] startChars, replaceChars = new char[]{'A', 'C', 'G', 'T'}; + Queue possibleStr = new LinkedList<>(); + char diffChar; + int step = 0, size; + String currentStart; + possibleStr.offer(start); + // put element in bank to set + for (String s : bank) + bankSet.add(s); + while (!possibleStr.isEmpty()) { + size = possibleStr.size(); + while (size-- > 0) { + currentStart = possibleStr.poll(); + if (currentStart.equals(end)) + return step; + startChars = currentStart.toCharArray(); + for (int i = 0; i < startChars.length; i++) { + diffChar = startChars[i]; + for (int j = 0; j < replaceChars.length; j++) { + if (replaceChars[j] == startChars[i]) + continue; + startChars[i] = replaceChars[j]; + currentStart = String.valueOf(startChars); + if (bankSet.contains(currentStart)) { + bankSet.remove(currentStart); + possibleStr.offer(currentStart); + } + } + startChars[i] = diffChar; + } + } + step++; } - return mediumStrSet.isEmpty() ? step: 0; + return -1; } } //leetcode submit region end(Prohibit modification and deletion) From d94a6d5b1743827f2a2992be41be49a3e6374e03 Mon Sep 17 00:00:00 2001 From: chendan5 Date: Wed, 30 Oct 2019 19:57:27 +0800 Subject: [PATCH 023/740] leetcode 127 --- Week 03/id_201/LeetCode_127_LadderLength | 142 +++++++++++++++++++++++ Week 03/id_201/LeetCode_433_MinMutation | 11 ++ 2 files changed, 153 insertions(+) create mode 100644 Week 03/id_201/LeetCode_127_LadderLength diff --git a/Week 03/id_201/LeetCode_127_LadderLength b/Week 03/id_201/LeetCode_127_LadderLength new file mode 100644 index 000000000..cb00c6cf1 --- /dev/null +++ b/Week 03/id_201/LeetCode_127_LadderLength @@ -0,0 +1,142 @@ +//给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: +// +// +// 每次转换只能改变一个字母。 +// 转换过程中的中间单词必须是字典中的单词。 +// +// +// 说明: +// +// +// 如果不存在这样的转换序列,返回 0。 +// 所有单词具有相同的长度。 +// 所有单词只由小写字母组成。 +// 字典中不存在重复的单词。 +// 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 +// +// +// 示例 1: +// +// 输入: +//beginWord = "hit", +//endWord = "cog", +//wordList = ["hot","dot","dog","lot","log","cog"] +// +//输出: 5 +// +//解释: 一个最短转换序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog", +// 返回它的长度 5。 +// +// +// 示例 2: +// +// 输入: +//beginWord = "hit" +//endWord = "cog" +//wordList = ["hot","dot","dog","lot","log"] +// +//输出: 0 +// +//解释: endWord "cog" 不在字典中,所以无法进行转换。 +// Related Topics 广度优先搜索 + + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Queue; + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + /** + * 时间复杂度为O(nk) n:字典中单词的数量, k为word长度 + * @param beginWord + * @param endWord + * @param wordList + * @return + */ + public int ladderLength(String beginWord, String endWord, List wordList) { + //每次只能变换一个字母,且每次产生的中间字符串必定在字典中, + // 所以找从begin world开始和wordList, endWord的上一个状态也在字典里 + HashSet visitedWords = new HashSet(); + LinkedList beginMediums = new LinkedList(); + beginMediums.add(beginWord); + String currentStr; + int size, step = 1; + boolean haveEnd = false; + while (!beginMediums.isEmpty()) { + size = beginMediums.size(); + while (size-- > 0) { + currentStr = beginMediums.poll(); + if (currentStr.equals(endWord)) + return step; + for (String str: wordList) { + if (!visitedWords.contains(str) && canReachEnd(currentStr, str)) { + visitedWords.add(str); + beginMediums.add(str); + } + if (!haveEnd && str.equals(endWord)) { + haveEnd = true; + } + } + if (false == haveEnd) + return 0; + } + step++; + } + return 0; + } + + public boolean canReachEnd(String start, String end) { + char[] startChars = start.toCharArray(); + char[] endChars = end.toCharArray(); + int changeCount = 0; + for (int i = 0; i < startChars.length; i++) { + if (startChars[i] != endChars[i]) + changeCount++; + if (changeCount > 1) + break; + } + return changeCount == 1; + } + + public int ladderLength(String beginWord, String endWord, List wordList) { + HashSet wordSets = new HashSet(); + LinkedList beginMediums = new LinkedList(); + char[] charList = new char[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'y', 'w', 'x', 'y', 'z'}; + int size, step = 1; + String changeStr; + char[] changeChars; + char oldChar; + beginMediums.add(beginWord); + for (String str: wordList) + wordSets.add(str); + while (!beginMediums.isEmpty()) { + size = beginMediums.size(); + while (size-- > 0) { + changeStr = beginMediums.poll(); + if (changeStr.equals(endWord)) + return step; + changeChars = changeStr.toCharArray(); + for (int i = 0; i < changeChars.length; i++) { + for (char j: charList) { + if (changeChars[i] == j) + continue; + oldChar = changeChars[i]; + changeChars[i] = j; + changeStr = String.valueOf(changeChars); + if (wordSets.contains(changeStr)) { + wordSets.remove(changeStr); + beginMediums.add(changeStr); + } + changeChars[i] = oldChar; + } + } + } + step++; + } + return 0; + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_201/LeetCode_433_MinMutation b/Week 03/id_201/LeetCode_433_MinMutation index 0de39ed08..bc0f53d56 100644 --- a/Week 03/id_201/LeetCode_433_MinMutation +++ b/Week 03/id_201/LeetCode_433_MinMutation @@ -99,5 +99,16 @@ class Solution { } return -1; } + + /** + * because bank is small 参考127 ladderLength + * @param start + * @param end + * @param bank + * @return + */ + public int minMutation2(String start, String end, String[] bank) { + return -1; + } } //leetcode submit region end(Prohibit modification and deletion) From ed68ae9dea2c7f1f4cb8959adbb3632c17ede49c Mon Sep 17 00:00:00 2001 From: annchd Date: Wed, 30 Oct 2019 22:57:32 +0800 Subject: [PATCH 024/740] leetcode --- Week 03/id_201/LeetCode_126_LadderLength2 | 0 Week 03/id_201/LeetCode_127_LadderLength | 62 ++++++++++++++++++- Week 03/id_201/LeetCode_200_NumIslands | 0 .../id_201/LeetCode_22_generateParenthesis | 0 Week 03/id_201/LeetCode_529_UpdateBoard | 0 5 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_201/LeetCode_126_LadderLength2 create mode 100644 Week 03/id_201/LeetCode_200_NumIslands create mode 100644 Week 03/id_201/LeetCode_22_generateParenthesis create mode 100644 Week 03/id_201/LeetCode_529_UpdateBoard diff --git a/Week 03/id_201/LeetCode_126_LadderLength2 b/Week 03/id_201/LeetCode_126_LadderLength2 new file mode 100644 index 000000000..e69de29bb diff --git a/Week 03/id_201/LeetCode_127_LadderLength b/Week 03/id_201/LeetCode_127_LadderLength index cb00c6cf1..9527a9b6f 100644 --- a/Week 03/id_201/LeetCode_127_LadderLength +++ b/Week 03/id_201/LeetCode_127_LadderLength @@ -100,7 +100,7 @@ class Solution { return changeCount == 1; } - public int ladderLength(String beginWord, String endWord, List wordList) { + public int ladderLength1(String beginWord, String endWord, List wordList) { HashSet wordSets = new HashSet(); LinkedList beginMediums = new LinkedList(); char[] charList = new char[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', @@ -138,5 +138,65 @@ class Solution { } return 0; } + + /** + * todo + * #3 单指针,通用状态预处理 + * @param beginWord + * @param endWord + * @param wordList + * @return + */ + public int ladderLength2(String beginWord, String endWord, List wordList) { + int len = beginWord.length(); + HashMap> commonStatusMap = new HashMap<>(); + HashMap> wordStatusMap = new HashMap<>(); + Queue headQueue = new LinkedList(); + headQueue.add(beginWord); + + //pre handle of dictionary + for (String word: wordList) { + ArrayList wordStatus = getCommonStatus(word, len); + wordStatusMap.put(word, wordStatus); + for (String s: wordStatus) { + if (!commonStatusMap.contains(word)) { + commonStatusMap.put(word, new ArrayList()); + } + commonStatusMap.get(word).add(s); + } + } + + while (!headQueue.isEmpty()) { + } + + return 0; + } + + public ArrayList getCommonStatus(String word, int length) { + ArrayList commonStatus = new ArrayList(); + char[] wordChar = new char[]; + char oldChar; + for (int i = 0; i < length; i++) { + oldChar = wordChar[i]; + wordChar[i] = *; + commonStatus.add(String.valueOf(wordChar)); + wordChar[i] = oldChar; + } + return commonStatus; + } + + /** + * todo + * #4 双指针,通用状态预处理 + * @param beginWord + * @param endWord + * @param wordList + * @return + */ + public int ladderLength2(String beginWord, String endWord, List wordList) { + + + return 0; + } } //leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_201/LeetCode_200_NumIslands b/Week 03/id_201/LeetCode_200_NumIslands new file mode 100644 index 000000000..e69de29bb diff --git a/Week 03/id_201/LeetCode_22_generateParenthesis b/Week 03/id_201/LeetCode_22_generateParenthesis new file mode 100644 index 000000000..e69de29bb diff --git a/Week 03/id_201/LeetCode_529_UpdateBoard b/Week 03/id_201/LeetCode_529_UpdateBoard new file mode 100644 index 000000000..e69de29bb From b814495bb8fdf8496478f47ad39d0e839896680c Mon Sep 17 00:00:00 2001 From: wuxiaohui <391394275@qq.com> Date: Wed, 30 Oct 2019 23:38:35 +0800 Subject: [PATCH 025/740] week 02 --- ...15\345\272\217\351\201\215\345\216\206.py" | 46 +++++++++++++++++++ ...15\345\272\217\351\201\215\345\216\206.py" | 40 ++++++++++++++++ ...16\345\272\217\351\201\215\345\216\206.py" | 44 ++++++++++++++++++ .../id_116/[77]\347\273\204\345\220\210.py" | 31 +++++++++++++ 4 files changed, 161 insertions(+) create mode 100644 "Week 02/id_116/[144]\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.py" create mode 100644 "Week 02/id_116/[589]N\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.py" create mode 100644 "Week 02/id_116/[590]N\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.py" create mode 100644 "Week 02/id_116/[77]\347\273\204\345\220\210.py" diff --git "a/Week 02/id_116/[144]\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.py" "b/Week 02/id_116/[144]\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.py" new file mode 100644 index 000000000..e763c983c --- /dev/null +++ "b/Week 02/id_116/[144]\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.py" @@ -0,0 +1,46 @@ +#给定一个二叉树,返回它的 前序 遍历。 +# +# 示例: +# +# 输入: [1,null,2,3] +# 1 +# \ +# 2 +# / +# 3 +# +#输出: [1,2,3] +# +# +# 进阶: 递归算法很简单,你可以通过迭代算法完成吗? +# Related Topics 栈 树 + + + +#leetcode submit region begin(Prohibit modification and deletion) +# Definition for a binary tree node. +# class TreeNode(object): +# def __init__(self, x): +# self.val = x +# self.left = None +# self.right = None + + +class Solution(object): + def preorderTraversal(self, root): + """ + :type root: TreeNode + :rtype: List[int] + """ + ret = [] + stack = [root] + while stack: + node = stack.pop() + if node: + ret.append(node.val) + stack.append(node.right) + stack.append(node.left) + return ret + + +#leetcode submit region end(Prohibit modification and deletion) diff --git "a/Week 02/id_116/[589]N\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.py" "b/Week 02/id_116/[589]N\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.py" new file mode 100644 index 000000000..8dc431d13 --- /dev/null +++ "b/Week 02/id_116/[589]N\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.py" @@ -0,0 +1,40 @@ +#给定一个 N 叉树,返回其节点值的前序遍历。 +# +# 例如,给定一个 3叉树 : +# +# +# +# +# +# +# +# 返回其前序遍历: [1,3,5,6,2,4]。 +# +# +# +# 说明: 递归法很简单,你可以使用迭代法完成此题吗? Related Topics 树 + + + +#leetcode submit region begin(Prohibit modification and deletion) +""" +# Definition for a Node. +class Node(object): + def __init__(self, val, children): + self.val = val + self.children = children +""" +class Solution(object): + def preorder(self, root): + """ + :type root: Node + :rtype: List[int] + """ + ret, q = [], root and [root] + while q: + node = q.pop() + ret.append(node.val) + q += [child for child in node.children[::-1] if child] + return ret + +#leetcode submit region end(Prohibit modification and deletion) diff --git "a/Week 02/id_116/[590]N\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.py" "b/Week 02/id_116/[590]N\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.py" new file mode 100644 index 000000000..33e111232 --- /dev/null +++ "b/Week 02/id_116/[590]N\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.py" @@ -0,0 +1,44 @@ +#给定一个 N 叉树,返回其节点值的后序遍历。 +# +# 例如,给定一个 3叉树 : +# +# +# +# +# +# +# +# 返回其后序遍历: [5,6,3,2,4,1]. +# +# +# +# 说明: 递归法很简单,你可以使用迭代法完成此题吗? Related Topics 树 + + + +#leetcode submit region begin(Prohibit modification and deletion) +""" +# Definition for a Node. +class Node(object): + def __init__(self, val, children): + self.val = val + self.children = children +""" +class Solution(object): + def postorder(self, root): + """ + :type root: Node + :rtype: List[int] + """ + res = [] + if root == None: return res + + stack = [root] + while stack: + curr = stack.pop() + res.append(curr.val) + stack.extend(curr.children) + + return res[::-1] + +#leetcode submit region end(Prohibit modification and deletion) diff --git "a/Week 02/id_116/[77]\347\273\204\345\220\210.py" "b/Week 02/id_116/[77]\347\273\204\345\220\210.py" new file mode 100644 index 000000000..654d32180 --- /dev/null +++ "b/Week 02/id_116/[77]\347\273\204\345\220\210.py" @@ -0,0 +1,31 @@ +#给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 +# +# 示例: +# +# 输入: n = 4, k = 2 +#输出: +#[ +# [2,4], +# [3,4], +# [2,3], +# [1,2], +# [1,3], +# [1,4], +#] +# Related Topics 回溯算法 + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def combine(self, n, k): + """ + :type n: int + :type k: int + :rtype: List[List[int]] + """ + if k == 0: + return [[]] + return [pre + [i] for i in range(k, n+1) for pre in self.combine(i-1, k-1)] + +#leetcode submit region end(Prohibit modification and deletion) From af01781c4450632f03e13ff2e863e8430b1209f3 Mon Sep 17 00:00:00 2001 From: shniu Date: Thu, 31 Oct 2019 12:33:25 +0800 Subject: [PATCH 026/740] week 03 --- Week 03/id_716/LeetCode_122_716.java | 19 ++++ Week 03/id_716/LeetCode_860_716.java | 20 +++++ Week 03/id_716/NOTE.md | 124 ++++++++++++++++++++++++++- 3 files changed, 162 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_716/LeetCode_122_716.java create mode 100644 Week 03/id_716/LeetCode_860_716.java diff --git a/Week 03/id_716/LeetCode_122_716.java b/Week 03/id_716/LeetCode_122_716.java new file mode 100644 index 000000000..a96b2aa28 --- /dev/null +++ b/Week 03/id_716/LeetCode_122_716.java @@ -0,0 +1,19 @@ + +// https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii +// 买卖股票的最佳时机 II + +public class LeetCode_122_716 { + // 1. 暴力法,太复杂了,先直接放弃 + + // 2. 贪心法求解 + // 核心思想是:贪心的地方在于每次去寻找能够增加利润的值,前后两个价格做比较,只要产生收益就累加到 + // 最后的收益中,不能增加收益的就忽略掉 + public int maxProfit(int[] prices) { + int profit = 0; + for (int i = 1; i < prices.length; i++) { + int diff = prices[i] - prices[i - 1]; + if (diff > 0) profit += diff; + } + return profit; + } +} diff --git a/Week 03/id_716/LeetCode_860_716.java b/Week 03/id_716/LeetCode_860_716.java new file mode 100644 index 000000000..d05e35354 --- /dev/null +++ b/Week 03/id_716/LeetCode_860_716.java @@ -0,0 +1,20 @@ + +// https://leetcode-cn.com/problems/lemonade-change +// 柠檬水找零 + +public class LeetCode_860_716 { + + // 利用贪心算法实现 + public boolean lemonadeChange(int[] bills) { + int fiveCnt = 0, tenCnt = 0; + for (int bill : bills) { + if (bill == 5) fiveCnt++; + else if (bill == 10) { fiveCnt--; tenCnt++; } + else if (tenCnt > 0) { tenCnt--; fiveCnt--; } + else fiveCnt -= 3; + + if (fiveCnt < 0) return false; + } + return true; + } +} diff --git a/Week 03/id_716/NOTE.md b/Week 03/id_716/NOTE.md index a6321d6e2..7f3467571 100644 --- a/Week 03/id_716/NOTE.md +++ b/Week 03/id_716/NOTE.md @@ -1,4 +1,126 @@ # NOTE - +### Week 03 关键部分笔记 + +##### 深度优先搜索和广度优先搜索 + +- 深度优先搜索:DFS,Deep First Search + +代码模版 + +```python +# 递归写法 +visited = set() +def dfs(node, visited): + # terminator + if node in visited: + return + + visited.add(node) + + # process current node here + # ... + + # drill down + for next_node in node.children(): + if next_node not in visited: + dfs(next_node, visited) + + +# 非递归写法 +def DFS(root): + if root is Node: + return [] + visited, stack = [], [root] + + while stack: + node = stack.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + stack.push(nodes) + +``` + +- 广度优先搜索:BFS,Bread First Search + +代码模版 + +```python +def BFS(graph, start, end): + queue = [] + queue.append([start]) + visited.add(start) + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + + # other processing work + ... +``` + +- 题目 +https://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description +https://leetcode-cn.com/problems/minimum-genetic-mutation/#/description +https://leetcode-cn.com/problems/generate-parentheses/#/description +https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/#/description + +https://leetcode-cn.com/problems/word-ladder/description/ +https://leetcode-cn.com/problems/word-ladder-ii/description/ +https://leetcode-cn.com/problems/number-of-islands/ +https://leetcode-cn.com/problems/minesweeper/description/ + +##### 贪心算法 + +- 题目 + +https://leetcode-cn.com/problems/coin-change/ +https://leetcode-cn.com/problems/lemonade-change/description/ (done) +https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/ (done) +https://leetcode-cn.com/problems/assign-cookies/description/ (done) +https://leetcode-cn.com/problems/walking-robot-simulation/description/ +https://leetcode-cn.com/problems/jump-game/ +https://leetcode-cn.com/problems/jump-game-ii/ + +##### 二分查找 + +- 前提 + +1. 单调性(单调递增或递减) +2. 存在上下界 (bounded) +3. 能够通过索引访问 (index accessable) + +- 代码模版 + +``` + +``` + +- 题目 + +https://leetcode-cn.com/problems/sqrtx/ +https://leetcode.com-cn/problems/valid-perfect-square/ + +https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ +https://leetcode-cn.com/problems/search-a-2d-matrix/ +https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ +使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 +说明:同学们可以将自己的思路、代码写在第 3 周的学习总结中 + +--- + +### 【716-Week 03】总结 + +// todo + +### 思考题 + +思考题:使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 + From 01ffab67e765014145c4471e427c9e20e0386b17 Mon Sep 17 00:00:00 2001 From: orajavac Date: Thu, 31 Oct 2019 15:11:37 +0800 Subject: [PATCH 027/740] Create LeetCode_74_601.java --- Week 03/id_601/LeetCode_74_601.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Week 03/id_601/LeetCode_74_601.java diff --git a/Week 03/id_601/LeetCode_74_601.java b/Week 03/id_601/LeetCode_74_601.java new file mode 100644 index 000000000..462584095 --- /dev/null +++ b/Week 03/id_601/LeetCode_74_601.java @@ -0,0 +1,26 @@ +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + if((matrix==null||matrix.length==0)||(matrix.length==1&&matrix[0].length==0)) return false; + int left = 0; + int right = 0; + int l = 0; + for (int i=0; i= matrix[i][0]){ + right = matrix[i].length - 1; + l = i; + } + } + int mid = 0; + while (left <= right) { + mid = (left + right) / 2; + if (matrix[l][mid] == target) { + return true; + }else if (matrix[l][mid] < target) { + left = mid + 1; + }else{ + right = mid - 1; + } + } + return false; + } +} From 2aec3cb07e20ba62da1a40391bba49d1da7a9834 Mon Sep 17 00:00:00 2001 From: orajavac Date: Thu, 31 Oct 2019 15:11:57 +0800 Subject: [PATCH 028/740] Create LeetCode_153_601.java --- Week 03/id_601/LeetCode_153_601.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Week 03/id_601/LeetCode_153_601.java diff --git a/Week 03/id_601/LeetCode_153_601.java b/Week 03/id_601/LeetCode_153_601.java new file mode 100644 index 000000000..b3a3582c3 --- /dev/null +++ b/Week 03/id_601/LeetCode_153_601.java @@ -0,0 +1,22 @@ +class Solution { + public int findMin(int[] nums) { + if (nums.length == 1) return nums[0]; + int lo = 0, hi = nums.length - 1; + while (lo <= hi) { + + if (hi - lo == 1 || hi - lo == 0) { + return nums[lo] < nums[hi] ? nums[lo] : nums[hi]; + } + + int mid = (lo + hi) / 2; + + if (nums[lo] > nums[hi] && nums[mid] > nums[hi]) { + lo = mid + 1; + }else{ + hi = mid; + } + } + + return 0; + } +} From 3df1d697cc5ed69107a394dd19e6bdd62ff74de0 Mon Sep 17 00:00:00 2001 From: shniu Date: Thu, 31 Oct 2019 18:34:14 +0800 Subject: [PATCH 029/740] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=80=BB=E7=BB=93?= =?UTF-8?q?=E5=92=8C=E9=A2=98=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_716/LeetCode_33_716.java | 34 +++++++++++ Week 03/id_716/LeetCode_367_716.java | 55 +++++++++++++++++ Week 03/id_716/LeetCode_69_716.java | 88 ++++++++++++++++++++++++++++ Week 03/id_716/NOTE.md | 50 +++++++++++++++- 4 files changed, 224 insertions(+), 3 deletions(-) create mode 100644 Week 03/id_716/LeetCode_33_716.java create mode 100644 Week 03/id_716/LeetCode_367_716.java create mode 100644 Week 03/id_716/LeetCode_69_716.java diff --git a/Week 03/id_716/LeetCode_33_716.java b/Week 03/id_716/LeetCode_33_716.java new file mode 100644 index 000000000..0eafe6194 --- /dev/null +++ b/Week 03/id_716/LeetCode_33_716.java @@ -0,0 +1,34 @@ + +// https://leetcode-cn.com/problems/search-in-rotated-sorted-array +// 搜索旋转排序数组 + +public class LeetCode_33_716 { + // 二分查找 + public int search(int[] nums, int target) { + int low = 0, high = nums.length - 1; + + while (low <= high) { + int mid = low + (high - low) / 2; + if (nums[mid] == target) return mid; + + // 这里是关键 + // nums[low] <= target && target < nums[mid] 表示 low mid 是有序的,且target在它们中间,需要将high向前移动 + // nums[low] > nums[mid] && target > nums[high] 表示: low ~ mid 是无序的,而且 target 比 high 位置的元素还要大, + // 因为 mid ~ high 是有序的,所以必然在 low ~ mid 中间,移动high + // nums[low] > nums[mid] && target < nums[mid] 表示 low ~ mid 是无序的, 而且 target 比mid位置处的值还要小, + // 因为 mid ~ high 是有序的,所以必然在 low ~ mid 中间,移动high + // 否则,就是移动low + if ((nums[low] <= target && target < nums[mid]) + || (nums[low] > nums[mid] && target > nums[high]) + || (nums[low] > nums[mid] && target < nums[mid])) { + high = mid - 1; + } else { + low = mid + 1; + } + } + + return low == high && nums[low] == target ? low : -1; + } + + // 还有另外一种思路:先找到无序的位置,然后再使用正常的二分查找找到索引位置,这种方式暂时不实现 +} \ No newline at end of file diff --git a/Week 03/id_716/LeetCode_367_716.java b/Week 03/id_716/LeetCode_367_716.java new file mode 100644 index 000000000..04f2e77bd --- /dev/null +++ b/Week 03/id_716/LeetCode_367_716.java @@ -0,0 +1,55 @@ + +// https://leetcode-cn.com/problems/valid-perfect-square +// 有效的完全平方数 + +public class LeetCode_367_716 { + // 1. 暴力求解 + public boolean isPerfectSquare1(int num) { + for (int i = 1; i <= (num + 1)/2; i++) { + if (i == num/i && i * i == num) { + return true; + } + } + return false; + } + + // 2. 二分搜索 + public boolean isPerfectSquare2(int num) { + int l = 1, r = (num >> 1) + 1; + while (l <= r) { + int m = l + (r - l) / 2; + + // 可以最大程度的防止溢出 + if (m == num/m && m * m == num) return true; + + if (m > num/m) { + r = m - 1; + } else { + l = m + 1; + } + } + + return false; + } + // 同样,这个题目可以利用 69 题,在最后判断 r*r == num ? + + // 3. 等差数列 + public boolean isPerfectSquare3(int num) { + int i = 1; + while (num > 0) { + num -= i; + i += 2; + } + return num == 0; + } + + // 4. 牛顿法 + public boolean isPerfectSquare4(int num) { + long r = num; + while (r > num/r) { + r = (r + num/r) / 2; + } + int rs = (int) r; + return rs * rs == num; + } +} \ No newline at end of file diff --git a/Week 03/id_716/LeetCode_69_716.java b/Week 03/id_716/LeetCode_69_716.java new file mode 100644 index 000000000..531947db4 --- /dev/null +++ b/Week 03/id_716/LeetCode_69_716.java @@ -0,0 +1,88 @@ + +public class LeetCode_69_716 { + + // 1. 二分搜索 + // 1.1 + public int mySqrt11(int x) { + if (x == 0) return 0; + int left = 1, right = Integer.MAX_VALUE; + while (true) { + int mid = left + ((right - left) >> 1); + if (mid > x/mid) { + right = mid - 1; + } else { + if (mid + 1 > x/(mid + 1)) + return mid; + left = mid + 1; + } + } + } + + // 1.2 + public int mySqrt12(int x) { + // 平方根一定在 1 ~ (x/2 + 1)之间 + if (x == 0) return 0; + + int left = 1, right = (x >> 1); + while (left < right) { + int mid = left + ((right - left) >> 1); + + int sqrt = x / mid; + if (mid == sqrt) { + return mid; + } else if (mid > sqrt) { + right = mid - 1; + } else { + if (mid + 1 > x / (mid + 1)) return mid; + left = mid + 1; + } + } + + return left; + } + + // 1.3 + public int mySqrt13(int x) { + int left = 1, right = x, res = 0; + while (left <= right) { + int mid = left + ((right - left) >> 1); + if (mid <= x / mid) { + left = mid + 1; + res = mid; + } else { + right = mid - 1; + } + } + + return res; + } + + // 1.4 + public int mySqrt14(int x) { + if (x == 0 || x == 1) return x; + + int left = 1, right = x >> 1; + while (left + 1 < right) { + int mid = left + ((right - left) >> 1); + if (mid <= x / mid) { + left = mid; + } else { + right = mid - 1; + } + } + + return right <= x / right ? right : left; + } + + // 2 牛顿法,这个写法确实有些巧妙,收敛速度更快 + // 可以这么理解:从 x 和 1 开始从两端向中间收敛,r 的起始值是 x,x/r 的起始值是 1,随着 r 的减小,x/r 在增大 + // 这两个值都在向 x 的平方根收敛,当到达平方根时 r == x/r, 可以推测,r 是从大到小单调递减的 + public int mySqrt2(int x) { + if (x == 0) return 0; + long r = x; + while (r > x / r) { + r = (r + x / r) >> 1; + } + return (int) r; + } +} \ No newline at end of file diff --git a/Week 03/id_716/NOTE.md b/Week 03/id_716/NOTE.md index 7f3467571..eccf59a94 100644 --- a/Week 03/id_716/NOTE.md +++ b/Week 03/id_716/NOTE.md @@ -104,10 +104,10 @@ https://leetcode-cn.com/problems/jump-game-ii/ - 题目 -https://leetcode-cn.com/problems/sqrtx/ -https://leetcode.com-cn/problems/valid-perfect-square/ +https://leetcode-cn.com/problems/sqrtx/ (done) +https://leetcode-cn.com/problems/valid-perfect-square/ (done) -https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ +https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ (done) https://leetcode-cn.com/problems/search-a-2d-matrix/ https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ 使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 @@ -123,4 +123,48 @@ https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ 思考题:使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 +分析: +- 理解题目的意思 + +输入是一个半有序的数组,首先我们假设数组是升序后做了旋转后得到的,所以有一些特点:在断点处的前后都是有序的,但整体无序;第一个元素大于最后一个元素 +输出是找到那个无序的索引位置,我们假设返回的是最小元素的位置索引i,自然的,i-1就是最大元素的位置索引 + +- 找解决思路 + +思路1:使用暴力方式,以此遍历数组中的每个元素,比较两个元素的大小,如果出现前面的值大于后面的值的地方,就是我们要找的;但是此种方法,时间复杂度是 O(n),复杂度有些高,考虑是否有更优化的解法 + +思路2:虽然数组是整体无序的,但是部分是有序的,可以借助这个特性使用二分查找;已知 nums[0] > nums[nums.length-1], 我们使用二分查找获取 nums[mid], 让 nums[mid] 和 nums[nums.length-1] 做比较,如果nums[mid]大,说明断点出在 mid 之前,就调整low的位置;否则在 mid 之后,调整high的位置,这样持续下去,直到找到那个位置 + +此外,mid元素和位置0的元素做比较,道理是一样的 + +- 编写代码 + +```java +public class HomeWork1 { + /** + * 查找半有序数组的最小元素的索引(同理就是找无序的地方) + */ + public int findMinElementIndex(int[] nums) { + int low = 0, high = nums.length - 1; + int lastElement = nums[high]; + while (low < high) { + int mid = low + ((high - low) >> 1); + if (nums[mid] < lastElement) high = mid; + else low = mid + 1; + } + return low; + } +} +``` + +- 测试用例 + +``` +Test Case: +[10, 11, 12, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9] +[10, 9] +[12, 13, 1, 2] +[12] +[12, 13, 14] +``` \ No newline at end of file From 4a3b56d83e0da192cf42e42ffc985d10c3e086b8 Mon Sep 17 00:00:00 2001 From: cyo Date: Fri, 1 Nov 2019 00:57:07 +0900 Subject: [PATCH 030/740] 046-Week 03 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 二分查找 贪心算法 二叉树遍历 --- Week 03/id_046/LeetCode_33_046.java | 24 ++++++++++++++++++ Week 03/id_046/LeetCode_515_046.java | 30 ++++++++++++++++++++++ Week 03/id_046/LeetCode_860_046.java | 38 ++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 Week 03/id_046/LeetCode_33_046.java create mode 100755 Week 03/id_046/LeetCode_515_046.java create mode 100755 Week 03/id_046/LeetCode_860_046.java diff --git a/Week 03/id_046/LeetCode_33_046.java b/Week 03/id_046/LeetCode_33_046.java new file mode 100644 index 000000000..08b3709f1 --- /dev/null +++ b/Week 03/id_046/LeetCode_33_046.java @@ -0,0 +1,24 @@ +class Solution { + public int search(int[] nums, int target) { + if (nums.length == 0) return -1; + int low = 0; + int high = nums.length - 1; + while(low < high){ + int mid = (high + low)/2; + if (nums[mid] == target) return mid; + if(nums[low] <= nums[mid]){ + if(nums[low] <= target && nums[mid] > target) + high = mid -1; + else low = mid + 1; + }else{ + if (target > nums[mid] && target <= nums[high]) { + low = mid + 1; + } else { + high = mid - 1; + } + } + + } + return nums[low] == target ? low : -1; + } +} \ No newline at end of file diff --git a/Week 03/id_046/LeetCode_515_046.java b/Week 03/id_046/LeetCode_515_046.java new file mode 100755 index 000000000..c6e0c0e8a --- /dev/null +++ b/Week 03/id_046/LeetCode_515_046.java @@ -0,0 +1,30 @@ +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ +class Solution { + List res = new ArrayList<>(); + + public List largestValues(TreeNode root) { + getRowNums(root,0); + return res; + } + + private void getRowNums(TreeNode node, int rowLevel){ + if(node != null){ + if(res.size() == rowLevel){ + res.add(node.val); + } else { + // 改善:保持每个深度放入的元素为当前遍历中最大 + res.set(rowLevel,Math.max(res.get(rowLevel),node.val)); + } + if(node.left != null) getRowNums(node.left,rowLevel+1); + if(node.right != null) getRowNums(node.right,rowLevel+1); + } + } +} \ No newline at end of file diff --git a/Week 03/id_046/LeetCode_860_046.java b/Week 03/id_046/LeetCode_860_046.java new file mode 100755 index 000000000..2665ad180 --- /dev/null +++ b/Week 03/id_046/LeetCode_860_046.java @@ -0,0 +1,38 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0; + int ten = 0; + for(int i : bills){ + if(i==5) five++; + if(i==10){ + if(five == 0) return false; + else { + five--; + ten++; + } + } + if(i==20){ + if(ten > 0 && five > 0 ){ + ten--; + five--; + }else if(five >2){ + five = five -3; + }else return false; + } + } + return true; + } + + // 更简洁的逻辑,前面的处理保证了不会有负数的10,只需根据5的计数判断是否有足够零钱 + public boolean lemonadeChange(int[] bills) { + int five = 0, ten = 0; + for (int i : bills) { + if (i == 5) five++; + else if (i == 10) {five--; ten++;} + else if (ten > 0) {ten--; five--;} + else five -= 3; + if (five < 0) return false; + } + return true; + } +} \ No newline at end of file From 7c5c6bb7dc0978431fbcbfb979597f9040c24092 Mon Sep 17 00:00:00 2001 From: BingYu <33021175+BingYu-track@users.noreply.github.com> Date: Fri, 1 Nov 2019 00:08:46 +0800 Subject: [PATCH 031/740] 511-Week 02 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 胡小伟补上的第二周作业 --- Week 02/id_511/LeetCode_242_511.java | 48 +++++++++++ Week 02/id_511/LeetCode_49_511.java | 36 ++++++++ Week 02/id_511/LeetCode_94_511.java | 123 +++++++++++++++++++++++++++ Week 02/id_511/NOTE.md | 20 ++++- 4 files changed, 223 insertions(+), 4 deletions(-) create mode 100644 Week 02/id_511/LeetCode_242_511.java create mode 100644 Week 02/id_511/LeetCode_49_511.java create mode 100644 Week 02/id_511/LeetCode_94_511.java diff --git a/Week 02/id_511/LeetCode_242_511.java b/Week 02/id_511/LeetCode_242_511.java new file mode 100644 index 000000000..91e606138 --- /dev/null +++ b/Week 02/id_511/LeetCode_242_511.java @@ -0,0 +1,48 @@ +package id_511; + +import java.util.Arrays; + +/** + * @version 1.0 + * @Description: 有效的字母异位词(异位词是指字母出现的频率相同但是顺序不同) + * @author: bingyu + * @date: 2019/10/30 20:43 + */ +public class LeetCode_242_511 { + + + + //方法一:将字符串按照字母排序,再看是否相等即可 + public static boolean isAnagram(String s, String t) { + char[] a = s.toCharArray(); + char[] b = t.toCharArray(); + Arrays.sort(a); + Arrays.sort(b); + return Arrays.equals(a,b); + } + + //方法二:使用散列表的思想将字符串的每个字符散列到数组里,并计数 + public static boolean isAnagram2(String s, String t) { + if (s.length() != t.length()) { //字符串长度是否相同,不相等肯定不是异位词 + return false; + } + int[] counter = new int[26]; + for (int i = 0; i < s.length(); i++) { + counter[s.charAt(i) - 'a']++; //因为字母a在ascii码是97,a在哈希表counter位置是下标0,其它字母的对应的下标就是s.charAt(i) - 'a'; + counter[t.charAt(i) - 'a']--; //一个加,一个减,如果两个字母是异位词的话,最终数组counter里应该都只有0,否则就不是异位词 + } + for (int count : counter) { + if (count != 0) { + return false; + } + } + return true; + } + + public static void main(String[] args) { + String s = "fsdfsd"; + String t = "vnvnsj"; + boolean f = isAnagram2(s, t); + System.out.println(f); + } +} diff --git a/Week 02/id_511/LeetCode_49_511.java b/Week 02/id_511/LeetCode_49_511.java new file mode 100644 index 000000000..fb47c3f51 --- /dev/null +++ b/Week 02/id_511/LeetCode_49_511.java @@ -0,0 +1,36 @@ +package id_511; + +import java.util.*; + +/** + * @version 1.0 + * @Description: 字母异位词分组 + * @author: bingyu + * @date: 2019/10/30 21:23 + */ +public class LeetCode_49_511 { + + + //使用hash表,将排序后的字符串作为key,每一个key对应一个List。list里就是存放排序前的字符串即可 + public static List> groupAnagrams(String[] strs) { + if (strs.length == 0) return new ArrayList(); + Map map = new HashMap<>(); + for (String str : strs) { + char[] chars = str.toCharArray(); + Arrays.sort(chars); + String key = String.valueOf(chars); //获得排序后的字符串 + if (!map.containsKey(key)) { //每一个排序的key对应一个List,list里存放原来的字符串 + map.put(key, new ArrayList()); + } + map.get(key).add(str); + } + return new ArrayList(map.values()); + } + + + public static void main(String[] args) { + String[] ar = {"eat", "tea", "tan", "ate", "nat", "bat"}; + List> lists = groupAnagrams(ar); + System.out.println(lists); + } +} diff --git a/Week 02/id_511/LeetCode_94_511.java b/Week 02/id_511/LeetCode_94_511.java new file mode 100644 index 000000000..8b691d8fe --- /dev/null +++ b/Week 02/id_511/LeetCode_94_511.java @@ -0,0 +1,123 @@ +package id_511; + +import javax.swing.tree.TreeNode; +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +/** + * @version 1.0 + * @Description: 二叉树的中序遍历 + * @author: bingyu + * @date: 2019/10/30 23:23 + */ +public class LeetCode_94_511 { + + public static class TreeNode{ + public int val; + public TreeNode left,right; + + public TreeNode(int val){ + this.val = val; + this.left = null; + this.right = null; + } + } + + public List inorderTraversal(TreeNode root) { + List list = new ArrayList<>(); + inOrder(root,list); + return list; + } + + //方法一:递归 + //前序遍历 + public void preOrder(TreeNode root, List list){ + if (root != null) { //如果根结点不为空 + list.add(root.val); + if (root.left != null) { //如果左结点不为null,则将该左结点作为根结点继续遍历它的左结点 + preOrder(root.left,list); + } + //开始遍历右结点 + if (root.right != null) { + preOrder(root.right,list); + } + } + } + + //中序遍历 + public void inOrder(TreeNode root, List list){ + if (root != null) { //如果根结点不为空 + if (root.left != null) { //如果左结点不为null,则将该左结点作为根结点继续遍历它的左结点 + inOrder(root.left,list); + } + //执行到这里说明root.left==null,即左节点已遍历完成 + list.add(root.val); + //开始遍历右结点 + if (root.right != null) { + inOrder(root.right,list); + } + } + } + + //后序遍历 + public void postOrder(TreeNode root, List list){ + if (root != null) { //如果根结点不为空 + if (root.left != null) { //如果左结点不为null,则将该左结点作为根结点继续遍历它的左结点 + postOrder(root.left,list); + } + //开始遍历右结点 + if (root.right != null) { + postOrder(root.right,list); + } + list.add(root.val); + } + } + + //方法二:使用栈来模拟递归 + public static List inorderTraversal2(TreeNode root) { + List res = new ArrayList <> (); + Stack stack = new Stack <> (); + TreeNode curr = root; + while (curr != null || !stack.isEmpty()) { //这里外层的循环条件中的curr!=null是判断当前节点是否存在右子树,下面内存循环的curr!=null是判断当前节点是否存在左子树 + while (curr != null) { //首先在这里第一次循环是将根结点的所有左子树结点放入栈中,第一次内层while循环完后,cur就是整个树最左边的叶子结点 + stack.push(curr); + curr = curr.left; + } + curr = stack.pop(); //执行到这里说明curr是某个结点的左叶子结点(即左边没有子元素了),下面可以开始遍历其右子树 + res.add(curr.val); + curr = curr.right; //遍历右子树 + } + return res; + } + + public static void main(String[] args) { + TreeNode root = new TreeNode(10); + TreeNode a = new TreeNode(9); + TreeNode b = new TreeNode(8); + TreeNode c = new TreeNode(7); + TreeNode d = new TreeNode(6); + TreeNode e = new TreeNode(5); + TreeNode f = new TreeNode(4); + TreeNode g = new TreeNode(3); + TreeNode h = new TreeNode(2); + TreeNode i = new TreeNode(1); + TreeNode j = new TreeNode(0); + TreeNode k = new TreeNode(-1); + TreeNode l = new TreeNode(11); + root.left = a; + root.left.right = b; + root.left.left = c; + root.left.left.left = d; + root.left.left.right = e; + root.left.right.left = f; + root.left.right.right = g; + root.right = h; + root.right.left = i; + root.right.right = j; + root.right.right.left = k; + root.left.left.left.right = l; + List list = inorderTraversal2(root); + System.out.println(list); + } +} diff --git a/Week 02/id_511/NOTE.md b/Week 02/id_511/NOTE.md index a6321d6e2..08b8d6420 100644 --- a/Week 02/id_511/NOTE.md +++ b/Week 02/id_511/NOTE.md @@ -1,4 +1,16 @@ -# NOTE - - - +# 第二这周总结 +###(第二周由于在忙于完成专升本的作业,因此第二周的作业放在第三周周四完成,第三周我会在这周周末准时完成) +### 在第二周的学习中,主要是学习了树的遍历以及写递归的代码的一些技巧。 +    我总结一下自己现在理解的树,我把树看成是一个拥有多个后继结点的链表,由于链表查找元素时间复杂度较高 +0(n),所以衍生出了树这种结构,为0(logn),树又分为很多种类型比如二叉树、二叉搜索树、红黑树、平衡二叉树等等 +,其实现实生活中,树其实是有很多分叉的,我们在程序里通常处理的都是只有两只分叉的二叉树,这是因为二叉树分支只有两个 +,更方便处理,这其实有一个将普通的树转化为二叉树的过程,它的转化规则这边用一个口诀概括起来: +兄弟相连留长子。另一个就是二叉树的结构其实就是一个递归的结构,因此关于二叉树的遍历都可以用递归来 +解决。 +    另一个就是关于hashMap的源码·分析了,hashMap的源码里含有的内容包含很多,在jdk1.8中 +HashMap中的重点用到了链表和红黑树,其中链表和红黑树的转化是重点,这里因为时间关系我就附上一个链接:HashMap源码分析 + + + + + From 08535141a408e606e23ec6ad493436b6e50ebe60 Mon Sep 17 00:00:00 2001 From: shniu Date: Fri, 1 Nov 2019 07:57:01 +0800 Subject: [PATCH 032/740] week03 --- Week 03/id_716/NOTE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Week 03/id_716/NOTE.md b/Week 03/id_716/NOTE.md index eccf59a94..212c08e8a 100644 --- a/Week 03/id_716/NOTE.md +++ b/Week 03/id_716/NOTE.md @@ -134,7 +134,7 @@ https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ 思路1:使用暴力方式,以此遍历数组中的每个元素,比较两个元素的大小,如果出现前面的值大于后面的值的地方,就是我们要找的;但是此种方法,时间复杂度是 O(n),复杂度有些高,考虑是否有更优化的解法 -思路2:虽然数组是整体无序的,但是部分是有序的,可以借助这个特性使用二分查找;已知 nums[0] > nums[nums.length-1], 我们使用二分查找获取 nums[mid], 让 nums[mid] 和 nums[nums.length-1] 做比较,如果nums[mid]大,说明断点出在 mid 之前,就调整low的位置;否则在 mid 之后,调整high的位置,这样持续下去,直到找到那个位置 +思路2:虽然数组是整体无序的,但是部分是有序的,可以借助这个特性使用二分查找;已知 `nums[0] > nums[nums.length-1]`, 我们使用二分查找获取 `nums[mid]`, 让 `nums[mid]` 和 `nums[nums.length-1]` 做比较,如果 `nums[mid]` 大,说明断点出在 `mid` 之前,就调整 `low` 的位置;否则在 `mid` 之后,调整 `high` 的位置,这样持续下去,直到找到那个位置 此外,mid元素和位置0的元素做比较,道理是一样的 @@ -167,4 +167,4 @@ Test Case: [12, 13, 1, 2] [12] [12, 13, 14] -``` \ No newline at end of file +``` From 4327a4ddf23789fc496f8b732c9d103dacb88fc7 Mon Sep 17 00:00:00 2001 From: duyue6002 Date: Fri, 1 Nov 2019 11:17:43 +0800 Subject: [PATCH 033/740] Letter Combinations of a Phone Number --- Week 02/id_571/leetcode_17_571.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Week 02/id_571/leetcode_17_571.js diff --git a/Week 02/id_571/leetcode_17_571.js b/Week 02/id_571/leetcode_17_571.js new file mode 100644 index 000000000..e3778170c --- /dev/null +++ b/Week 02/id_571/leetcode_17_571.js @@ -0,0 +1,31 @@ +/** + * @param {string} digits + * @return {string[]} + */ +var letterCombinations = function(digits) { + let res = []; + if (digits === "") return res; + let map = { + "2": "abc", + "3": "def", + "4": "ghi", + "5": "jkl", + "6": "mno", + "7": "pqrs", + "8": "tuv", + "9": "wxyz" + }; + helper(res, digits, 0, "", map); + return res; +}; + +var helper = function(arr, digits, index, str, map) { + if (digits.length === index) { + arr.push(str); + return; + } + let letters = map[digits[index]]; + for (let s of letters) { + helper(arr, digits, index + 1, str.concat(s), map); + } +}; From 035b2fd31bd8ddfb65b3fd2b984ee9d2c7a2b01c Mon Sep 17 00:00:00 2001 From: cool Date: Fri, 1 Nov 2019 11:39:18 +0800 Subject: [PATCH 034/740] =?UTF-8?q?DFS=E4=BB=A3=E7=A0=81=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...43\347\240\201\346\250\241\346\235\277.md" | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 "Week 03/id_251/DFS\344\273\243\347\240\201\346\250\241\346\235\277.md" diff --git "a/Week 03/id_251/DFS\344\273\243\347\240\201\346\250\241\346\235\277.md" "b/Week 03/id_251/DFS\344\273\243\347\240\201\346\250\241\346\235\277.md" new file mode 100644 index 000000000..35cd0b7f6 --- /dev/null +++ "b/Week 03/id_251/DFS\344\273\243\347\240\201\346\250\241\346\235\277.md" @@ -0,0 +1,58 @@ +## 递归写法 + +### 树、图 +```python +visited = set() + +def dfs(node, visited): + if node in visited: # terminator + # already visited + return + + visited.add(node) + + # process current node here. + ... + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) +``` + +### 二叉树 +```python +visited = set() + +def dfs(node): + # terminator + if node in visited: + # already visited + return + + visited.add(node) + + # process current node + # ... # logic here + dfs(node.left) + dfs(node.right) +``` + +## 非递归写法 +```python +def DFS(tree): + # terminator + if tree.root is None: + return [] + + visited, stack = [], [tree.root] + + while stack: + node = stack.pop() + visited.append(node) + + process(node) + nodes = generate_related_nodes(node) + stack.push(nodes) + + # other processing work + ... +``` \ No newline at end of file From 209fddb61c531ff083f4703d2539a66c32c4fdcb Mon Sep 17 00:00:00 2001 From: cool Date: Fri, 1 Nov 2019 13:00:18 +0800 Subject: [PATCH 035/740] =?UTF-8?q?DFS=E4=BB=A3=E7=A0=81=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DFS\344\273\243\347\240\201\346\250\241\346\235\277.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/Week 03/id_251/DFS\344\273\243\347\240\201\346\250\241\346\235\277.md" "b/Week 03/id_251/DFS\344\273\243\347\240\201\346\250\241\346\235\277.md" index 35cd0b7f6..c8ac0b6b2 100644 --- "a/Week 03/id_251/DFS\344\273\243\347\240\201\346\250\241\346\235\277.md" +++ "b/Week 03/id_251/DFS\344\273\243\347\240\201\346\250\241\346\235\277.md" @@ -43,11 +43,11 @@ def DFS(tree): if tree.root is None: return [] - visited, stack = [], [tree.root] + visited, stack = set(), [tree.root] while stack: node = stack.pop() - visited.append(node) + visited.add(node) process(node) nodes = generate_related_nodes(node) From 1b30cedb1d7ba33e025666455405707822a71dba Mon Sep 17 00:00:00 2001 From: cool Date: Fri, 1 Nov 2019 13:29:19 +0800 Subject: [PATCH 036/740] =?UTF-8?q?BFS=E4=BB=A3=E7=A0=81=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...243\347\240\201\346\250\241\346\235\277.md" | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 "Week 03/id_251/BFS\344\273\243\347\240\201\346\250\241\346\235\277.md" diff --git "a/Week 03/id_251/BFS\344\273\243\347\240\201\346\250\241\346\235\277.md" "b/Week 03/id_251/BFS\344\273\243\347\240\201\346\250\241\346\235\277.md" new file mode 100644 index 000000000..8b7bcc1a8 --- /dev/null +++ "b/Week 03/id_251/BFS\344\273\243\347\240\201\346\250\241\346\235\277.md" @@ -0,0 +1,18 @@ +```python +def BFS(graph, start, end): + + queue = [] + queue.append(start) + visited = {start} + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + + # other processing work + ... +``` \ No newline at end of file From ab41af2148df4f0ae4d5711e69e4b27aedb9a3ee Mon Sep 17 00:00:00 2001 From: cool Date: Fri, 1 Nov 2019 15:10:43 +0800 Subject: [PATCH 037/740] =?UTF-8?q?127.=20=E5=8D=95=E8=AF=8D=E6=8E=A5?= =?UTF-8?q?=E9=BE=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_251/LeetCode_127_251.py | 82 ++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 Week 03/id_251/LeetCode_127_251.py diff --git a/Week 03/id_251/LeetCode_127_251.py b/Week 03/id_251/LeetCode_127_251.py new file mode 100644 index 000000000..c2366199b --- /dev/null +++ b/Week 03/id_251/LeetCode_127_251.py @@ -0,0 +1,82 @@ +# 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: +# +# +# 每次转换只能改变一个字母。 +# 转换过程中的中间单词必须是字典中的单词。 +# +# +# 说明: +# +# +# 如果不存在这样的转换序列,返回 0。 +# 所有单词具有相同的长度。 +# 所有单词只由小写字母组成。 +# 字典中不存在重复的单词。 +# 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 +# +# +# 示例 1: +# +# 输入: +# beginWord = "hit", +# endWord = "cog", +# wordList = ["hot","dot","dog","lot","log","cog"] +# +# 输出: 5 +# +# 解释: 一个最短转换序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog", +# 返回它的长度 5。 +# +# +# 示例 2: +# +# 输入: +# beginWord = "hit" +# endWord = "cog" +# wordList = ["hot","dot","dog","lot","log"] +# +# 输出: 0 +# +# 解释: endWord "cog" 不在字典中,所以无法进行转换。 +# Related Topics 广度优先搜索 + +""" +1 BFS 重点是刚开始的画出邻接矩阵 +""" + + +# leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def ladderLength(self, beginWord, endWord, wordList): + """ + :type beginWord: str + :type endWord: str + :type wordList: List[str] + :rtype: int + """ + from collections import defaultdict + if endWord not in wordList or not endWord or not beginWord or not wordList: + return 0 + + L = len(beginWord) + + all_combo_dict = defaultdict(list) + for word in wordList: + for i in range(L): + all_combo_dict[word[:i] + '*' + word[i + 1:]].append(word) + + # Queue for BFS + queue = [(beginWord, 1)] + visited = {beginWord: True} + while queue: + current_word, level = queue.pop(0) + for i in range(L): + intermediate_word = current_word[:i] + '*' + current_word[i + 1:] + for word in all_combo_dict[intermediate_word]: + if word == endWord: + return level + 1 + if word not in visited: + visited[word] = True + queue.append((word, level + 1)) + all_combo_dict[intermediate_word] = [] + return 0 From e8ba3915dd3e76ea373d64d8eb9b6714023729ce Mon Sep 17 00:00:00 2001 From: chendan5 Date: Fri, 1 Nov 2019 15:47:49 +0800 Subject: [PATCH 038/740] ladder length --- Week 03/id_201/LeetCode_127_LadderLength | 95 ++++++++++++++++--- .../id_201/LeetCode_515_largestValues.java | 95 +++++++++++++++++++ 2 files changed, 179 insertions(+), 11 deletions(-) create mode 100644 Week 03/id_201/LeetCode_515_largestValues.java diff --git a/Week 03/id_201/LeetCode_127_LadderLength b/Week 03/id_201/LeetCode_127_LadderLength index 9527a9b6f..f17318461 100644 --- a/Week 03/id_201/LeetCode_127_LadderLength +++ b/Week 03/id_201/LeetCode_127_LadderLength @@ -48,6 +48,8 @@ import java.util.Queue; //leetcode submit region begin(Prohibit modification and deletion) class Solution { + public HashMap> commonStatusMap; + public HashMap> wordStatusMap; /** * 时间复杂度为O(nk) n:字典中单词的数量, k为word长度 * @param beginWord @@ -148,10 +150,10 @@ class Solution { * @return */ public int ladderLength2(String beginWord, String endWord, List wordList) { - int len = beginWord.length(); + int len = beginWord.length(), step = 0; HashMap> commonStatusMap = new HashMap<>(); HashMap> wordStatusMap = new HashMap<>(); - Queue headQueue = new LinkedList(); + Queue headQueue = new LinkedList(); headQueue.add(beginWord); //pre handle of dictionary @@ -159,26 +161,43 @@ class Solution { ArrayList wordStatus = getCommonStatus(word, len); wordStatusMap.put(word, wordStatus); for (String s: wordStatus) { - if (!commonStatusMap.contains(word)) { - commonStatusMap.put(word, new ArrayList()); + if (!commonStatusMap.containsKey(s)) { + commonStatusMap.put(s, new ArrayList()); } - commonStatusMap.get(word).add(s); + commonStatusMap.get(s).add(word); } } + wordStatusMap.put(beginWord, getCommonStatus(beginWord, len)); while (!headQueue.isEmpty()) { + int size = headQueue.size(); + step++; + while (size-- > 0) { + String currentStr = headQueue.poll(); + if (currentStr.equals(endWord)) + return step; + if (!wordStatusMap.containsKey(currentStr)) + continue; + for (String str: wordStatusMap.get(currentStr)) { + if (!commonStatusMap.containsKey(str)) + continue; + for (String nextStr: commonStatusMap.get(str)) + headQueue.add(nextStr); + commonStatusMap.remove(str); + } + wordStatusMap.remove(currentStr); + } } - return 0; } public ArrayList getCommonStatus(String word, int length) { ArrayList commonStatus = new ArrayList(); - char[] wordChar = new char[]; + char[] wordChar = word.toCharArray(); char oldChar; for (int i = 0; i < length; i++) { oldChar = wordChar[i]; - wordChar[i] = *; + wordChar[i] = '*'; commonStatus.add(String.valueOf(wordChar)); wordChar[i] = oldChar; } @@ -186,16 +205,70 @@ class Solution { } /** - * todo - * #4 双指针,通用状态预处理 + * #4 双指针 (head point and tail point) + * 时间复杂度为O(NK),实际时间比较小,双直针会在中间相遇 + * (原来的搜索是金字塔形,越往下层基数越大,指数型增长) * @param beginWord * @param endWord * @param wordList * @return */ - public int ladderLength2(String beginWord, String endWord, List wordList) { + public int ladderLength3(String beginWord, String endWord, List wordList) { + if (!wordList.contains(endWord)) { + return 0; + } + commonStatusMap = new HashMap<>(); + wordStatusMap = new HashMap<>(); + Queue> headQueue = new LinkedList(); + Queue> tailQueue = new LinkedList(); + HashMap headVisited = new HashMap(); + HashMap tailVisited = new HashMap(); + headQueue.add(new Pair(beginWord, 1)); + tailQueue.add(new Pair(endWord, 1)); + + //pre handle of dictionary + int len = beginWord.length(), vistedStep; + for (String word: wordList) { + ArrayList wordStatus = getCommonStatus(word, len); + wordStatusMap.put(word, wordStatus); + for (String s: wordStatus) { + if (!commonStatusMap.containsKey(s)) { + commonStatusMap.put(s, new ArrayList()); + } + commonStatusMap.get(s).add(word); + } + } + wordStatusMap.put(beginWord, getCommonStatus(beginWord, len)); + while (!headQueue.isEmpty() && !tailQueue.isEmpty()) { + vistedStep = visitWord(headQueue, headVisited, tailVisited); + if (vistedStep > 0) { + return vistedStep; + } + vistedStep = visitWord(tailQueue, tailVisited, headVisited); + if (vistedStep > 0) { + return vistedStep; + } + } + return 0; + } + public int visitWord(Queue> q, HashMap visitedMap, HashMap compareMap) { + Pair wordNode = q.poll(); + String word = wordNode.getKey(); + if (compareMap.containsKey(word)) { + return wordNode.getValue() + compareMap.get(word) -1; + } + for (String s: wordStatusMap.get(word)) { + if (!commonStatusMap.containsKey(s)) + continue; + for (String s1: commonStatusMap.get(s)) { + if (!visitedMap.containsKey(s1)) { + q.add(new Pair(s1, wordNode.getValue() + 1)); + visitedMap.put(s1, wordNode.getValue() + 1); + } + } + } return 0; } } diff --git a/Week 03/id_201/LeetCode_515_largestValues.java b/Week 03/id_201/LeetCode_515_largestValues.java new file mode 100644 index 000000000..020a2b40f --- /dev/null +++ b/Week 03/id_201/LeetCode_515_largestValues.java @@ -0,0 +1,95 @@ +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ +class Solution { + /** + * #1 + * @param root + * @return + */ + public List largestValues(TreeNode root) { + int level = 0; + boolean preNodeNull = true; + ArrayList maxNums = new ArrayList(); + travelNode(root, maxNums, level); + return maxNums; + } + + public void travelNode(TreeNode current, ArrayList maxNums, int level) { + if (current == null) + return; + if (maxNums.size() <= level) { + maxNums.add(current.val); + } else if (current.val > maxNums.get(level)) { + maxNums.set(level, current.val); + } + travelNode(current.left, maxNums, level + 1); + travelNode(current.right, maxNums, level + 1); + } + + public List largestValues1(TreeNode root) { + int maxNum = 0; + boolean preNodeNull = true; + ArrayList maxNums = new ArrayList(); + Queue nodes = new LinkedList(); + TreeNode current; + nodes.add(root); + nodes.add(null); + while (true) { + current = nodes.poll(); + if (current == null) { + if (preNodeNull) { + break; + } + maxNums.add(maxNum); + nodes.add(null); + preNodeNull = true; + continue; + } + if (preNodeNull) { + preNodeNull = false; + maxNum = current.val; + } else if (current.val > maxNum) { + maxNum = current.val; + } + if (current.left != null) { + nodes.add(current.left); + } + if (current.right != null) { + nodes.add(current.right); + } + } + return maxNums; + } + + public List largestValues2(TreeNode root) { + int maxNum, size = 0; + TreeNode current; + ArrayList maxNums = new ArrayList(); + if (root == null) + return maxNums; + Queue nodes = new LinkedList<>(); + nodes.add(root); + while (!nodes.isEmpty()) { + size = nodes.size(); + maxNum = Integer.MIN_VALUE; + while (size-- > 0) { + current = nodes.poll(); + if (current.val > maxNum) + maxNum = current.val; + if (current.left != null) + nodes.add(current.left); + if (current.right != null) + nodes.add(current.right); + } + maxNums.add(maxNum); + } + return maxNums; + } +} \ No newline at end of file From b0eca301008476b8000f7733f72f15251880d665 Mon Sep 17 00:00:00 2001 From: cool Date: Fri, 1 Nov 2019 15:58:52 +0800 Subject: [PATCH 039/740] =?UTF-8?q?127.=20=E5=8D=95=E8=AF=8D=E6=8E=A5?= =?UTF-8?q?=E9=BE=99=20=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_251/LeetCode_127_251.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Week 03/id_251/LeetCode_127_251.py b/Week 03/id_251/LeetCode_127_251.py index c2366199b..d02781cd0 100644 --- a/Week 03/id_251/LeetCode_127_251.py +++ b/Week 03/id_251/LeetCode_127_251.py @@ -41,7 +41,7 @@ # Related Topics 广度优先搜索 """ -1 BFS 重点是刚开始的画出邻接矩阵 +1 BFS 重点是刚开始的 构造通用状态字典 """ @@ -60,6 +60,7 @@ def ladderLength(self, beginWord, endWord, wordList): L = len(beginWord) + # 构造通用状态字典 all_combo_dict = defaultdict(list) for word in wordList: for i in range(L): @@ -78,5 +79,4 @@ def ladderLength(self, beginWord, endWord, wordList): if word not in visited: visited[word] = True queue.append((word, level + 1)) - all_combo_dict[intermediate_word] = [] return 0 From 7238e2d3fb0b0fbad5aba13b91e9d3f16bf68308 Mon Sep 17 00:00:00 2001 From: cool Date: Fri, 1 Nov 2019 17:16:07 +0800 Subject: [PATCH 040/740] =?UTF-8?q?122.=20=E4=B9=B0=E5=8D=96=E8=82=A1?= =?UTF-8?q?=E7=A5=A8=E7=9A=84=E6=9C=80=E4=BD=B3=E6=97=B6=E6=9C=BA=20II=20?= =?UTF-8?q?=E8=B4=AA=E5=BF=83=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_251/LeetCode_122_251.py | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Week 03/id_251/LeetCode_122_251.py diff --git a/Week 03/id_251/LeetCode_122_251.py b/Week 03/id_251/LeetCode_122_251.py new file mode 100644 index 000000000..6ef8742da --- /dev/null +++ b/Week 03/id_251/LeetCode_122_251.py @@ -0,0 +1,53 @@ +# 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 +# +# 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 +# +# 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 +# +# 示例 1: +# +# 输入: [7,1,5,3,6,4] +# 输出: 7 +# 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 +#   随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。 +# +# +# 示例 2: +# +# 输入: [1,2,3,4,5] +# 输出: 4 +# 解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 +#   注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。 +#   因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。 +# +# +# 示例 3: +# +# 输入: [7,6,4,3,1] +# 输出: 0 +# 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。 +# Related Topics 贪心算法 数组 + +""" +1 贪心 +""" + + +# leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def maxProfit(self, prices): + """ + :type prices: List[int] + :rtype: int + """ + profit = 0 + + for i in range(1, len(prices)): + if prices[i] > prices[i - 1]: + profit += prices[i] - prices[i - 1] + + return profit + + # 一行搞定 + def maxProfit_(self, prices): + return sum([prices[i] - prices[i - 1] for i in range(1, len(prices)) if prices[i] > prices[i - 1]]) From 31c47412cce2225caa06aee23832f2788ff3936d Mon Sep 17 00:00:00 2001 From: gh Date: Fri, 1 Nov 2019 18:31:22 +0800 Subject: [PATCH 041/740] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_406/LeetCode_126_406.py | 35 ++++++++++++++++++++++++++++++ Week 03/id_406/LeetCode_455_406.py | 20 +++++++++++++++++ Week 03/id_406/LeetCode_74_406.py | 19 ++++++++++++++++ Week 03/id_406/NOTE.md | 13 +++++++++++ 4 files changed, 87 insertions(+) create mode 100644 Week 03/id_406/LeetCode_126_406.py create mode 100644 Week 03/id_406/LeetCode_455_406.py create mode 100644 Week 03/id_406/LeetCode_74_406.py diff --git a/Week 03/id_406/LeetCode_126_406.py b/Week 03/id_406/LeetCode_126_406.py new file mode 100644 index 000000000..bf856587a --- /dev/null +++ b/Week 03/id_406/LeetCode_126_406.py @@ -0,0 +1,35 @@ +class Solution: + def findLadders(self, beginWord: str, endWord: str, wordList: List[str]) -> List[List[str]]: + wordset = set(wordList) + wordset.discard(beginWord) + if endWord not in wordset: + return [] + k = 1 + bfs = {beginWord} + d = {} + d[beginWord]=[[beginWord]] + while len(bfs)>0: + if endWord in bfs: + break + bfs1 = set() + next1 = wordset.copy() + for word in bfs: + for i in range(len(word)): + for c in "abcdefghijklmnopqrstuvwxyz": + newWord = word[:i] + c + word[i + 1:] + if newWord in wordset and newWord != word: + if newWord not in d: + d[newWord] = [] + for obj in d[word]: + d[newWord].append(obj+[newWord]) + else: + for obj in d[word]: + d[newWord].append(obj+[newWord]) + if k==1: + wordset.remove(newWord) + next1.discard(newWord) + bfs1.add(newWord) + bfs = bfs1 + wordset = next1 + k += 1 + return d.get(endWord, []) \ No newline at end of file diff --git a/Week 03/id_406/LeetCode_455_406.py b/Week 03/id_406/LeetCode_455_406.py new file mode 100644 index 000000000..431ea8489 --- /dev/null +++ b/Week 03/id_406/LeetCode_455_406.py @@ -0,0 +1,20 @@ +class Solution: + def findContentChildren(self, g: List[int], s: List[int]) -> int: + res = 0 + g.sort() + s.sort() + + g_length = len(g) + s_length = len(s) + + i = 0 + j = 0 + + while i < g_length and j < s_length: + if g[i] <= s[j]: + res += 1 + i += 1 + j += 1 + else: + j += 1 + return res \ No newline at end of file diff --git a/Week 03/id_406/LeetCode_74_406.py b/Week 03/id_406/LeetCode_74_406.py new file mode 100644 index 000000000..b774c09df --- /dev/null +++ b/Week 03/id_406/LeetCode_74_406.py @@ -0,0 +1,19 @@ +class Solution: + def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: + m = len(matrix) + if m == 0: + return False + n = len(matrix[0]) + + left, right = 0, m * n - 1 + while left <= right: + pivot_idx = (left + right) // 2 + pivot_element = matrix[pivot_idx // n][pivot_idx % n] + if target == pivot_element: + return True + else: + if target < pivot_element: + right = pivot_idx - 1 + else: + left = pivot_idx + 1 + return False \ No newline at end of file diff --git a/Week 03/id_406/NOTE.md b/Week 03/id_406/NOTE.md index a6321d6e2..9a6bba070 100644 --- a/Week 03/id_406/NOTE.md +++ b/Week 03/id_406/NOTE.md @@ -1,4 +1,17 @@ # NOTE +贪心算法 +贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法 +贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能 +二分查找模板 +left, right = 0, len(array) - 1 +while left <= right: + mid = (left + right) / 2 + if array[mid] == target: + break or return result + elif array[mid] < target: + left = mid + 1 + else: + right = mid - 1 From 91caf0311a7d70161a5d4071094309324feddc3b Mon Sep 17 00:00:00 2001 From: shniu Date: Fri, 1 Nov 2019 18:36:48 +0800 Subject: [PATCH 042/740] =?UTF-8?q?=E9=A2=98=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_716/LeetCode_102_716.java | 65 ++++++++++++ Week 03/id_716/LeetCode_107_716.java | 55 ++++++++++ Week 03/id_716/LeetCode_127_716.java | 146 +++++++++++++++++++++++++++ Week 03/id_716/NOTE.md | 11 +- 4 files changed, 276 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_716/LeetCode_102_716.java create mode 100644 Week 03/id_716/LeetCode_107_716.java create mode 100644 Week 03/id_716/LeetCode_127_716.java diff --git a/Week 03/id_716/LeetCode_102_716.java b/Week 03/id_716/LeetCode_102_716.java new file mode 100644 index 000000000..193d7a95a --- /dev/null +++ b/Week 03/id_716/LeetCode_102_716.java @@ -0,0 +1,65 @@ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +// https://leetcode-cn.com/problems/binary-tree-level-order-traversal +// 二叉树的层次遍历 + +public class LeetCode_102_716 { + // 1. 使用loop + 队列 + public List> levelOrder1(TreeNode root) { + // 存储结果 + List> res = new ArrayList<>(); + if (root == null) return res; + + // 用队列来暂存依次要访问的每层节点 + Queue queue = new LinkedList<>(); + queue.offer(root); + // 跟踪正在遍历的是第几层的节点 + int level = 0; + while (!queue.isEmpty()) { + // 初始化当前层的容器 + res.add(new ArrayList<>()); + + // 获取队列的大小,表示要遍历的当前层的节点个数 + int nodeCntInCurrLevel = queue.size(); + for (int i = 0; i < nodeCntInCurrLevel; ++i) { + TreeNode curr = queue.poll(); + res.get(level).add(curr.val); + + if (curr.left != null) queue.offer(curr.left); + if (curr.right != null) queue.offer(curr.right); + } + + // 当前层遍历完了之后,层数+1 + level++; + } + + return res; + } + + // 2. 使用递归 + public List> levelOrder2(TreeNode root) { + List> res = new ArrayList<>(); + levelOrderHelper(root, 0, res); + return res; + } + + // 可以使用递归解决,需要跟踪level + // 重复性是:每次都是遍历当前节点,记录值(只需要跟踪层次即可),然后是左子树,然后是右子树 + private void levelOrderHelper(TreeNode node, int level, List> res) { + // terminator + if (node == null) return; + + // process current logic + if (res.size() < level + 1) { + res.add(new ArrayList<>()); + } + res.get(level).add(node.val); + + // drill down + levelOrderHelper(node.left, level + 1, res); + levelOrderHelper(node.right, level + 1, res); + } +} diff --git a/Week 03/id_716/LeetCode_107_716.java b/Week 03/id_716/LeetCode_107_716.java new file mode 100644 index 000000000..8011128a8 --- /dev/null +++ b/Week 03/id_716/LeetCode_107_716.java @@ -0,0 +1,55 @@ +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +// https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii +// 二叉树的层次遍历 II +// https://leetcode.com/problems/binary-tree-level-order-traversal/discuss/114449/A-general-approach-to-level-order-traversal-questions-in-Java + +public class LeetCode_107_716 { + // 1. 递归解法 + // 此题和 102 类似 + public List> levelOrderBottom1(TreeNode root) { + List> res = new LinkedList<>(); + levelOrderBottomHelper(root, 0, res); + return res; + } + + private void levelOrderBottomHelper(TreeNode node, int level, List> res) { + // terminator + if (node == null) return; + + // process current logic + if (res.size() < level + 1) { + res.add(0, new ArrayList<>()); + } + res.get(res.size() - level - 1).add(node.val); + + // drill down + levelOrderBottomHelper(node.left, level + 1, res); + levelOrderBottomHelper(node.right, level + 1, res); + } + + // 2. 迭代 + 队列 + public List> levelOrderBottom2(TreeNode root) { + List> res = new LinkedList<>(); + if (root == null) return res; + + Queue queue = new LinkedList<>(); + queue.offer(root); + while (!queue.isEmpty()) { + res.add(0, new ArrayList<>()); + + int levelNodeSize = queue.size(); + for (int i = 0; i < levelNodeSize; i++) { + TreeNode curr = queue.poll(); + res.get(0).add(curr.val); + + if (curr.left != null) queue.offer(curr.left); + if (curr.right != null) queue.offer(curr.right); + } + } + + return res; + } +} \ No newline at end of file diff --git a/Week 03/id_716/LeetCode_127_716.java b/Week 03/id_716/LeetCode_127_716.java new file mode 100644 index 000000000..8ae39db7f --- /dev/null +++ b/Week 03/id_716/LeetCode_127_716.java @@ -0,0 +1,146 @@ +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.Set; + +// https://leetcode-cn.com/problems/word-ladder +// 单词接龙 + +public class LeetCode_127_716 { + + // 1. bfs + // 核心点: + // a. 首先将wordList转成图的邻接表存储,将单词和单词的通用状态构成一个无向图; 通用态:hot 的通用态有 h*t, ho*, *ot, 以此类推 + // b. 在图中根据 bfs 查找 endWord,命中 endWord 所在的层次就是转换的长度;否则就无法到达 + // b1. 如果单词列表转换过来的图都是连通的,说明必然存在一个节点是endWord + // b2. 如果单词列表转换过来的图存在不连通的,比如有多个子图,说明有可能两个节点之间是不可达的,因为分别在两个子图中 + public int ladderLength1(String beginWord, String endWord, List wordList) { + // 将单词接龙问题转换成对图的bfs问题,这个是关键 + // 使用图的邻接表表示法存储 + Map> graph = new HashMap<>(); + + // 将单词列表转换成图表示 & endWord 不在单词列表中的话,直接over + if (!toGraph(wordList, endWord, graph)) return 0; + + // bfs 找最小转换长度 + return bfs(graph, beginWord, endWord); + } + + // bfs 的实现 + private int bfs(Map> graph, String beginWord, String endWord) { + // 记录已经访问过的 vertex + Set visited = new HashSet<>(); + visited.add(beginWord); + + // 待访问的 vertex 队列 + Queue queue = new LinkedList<>(); + queue.offer(new Pair(beginWord, 1)); + + while (!queue.isEmpty()) { + Pair curr = queue.poll(); + + // 遍历所有可能的状态 + for (int i = 0; i < beginWord.length(); i++) { + String keyToFind = toKey(curr.word, i); + + // 遍历邻接节点 + for (String adjWord : graph.getOrDefault(keyToFind, new ArrayList<>())) { + // 找到就直接返回 + if (adjWord.equals(endWord)) return curr.level + 1; + + // 不是要找的,就加入已访问集合 & 加入到待访问队列 + if (!visited.contains(adjWord)) { + visited.add(adjWord); + queue.offer(new Pair(adjWord, curr.level + 1)); + } + } + } + } + + return 0; + } + + // 单词列表转换成图 + private boolean toGraph(List wordList, String endWord, Map> graph) { + boolean containsEndWord = false; + int wordLength = endWord.length(); + + // 时间复杂度 O(m*n), n是字典长度,m是单词的长度 + for (String word : wordList) { + if (word.equals(endWord)) containsEndWord = true; + + for (int i = 0; i < wordLength; i++) { + String key = toKey(word, i); + List vertexList = graph.getOrDefault(key, new LinkedList<>()); + vertexList.add(word); + graph.put(key, vertexList); + } + } + + return containsEndWord; + } + + private String toKey(String word, int pos) { + char[] chars = word.toCharArray(); + chars[pos] = '*'; + return new String(chars); + } + + class Pair { + String word; + int level; + public Pair(String word, int level) { + this.word = word; + this.level = level; + } + } + + // ---------------------------- 分割线 ---------------------------- + + // 2. 双向 bfs + // 为啥能想到双向 bfs,就先记住吧 + + // 关于双向 bfs: + // a. 适用于目标节点已知的情况; 初始结点向目标结点和目标结点向初始结点同时扩展,直至在两个扩展方向上出现同一个结点,搜索结束。 + // b. 为了避免无谓的“组合爆炸”产生,就可以采取双向广度搜索算法,也就是从开始状态和结束状态同时开始搜索,一个向前搜,一个向后找。 + // c. 好处:我们不妨假设每次搜索的分支因子是 r,如果最短的路径长为 L 的话(也就是搜了 L 层),那么,用一般的 BFS 算法(不考虑去掉重复状态), + // 总的搜索状态数是 r^L(^表示乘方运算); 而如果采取双向 BFS 算法,那么,从前往后搜,我们只需要搜索 L/2 层, + // 从后往前搜,我们也只要搜 L/2 层,因此,搜索状态数是 2*(r^(L/2)),比普通 BFS 就快了很多了 + // 和方法 1 的分析没有区别,只有在 bfs 算法那里使用了 双向bfs + public int ladderLength2(String beginWord, String endWord, List wordList) { + // 将单词接龙问题转换成对图的bfs问题,这个是关键 + // 使用图的邻接表表示法存储 + Map> graph = new HashMap<>(); + + // 将单词列表转换成图表示 & endWord 不在单词列表中的话,直接over + if (!toGraph(wordList, endWord, graph)) return 0; + + // 双向 bfs + return bbfs(graph, beginWord, endWord); + } + + // bidirectional bread first search + private int bbfs(Map> graph, String beginWord, String endWord) { + Set beginVisited = new HashSet<>(); + beginVisited.add(beginWord); + + Set endVisited = new HashSet<>(); + endVisited.add(endWord); + + Queue beginToEndQueue = new LinkedList<>(); + beginToEndQueue.offer(new Pair(beginWord, 1)); + + Queue endToBeginQueue = new LinkedList<>(); + endToBeginQueue.offer(new Pair(endWord, 0)); + + // 控制流,控制双向搜索 + while (!beginToEndQueue.isEmpty() || !endToBeginQueue.isEmpty()) { + // todo https://leetcode.com/problems/word-ladder/discuss/40711/Two-end-BFS-in-Java-31ms. + } + + return 0; + } +} \ No newline at end of file diff --git a/Week 03/id_716/NOTE.md b/Week 03/id_716/NOTE.md index 212c08e8a..308f4ed89 100644 --- a/Week 03/id_716/NOTE.md +++ b/Week 03/id_716/NOTE.md @@ -66,7 +66,7 @@ def BFS(graph, start, end): ``` - 题目 -https://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description +https://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description (done) https://leetcode-cn.com/problems/minimum-genetic-mutation/#/description https://leetcode-cn.com/problems/generate-parentheses/#/description https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/#/description @@ -76,6 +76,15 @@ https://leetcode-cn.com/problems/word-ladder-ii/description/ https://leetcode-cn.com/problems/number-of-islands/ https://leetcode-cn.com/problems/minesweeper/description/ +- Topic:全面掌握深度优先搜索和广度优先搜索 + +1. 图的存储 +2. 实现BFS和DFS;解决问题时 BFS 和 DFS 能否相互转换 +3. 实现 Dijkstra 算法、Bellford 算法、Floyd 算法、A*算法 +4. 实现拓扑排序 Kahn 算法、DFS 算法 + +岛屿个数,有效数独,迷宫问题 + ##### 贪心算法 - 题目 From ec2e4715e79372918740c72151f0cc2cc0062fe5 Mon Sep 17 00:00:00 2001 From: cool Date: Fri, 1 Nov 2019 23:40:26 +0800 Subject: [PATCH 043/740] =?UTF-8?q?=E4=BA=8C=E5=88=86=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\273\243\347\240\201\346\250\241\346\235\277.md" | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 "Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" diff --git "a/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" "b/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" new file mode 100644 index 000000000..eb6ebedb6 --- /dev/null +++ "b/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" @@ -0,0 +1,12 @@ +```python +left, right = 0, len(array) - 1 +while left <= right: + mid = left + (right - left) >> 1 + if array[mid] == target: + # find the target!! + break or return result + elif array[mid] < target: + left = mid + 1 + else: + right = mid - 1 +``` \ No newline at end of file From 1ee98459ff4f5cfa9531320891ccaaf68cb240f9 Mon Sep 17 00:00:00 2001 From: cool Date: Sat, 2 Nov 2019 00:22:41 +0800 Subject: [PATCH 044/740] =?UTF-8?q?=E4=BA=8C=E5=88=86=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=A8=A1=E6=9D=BF=E6=9B=B4=E6=AD=A3=EF=BC=8C?= =?UTF-8?q?>>=20=E7=9A=84=E4=BC=98=E5=85=88=E7=BA=A7=E4=BD=8E=E3=80=82=20?= =?UTF-8?q?=E6=95=85=E6=94=B9=E4=B8=BA=20//?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" "b/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" index eb6ebedb6..0b28b77f5 100644 --- "a/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" +++ "b/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" @@ -1,7 +1,7 @@ ```python left, right = 0, len(array) - 1 while left <= right: - mid = left + (right - left) >> 1 + mid = left + (right - left) // 1 if array[mid] == target: # find the target!! break or return result From 920ffd70f85e3d5aab07d758eea24b8798ae7569 Mon Sep 17 00:00:00 2001 From: cool Date: Sat, 2 Nov 2019 00:23:08 +0800 Subject: [PATCH 045/740] =?UTF-8?q?=E4=BA=8C=E5=88=86=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=A8=A1=E6=9D=BF=E6=9B=B4=E6=AD=A3=EF=BC=8C?= =?UTF-8?q?>>=201=20=E7=9A=84=E4=BC=98=E5=85=88=E7=BA=A7=E4=BD=8E=E3=80=82?= =?UTF-8?q?=20=E6=95=85=E6=94=B9=E4=B8=BA=20//=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...43\347\240\201\346\250\241\346\235\277.md" | 2 +- ...22\345\272\217\345\210\227\350\241\250.py" | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 "Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" diff --git "a/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" "b/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" index 0b28b77f5..7b7036fc6 100644 --- "a/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" +++ "b/Week 03/id_251/\344\272\214\345\210\206\346\237\245\346\211\276\344\273\243\347\240\201\346\250\241\346\235\277.md" @@ -1,7 +1,7 @@ ```python left, right = 0, len(array) - 1 while left <= right: - mid = left + (right - left) // 1 + mid = left + (right - left) // 2 if array[mid] == target: # find the target!! break or return result diff --git "a/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" new file mode 100644 index 000000000..79edeb796 --- /dev/null +++ "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" @@ -0,0 +1,19 @@ +def revert(array): + left, right = 0, len(array) - 1 + while left < right: + mid = left + (right - left) // 2 + if array[left] < array[mid]: + left = mid + else: + right = mid + + return right + + +if __name__ == '__main__': + print(revert([4, 5, 6, 1, 2, 3])) + print(revert([4, 5, 6, 0, 1, 2, 3])) + print(revert([4, 5, 6, 7, 0, 1, 2])) + print(revert([4, 5, 6, 7, -3, -2, 0, 1, 2])) + print(revert([])) + print(revert([1])) From ec545928255bf9aff5cd204a799eedb50186b1a3 Mon Sep 17 00:00:00 2001 From: cool Date: Sat, 2 Nov 2019 00:46:00 +0800 Subject: [PATCH 046/740] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=A2=AB=E6=97=8B=E8=BD=AC=E7=9A=84=E6=8E=92=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\216\222\345\272\217\345\210\227\350\241\250.py" | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git "a/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" index 79edeb796..2e3d3e506 100644 --- "a/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" +++ "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" @@ -1,13 +1,20 @@ +""" +约束条件:列表中没有重复元素 +""" + + def revert(array): left, right = 0, len(array) - 1 while left < right: mid = left + (right - left) // 2 - if array[left] < array[mid]: + if array[left] < array[mid] < array[right]: + return array + elif array[left] < array[mid]: left = mid else: right = mid - return right + return array[left + 1:] + array[: right + 1] if __name__ == '__main__': @@ -17,3 +24,4 @@ def revert(array): print(revert([4, 5, 6, 7, -3, -2, 0, 1, 2])) print(revert([])) print(revert([1])) + print(revert([1, 2, 3])) From f00e46ee5531b61ac910ab3ab9e582ec131a847e Mon Sep 17 00:00:00 2001 From: cool Date: Sat, 2 Nov 2019 00:52:53 +0800 Subject: [PATCH 047/740] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=A2=AB=E6=97=8B=E8=BD=AC=E7=9A=84=E6=8E=92=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E5=AE=8C=E5=96=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...32\204\346\216\222\345\272\217\345\210\227\350\241\250.py" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" index 2e3d3e506..41a019f9c 100644 --- "a/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" +++ "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" @@ -13,8 +13,8 @@ def revert(array): left = mid else: right = mid - - return array[left + 1:] + array[: right + 1] + # 这里left 和 right 都可以 + return array[right + 1:] + array[: right + 1] if __name__ == '__main__': From 86e4a44976609480e0acf9f67f5ad23be1489a92 Mon Sep 17 00:00:00 2001 From: cool Date: Sat, 2 Nov 2019 00:53:52 +0800 Subject: [PATCH 048/740] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=A2=AB=E6=97=8B=E8=BD=AC=E7=9A=84=E6=8E=92=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E5=AE=8C=E5=96=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" index 41a019f9c..b12ebc296 100644 --- "a/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" +++ "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" @@ -14,7 +14,7 @@ def revert(array): else: right = mid # 这里left 和 right 都可以 - return array[right + 1:] + array[: right + 1] + return array[right + 1:] + array[:right + 1] if __name__ == '__main__': From ab54330f6d1e2d4bcfe2f610ce996917c736a5a7 Mon Sep 17 00:00:00 2001 From: larkloss Date: Fri, 1 Nov 2019 21:47:24 -0400 Subject: [PATCH 049/740] 436 Week-03 --- Week 03/id_436/Leetcode_127_436.java | 61 ++++++++++++++++++++++++++++ Week 03/id_436/Leetcode_33_436.java | 39 ++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 Week 03/id_436/Leetcode_127_436.java create mode 100644 Week 03/id_436/Leetcode_33_436.java diff --git a/Week 03/id_436/Leetcode_127_436.java b/Week 03/id_436/Leetcode_127_436.java new file mode 100644 index 000000000..d6b7f5cce --- /dev/null +++ b/Week 03/id_436/Leetcode_127_436.java @@ -0,0 +1,61 @@ +import java.util.*; +public class Leetcode_127_436 { + public int ladderLength(String start, String end, List wordList){ + Set dict = new HashSet<>(); + for (String word : wordList) { //将wordList中的单词加入dict + dict.add(word); + } + + if (start.equals(end)) { + return 1; + } + + HashSet hash = new HashSet(); + Queue queue = new LinkedList(); + queue.offer(start); + hash.add(start); + + int length = 1; + while(!queue.isEmpty()){ + length++; + int size = queue.size(); + for(int i = 0; i < size; i++){ + String word = queue.poll(); + for(String nextWord: getNextWords(word, dict)){ + if(hash.contains(nextWord)){ + continue; + } + if(nextWord.equals(end)){ + return length; + } + hash.add(nextWord); + queue.offer(nextWord); + } + } + } + return 0; + } + private String replace(String s, int index, char c){ + char[] chars = s.toCharArray(); + chars[index] = c; + return new String(chars); + } + // get connections with given word. + // for example, given word = 'hot', dict = {'hot', 'hit', 'hog'} + // it will return ['hit', 'hog'] + private ArrayList getNextWords(String word, Set dict){ + ArrayList nextWords = new ArrayList(); + for(char c = 'a'; c <= 'z'; c++){ //枚举当前替换字母 + for(int i = 0; i < word.length(); i++){ //枚举替换位置 + if(c == word.charAt(i)){ + continue; + } + String nextWord = replace(word,i,c); + if(dict.contains(nextWord)){ + nextWords.add(nextWord); + } + } + } + return nextWords; + } +} \ No newline at end of file diff --git a/Week 03/id_436/Leetcode_33_436.java b/Week 03/id_436/Leetcode_33_436.java new file mode 100644 index 000000000..e4bc8a5d1 --- /dev/null +++ b/Week 03/id_436/Leetcode_33_436.java @@ -0,0 +1,39 @@ +class Leetcode_33_436 { + public int search(int[] nums, int target) { + int start = 0; int end = nums.length - 1; + if(nums.length == 0 || nums == null){ + return -1; + } + int mid = 0; + while(start + 1 < end){ + mid = start + (end - start) / 2; + if(nums[mid] == target){ + return mid; + } + //判断具体位置,看看是在排序好的部分还是翻转后的部分 + if(nums[start] < nums[mid]){ + if(nums[start] <= target && target <= nums[mid]){ + end = mid; + } + else{ + start = mid; + } + } + else{ + if(nums[mid] <= target && target <= nums[end]){ + start = mid; + } + else{ + end = mid; + } + } + } + if(nums[start] == target){ + return start; + } + if(nums[end] == target){ + return end; + } + return -1; + } +} \ No newline at end of file From 63b9c360b048ffd567e8bd25d5136841328b38f6 Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:00:58 +0800 Subject: [PATCH 050/740] Create LeetCode_127_491.java --- Week 03/id_491/LeetCode_127_491.java | 49 ++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Week 03/id_491/LeetCode_127_491.java diff --git a/Week 03/id_491/LeetCode_127_491.java b/Week 03/id_491/LeetCode_127_491.java new file mode 100644 index 000000000..3dd0a2e12 --- /dev/null +++ b/Week 03/id_491/LeetCode_127_491.java @@ -0,0 +1,49 @@ +class Solution { + + private int min; + + private Set visited = new HashSet<>(); + + public int ladderLength(String beginWord, String endWord, List wordList) { + List temp = new ArrayList<>(); + temp.add(beginWord); + mutation(temp, endWord, wordList); + return this.min + 1; + } + + public void mutation(List beginWordList, String endWord, List wordList) { + List temp = new ArrayList<>(); + for (int i = 0; i < beginWordList.size(); i++) { + if (beginWordList.get(i).equals(endWord)) { + return; + } + for (int j = 0; j < wordList.size(); j++) { + if(visited.contains(wordList.get(j))){ + continue; + } + int steps = 0; + for (int k = 0; k < wordList.get(j).length(); k++) { + if (beginWordList.get(i).charAt(k) != wordList.get(j).charAt(k)) { + steps++; + } + + if (steps > 1) { + break; + } + } + + if (steps == 1) { + temp.add(wordList.get(j)); + visited.add(wordList.get(j)); + } + } + } + + this.min++; + if(temp.size() == 0 || this.min > wordList.size()){ + this.min = -1; + return; + } + mutation(temp, endWord, wordList); + } +} From b73893e103bc239223937cb4fb45eb22dd6c295b Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:01:40 +0800 Subject: [PATCH 051/740] Create LeetCode_126_491.java --- Week 03/id_491/LeetCode_126_491.java | 130 +++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 Week 03/id_491/LeetCode_126_491.java diff --git a/Week 03/id_491/LeetCode_126_491.java b/Week 03/id_491/LeetCode_126_491.java new file mode 100644 index 000000000..275c877f4 --- /dev/null +++ b/Week 03/id_491/LeetCode_126_491.java @@ -0,0 +1,130 @@ +class Solution { + private Set visited = new HashSet<>(); + private List> stepList = new ArrayList<>(); + private List> stepListEnd = new ArrayList<>(); + private Set wordListSet; + private int min = 0; + + public List> findLadders(String beginWord, String endWord, List wordList) { + wordListSet = new HashSet<>(wordList); + if (!wordList.contains(endWord)) { + return this.stepList; + } + + List temp = new ArrayList<>(); + temp.add(beginWord); + stepList.add(temp); + + List tempEnd = new ArrayList<>(); + tempEnd.add(endWord); + stepListEnd.add(tempEnd); + + for (int k = 0; k < beginWord.length(); k++) { + if (beginWord.charAt(k) != endWord.charAt(k)) { + this.min++; + } + } + + mutation(wordList, 0, 0); + return stepList; + } + + private boolean found(int begin, int end) { + + if (begin + end < this.min) { + return false; + } + + boolean foundResult = false; + List> foundList = new ArrayList<>(); + for (int i = 0; i < stepList.size(); i++) { + String beginWord = stepList.get(i).get(begin); + for (int j = 0; j < stepListEnd.size(); j++) { + String endWord = stepListEnd.get(j).get(end); + if (beginWord.equals(endWord)) { + List tempFound = new ArrayList<>(); + tempFound.addAll(stepList.get(i)); + if (stepListEnd.get(j).size() > 1) { + for (int a = stepListEnd.get(j).size() - 2; a >= 0; a--) { + tempFound.add(stepListEnd.get(j).get(a)); + } + } + + foundList.add(tempFound); + foundResult = true; + } + } + } + + if (foundList.size() > 0) { + this.stepList = foundList; + } + + return foundResult; + } + + public void mutation(List wordList, int stepBegin, int stepEnd) { + List> tempSteps = new ArrayList<>(); + boolean foundResult = this.found(stepBegin, stepEnd); + if (foundResult) { + return; + } else { + if (stepBegin <= stepEnd) { + for (int i = 0; i < stepList.size(); i++) { + char[] chars = stepList.get(i).get(stepBegin).toCharArray(); + for (int j = 0; j < chars.length; j++) { + chars = stepList.get(i).get(stepBegin).toCharArray(); + for (char ch = 'a'; ch <= 'z'; ch++) { + chars[j] = ch; + String tmp = new String(chars); + if (wordListSet.contains(tmp)) { + if (visited.contains(tmp)) { + continue; + } + List tempTemp = new ArrayList(stepList.get(i)); + tempTemp.add(tmp); + tempSteps.add(tempTemp); + } + } + } + visited.add(stepList.get(i).get(stepBegin)); + } + stepList = tempSteps; + if (tempSteps.size() == 0 || stepBegin + 1 > wordList.size()) { + return; + } + + stepBegin++; + } else { + for (int i = 0; i < stepListEnd.size(); i++) { + char[] chars = stepListEnd.get(i).get(stepEnd).toCharArray(); + for (int j = 0; j < chars.length; j++) { + chars = stepListEnd.get(i).get(stepEnd).toCharArray(); + for (char ch = 'a'; ch <= 'z'; ch++) { + chars[j] = ch; + String tmp = new String(chars); + if (wordListSet.contains(tmp)) { + if (visited.contains(tmp)) { + continue; + } + + List tempTemp = new ArrayList(stepListEnd.get(i)); + tempTemp.add(tmp); + tempSteps.add(tempTemp); + } + } + } + visited.add(stepListEnd.get(i).get(stepEnd)); + } + stepListEnd = tempSteps; + if (tempSteps.size() == 0 || stepEnd + 1 > wordList.size()) { + return; + } + + stepEnd++; + } + + mutation(wordList, stepBegin, stepEnd); + } + } +} From 059ae60b2f3188305e9bb48771db2acaf057e814 Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:02:20 +0800 Subject: [PATCH 052/740] Create LeetCode_200_491.java --- Week 03/id_491/LeetCode_200_491.java | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Week 03/id_491/LeetCode_200_491.java diff --git a/Week 03/id_491/LeetCode_200_491.java b/Week 03/id_491/LeetCode_200_491.java new file mode 100644 index 000000000..782e09459 --- /dev/null +++ b/Week 03/id_491/LeetCode_200_491.java @@ -0,0 +1,37 @@ +class Solution { + public int numIslands(char[][] grid) { + if(grid == null || grid.length == 0 || grid[0].length == 0){ + return 0; + } + int result = 0; + for(int i = 0; i < grid.length; i ++) { + for(int j = 0; j < grid[0].length; j ++) { + if(grid[i][j] == '1'){ + result++; + dfs(i, j, grid); + } + } + } + + return result; + } + + private void dfs(int row, int column, char[][] grid) { + grid[row][column] = 1; + if(row > 0 && grid[row - 1][column] == '1') { + dfs(row - 1, column, grid); + } + + if(row < grid.length - 1 && grid[row + 1][column] == '1') { + dfs(row + 1, column, grid); + } + + if(column > 0 && grid[row][column - 1] == '1') { + dfs(row, column - 1, grid); + } + + if(column < grid[0].length - 1 && grid[row][column + 1] == '1') { + dfs(row , column + 1, grid); + } + } +} From 6243edadc99f96c7374428a3063688051b25c956 Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:02:46 +0800 Subject: [PATCH 053/740] Create LeetCode_529_491.java --- Week 03/id_491/LeetCode_529_491.java | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Week 03/id_491/LeetCode_529_491.java diff --git a/Week 03/id_491/LeetCode_529_491.java b/Week 03/id_491/LeetCode_529_491.java new file mode 100644 index 000000000..e143a0491 --- /dev/null +++ b/Week 03/id_491/LeetCode_529_491.java @@ -0,0 +1,51 @@ +class Solution { + + public char[][] updateBoard(char[][] board, int[] click) { + if(board[click[0]][click[1]] == 'M') { + board[click[0]][click[1]] = 'X'; + return board; + } else { + // 深度优先搜索 + dfs(board, click[0], click[1]); + } + + return board; + } + + private void dfs(char[][] board, int row, int column) { + int m = 0; + boolean hasB = false; + for(int j = - 1; j <= 1; j++){ + for(int k = - 1; k <= 1; k++){ + if(row + j >= 0 && row + j < board.length + && column + k >= 0 && column + k < board[0].length) { + if(board[row + j][column + k] == 'M') { + m++; + } + + if(board[row + j][column + k] == 'B'){ + hasB = true; + } + } + } + } + + if(m > 0){ + board[row][column] = (char) ( m + '0'); + } else { + board[row][column] = 'B'; + for(int j = - 1; j <= 1; j++){ + for(int k = - 1; k <= 1; k++){ + if(row + j >= 0 && row + j < board.length + && column + k >= 0 && column + k < board[0].length) { + if(board[row + j][column + k] == 'E') { + dfs(board, row + j, column + k); + } + } + } + } + } + + + } +} From d53de5b69f92de28f579329797fa4fadd6d4829e Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:03:22 +0800 Subject: [PATCH 054/740] Create LeetCode_860_491.java --- Week 03/id_491/LeetCode_860_491.java | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Week 03/id_491/LeetCode_860_491.java diff --git a/Week 03/id_491/LeetCode_860_491.java b/Week 03/id_491/LeetCode_860_491.java new file mode 100644 index 000000000..5aa2c81b1 --- /dev/null +++ b/Week 03/id_491/LeetCode_860_491.java @@ -0,0 +1,29 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + int fiveBank = 0; + int tenBanke = 0; + for(int i = 0; i < bills.length; i++){ + if(bills[i] == 5){ + fiveBank++; + } else if(bills[i] == 10){ + if(fiveBank > 0) { + fiveBank--; + tenBanke++; + } else { + return false; + } + } else { + if(tenBanke > 0 && fiveBank > 0) { + fiveBank--; + tenBanke--; + } else if(fiveBank > 2){ + fiveBank -= 3; + } else { + return false; + } + } + } + + return true; + } +} From 91b21e73905a2a4a3ac8fcb8053dc77221d02eb8 Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:04:02 +0800 Subject: [PATCH 055/740] Create LeetCode_122_491.java --- Week 03/id_491/LeetCode_122_491.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Week 03/id_491/LeetCode_122_491.java diff --git a/Week 03/id_491/LeetCode_122_491.java b/Week 03/id_491/LeetCode_122_491.java new file mode 100644 index 000000000..b7cae53a2 --- /dev/null +++ b/Week 03/id_491/LeetCode_122_491.java @@ -0,0 +1,18 @@ +class Solution { + public int maxProfit(int[] prices) { + int result = 0; + int beginInt = 0; + for(int i = 0; i < prices.length; i ++){ + if(i == 0){ + beginInt = prices[i]; + } else if (prices[i] <= beginInt){ + beginInt = prices[i]; + } else { + result += prices[i] - beginInt; + beginInt = prices[i]; + } + } + + return result; + } +} From 109b0a48dc96220b9f855c3e1ca60c20af2c8be8 Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:04:22 +0800 Subject: [PATCH 056/740] Create LeetCode_455_491.java --- Week 03/id_491/LeetCode_455_491.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Week 03/id_491/LeetCode_455_491.java diff --git a/Week 03/id_491/LeetCode_455_491.java b/Week 03/id_491/LeetCode_455_491.java new file mode 100644 index 000000000..02d2378b8 --- /dev/null +++ b/Week 03/id_491/LeetCode_455_491.java @@ -0,0 +1,20 @@ +class Solution { + public int findContentChildren(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + int j = 0; + int i = 0; + int result = 0; + while(i < g.length && j < s.length){ + if(g[i] <= s[j]) { + i++; + j++; + result++; + } else { + j++; + } + } + + return result; + } +} From 1ebe68f6d234f5fa8b1d72fd29bb503909b67b3d Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:04:42 +0800 Subject: [PATCH 057/740] Create LeetCode_874_491.java --- Week 03/id_491/LeetCode_874_491.java | 109 +++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 Week 03/id_491/LeetCode_874_491.java diff --git a/Week 03/id_491/LeetCode_874_491.java b/Week 03/id_491/LeetCode_874_491.java new file mode 100644 index 000000000..6dc22d01e --- /dev/null +++ b/Week 03/id_491/LeetCode_874_491.java @@ -0,0 +1,109 @@ +class Solution { + public int robotSim(int[] commands, int[][] obstacles) { + Map> row = new HashMap<>(); + Map> column = new HashMap<>(); + int x = 0; + int y = 0; + int result = 0; + for(int i = 0; i < obstacles.length; i++) { + int tempRow = obstacles[i][0]; + int tempColumn = obstacles[i][1]; + + if(tempRow == 0 && tempColumn == 0){ + continue; + } + + if(!row.containsKey(tempRow)) { + row.put(tempRow, new ArrayList<>()); + } + row.get(tempRow).add(tempColumn); + + if(!column.containsKey(tempColumn)) { + column.put(tempColumn, new ArrayList<>()); + } + column.get(tempColumn).add(tempRow); + } + + int direction = 0; + for(int i = 0 ; i < commands.length; i++) { + if(commands[i] == -1) { + direction = (direction + 1) % 4; + } else if(commands[i] == -2) { + direction = (direction - 1 + 4) % 4; + } else { + int begin = 0; + int end = 0; + switch(direction) { + case 0: + begin = y; + end = y += commands[i]; + if(row.containsKey(x)){ + int stop = end; + for(int k = 0; k < row.get(x).size(); k++){ + if(row.get(x).get(k) > begin && row.get(x).get(k) <= end){ + if(stop >= row.get(x).get(k)){ + stop = row.get(x).get(k) - 1; + } + } + } + y = stop; + } + break; + case 1: + begin = x; + end = x += commands[i]; + if(column.containsKey(y)){ + int stop = end; + for(int k = 0; k < column.get(y).size(); k++){ + if(column.get(y).get(k) > begin && column.get(y).get(k) <= end){ + if(stop >= column.get(y).get(k)){ + stop = column.get(y).get(k) - 1; + } + } + } + x = stop; + } + break; + case 2: + begin = y; + end = y -= commands[i]; + if(row.containsKey(x)){ + int stop = end; + for(int k = 0; k < row.get(x).size(); k++){ + if(row.get(x).get(k) >= end && row.get(x).get(k) < begin){ + if(stop <= row.get(x).get(k)){ + stop = row.get(x).get(k) + 1; + } + } + } + y = stop; + } + break; + case 3: + begin = x; + end = x -= commands[i]; + if(column.containsKey(y)){ + int stop = end; + for(int k = 0; k < column.get(y).size(); k++){ + if(column.get(y).get(k) >= end && column.get(y).get(k) < begin){ + if(stop <= column.get(y).get(k)){ + stop = column.get(y).get(k) + 1; + } + } + } + x = stop; + } + break; + } + + int tempResult = x * x + y * y; + if(tempResult > result) { + result = tempResult; + } + } + + + } + return result; + } +} From 846f6b2adde9c72e5e709a9afe7c98178eb15684 Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:05:10 +0800 Subject: [PATCH 058/740] Create LeetCode_55_491.java --- Week 03/id_491/LeetCode_55_491.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Week 03/id_491/LeetCode_55_491.java diff --git a/Week 03/id_491/LeetCode_55_491.java b/Week 03/id_491/LeetCode_55_491.java new file mode 100644 index 000000000..f23a8d569 --- /dev/null +++ b/Week 03/id_491/LeetCode_55_491.java @@ -0,0 +1,25 @@ +class Solution { + public boolean canJump(int[] nums) { + if(nums.length == 1){ + return true; + } + + for (int i = nums.length - 1; i >= 0; i--) { + if (nums[i] == 0) { + boolean canReach = false; + for(int j = i - 1; j >= 0; j-- ){ + if(nums[j] + j > i || nums[j] + j == nums.length - 1){ + canReach = true; + break; + } + } + + if(!canReach) { + return false; + } + } + } + + return true; + } +} From 9d9852030fcaabb4bf4a7c7500fff58275266c6e Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:05:32 +0800 Subject: [PATCH 059/740] Create LeetCode_45_491.java --- Week 03/id_491/LeetCode_45_491.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Week 03/id_491/LeetCode_45_491.java diff --git a/Week 03/id_491/LeetCode_45_491.java b/Week 03/id_491/LeetCode_45_491.java new file mode 100644 index 000000000..4daf30822 --- /dev/null +++ b/Week 03/id_491/LeetCode_45_491.java @@ -0,0 +1,17 @@ +class Solution { + public int jump(int[] nums) { + if(nums.length == 1) return 0; + int reach = 0; + int nextreach = nums[0]; + int step = 0; + for(int i = 0; i= nums.length-1) return (step+1); + if(i == reach){ + step++; + reach = nextreach; + } + } + return step; + } +} From 9290961342f04dd5a5ba2785ddd1293141bea7fc Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:06:17 +0800 Subject: [PATCH 060/740] Create LeetCode_33_491.java --- Week 03/id_491/LeetCode_33_491.java | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Week 03/id_491/LeetCode_33_491.java diff --git a/Week 03/id_491/LeetCode_33_491.java b/Week 03/id_491/LeetCode_33_491.java new file mode 100644 index 000000000..655e7da8e --- /dev/null +++ b/Week 03/id_491/LeetCode_33_491.java @@ -0,0 +1,44 @@ +class Solution { + public int search(int[] nums, int target) { + int minIndex = findMin(nums); + int steps = nums.length - minIndex; + int left = 0; + int right = nums.length - 1; + while(left <= right) { + int mid = (left + right) / 2; + int realMid = getRealIndex(nums.length, steps, mid); + if(nums[realMid] < target){ + left = mid + 1; + } else if(nums[realMid] > target) { + right = mid - 1; + } else { + return realMid; + } + } + + return -1; + } + + private int getRealIndex(int length, int steps, int index) { + return (index - steps + length) % length; + } + + private int findMin(int[] nums) { + int left = 0; + int right = nums.length - 1; + while(left <= right) { + int mid = (left + right) / 2; + if(nums[left] <= nums[mid] && nums[mid] <= nums[right]) { + return left; + } else if(nums[left] >= nums[mid] && nums[mid] >= nums[right]) { + return right; + } else if(nums[left] <= nums[mid] && nums[mid] >= nums[right]) { + left = mid; + } else { + right = mid; + } + } + + return left; + } +} From 81418489a9ddc250a5cee06f30b20f2bc6d2f6c1 Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:06:40 +0800 Subject: [PATCH 061/740] Create LeetCode_74_491.java --- Week 03/id_491/LeetCode_74_491.java | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Week 03/id_491/LeetCode_74_491.java diff --git a/Week 03/id_491/LeetCode_74_491.java b/Week 03/id_491/LeetCode_74_491.java new file mode 100644 index 000000000..8033cac20 --- /dev/null +++ b/Week 03/id_491/LeetCode_74_491.java @@ -0,0 +1,23 @@ +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + if(matrix.length == 0 || matrix[0].length == 0) { + return false; + } + int left = 0; + int right = matrix.length * matrix[0].length - 1; + while(left <= right) { + int mid = (left + right) / 2; + int row = mid / matrix[0].length; + int column = mid % matrix[0].length; + if(matrix[row][column] < target){ + left = mid + 1; + } else if(matrix[row][column] > target) { + right = mid - 1; + } else { + return true; + } + } + + return false; + } +} From 8415114177743adaaf0140632d35845d5102848d Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 11:07:03 +0800 Subject: [PATCH 062/740] Create LeetCode_153_491.java --- Week 03/id_491/LeetCode_153_491.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Week 03/id_491/LeetCode_153_491.java diff --git a/Week 03/id_491/LeetCode_153_491.java b/Week 03/id_491/LeetCode_153_491.java new file mode 100644 index 000000000..56db6ee59 --- /dev/null +++ b/Week 03/id_491/LeetCode_153_491.java @@ -0,0 +1,20 @@ +class Solution { + public int findMin(int[] nums) { + int left = 0; + int right = nums.length - 1; + while(left <= right) { + int mid = (left + right) / 2; + if(nums[left] <= nums[mid] && nums[mid] <= nums[right]) { + return nums[left]; + } else if(nums[left] >= nums[mid] && nums[mid] >= nums[right]) { + return nums[right]; + } else if(nums[left] <= nums[mid] && nums[mid] >= nums[right]) { + left = mid; + } else { + right = mid; + } + } + + return nums[left]; + } +} From 3172976e04fd14f687d5abaa078b4717cb1bfc90 Mon Sep 17 00:00:00 2001 From: jimipage Date: Sat, 2 Nov 2019 11:21:19 +0800 Subject: [PATCH 063/740] 386-Week 03 386-Week 03 --- Week 03/id_386/LeetCode_153_386.java | 8 ++++ Week 03/id_386/LeetCode_455_386.java | 28 ++++++++++++ Week 03/id_386/LeetCode_860_386.java | 66 ++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 Week 03/id_386/LeetCode_153_386.java create mode 100644 Week 03/id_386/LeetCode_455_386.java create mode 100644 Week 03/id_386/LeetCode_860_386.java diff --git a/Week 03/id_386/LeetCode_153_386.java b/Week 03/id_386/LeetCode_153_386.java new file mode 100644 index 000000000..fdb95a661 --- /dev/null +++ b/Week 03/id_386/LeetCode_153_386.java @@ -0,0 +1,8 @@ +import java.util.Arrays; + +class Solution { + public int findMin(int[] nums) { + Arrays.sort(nums); + return nums[0]; + } +} diff --git a/Week 03/id_386/LeetCode_455_386.java b/Week 03/id_386/LeetCode_455_386.java new file mode 100644 index 000000000..2a0302a99 --- /dev/null +++ b/Week 03/id_386/LeetCode_455_386.java @@ -0,0 +1,28 @@ +import java.util.Arrays; + +class Solution { + public int findContentChildren(int[] g, int[] s) { + int res = 0; + + if(g == null || s == null) { + return res; + } + + Arrays.sort(g); + Arrays.sort(s); + + for (int i=0, j = 0; i < g.length && j < s.length;) { + + if (g[i] <= s[j]) { + i++; + j++; + res++; + } else { + j++; + } + + } + + return res; + } +} diff --git a/Week 03/id_386/LeetCode_860_386.java b/Week 03/id_386/LeetCode_860_386.java new file mode 100644 index 000000000..7d2bc3ca9 --- /dev/null +++ b/Week 03/id_386/LeetCode_860_386.java @@ -0,0 +1,66 @@ +import java.util.HashMap; + +class Solution { + public boolean lemonadeChange(int[] bills) { + Map dollarsMap = new HashMap(); + boolean status = false; + int change = 0; + + dollarsMap.put(5, 0); + dollarsMap.put(10, 0); + + + if (bills[0] == 10 || bills[0] == 20) { + return status; + } + + for (int i = 0; i < bills.length; i++) { + System.out.println(bills[i]); + if (bills[i] == 5) { + dollarsMap.put(5, dollarsMap.get(5) + 1); + status = true; + } + + if (bills[i] == 10) { + + dollarsMap.put(10, dollarsMap.get(10) + 1); + + if (dollarsMap.get(5) == 0) { + return false; + } else if (dollarsMap.get(5) - 1 >= 0) { + dollarsMap.put(5, dollarsMap.get(5) - 1); + status = true; + } + + } + + if (bills[i] == 20) { + + + // System.out.println("5+, " + dollarsMap.get(5)); + // System.out.println("10+, " + dollarsMap.get(10)); + + if (dollarsMap.get(5) == 0) { + return false; + } + + if (dollarsMap.get(5) >= 3 && dollarsMap.get(10) == 0) { + dollarsMap.put(5, dollarsMap.get(5) - 3); + status = true; + } else if (dollarsMap.get(5) < 3 && dollarsMap.get(10) == 0) { + return false; + } + + + if (dollarsMap.get(5) >= 1 && dollarsMap.get(10) >=1) { + dollarsMap.put(5, dollarsMap.get(5) - 1); + dollarsMap.put(10, dollarsMap.get(10) - 1); + status = true; + } else { + status = false; + } + } + } + return status; + } +} From 108840743e49f5e51ebc4703a51476185c841234 Mon Sep 17 00:00:00 2001 From: "wendy.gu" Date: Sat, 2 Nov 2019 12:11:54 +0800 Subject: [PATCH 064/740] =?UTF-8?q?=E7=AE=97=E6=B3=95=E9=A2=98=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 02/id_256/LeetCode_236_256.js | 37 +++++++++++++++++++ Week 02/id_256/LeetCode_50_256.js | 57 ++++++++++++++++++++++++++++++ Week 03/id_256/LeetCode_105_256.js | 41 +++++++++++++++++++++ Week 03/id_256/LeetCode_127_256.js | 54 ++++++++++++++++++++++++++++ Week 03/id_256/LeetCode_70_256.js | 33 +++++++++++++++++ Week 03/id_256/LeetCode_77_256.js | 33 +++++++++++++++++ Week 03/id_256/LeetCode_860_256.js | 34 ++++++++++++++++++ 7 files changed, 289 insertions(+) create mode 100644 Week 02/id_256/LeetCode_236_256.js create mode 100644 Week 02/id_256/LeetCode_50_256.js create mode 100644 Week 03/id_256/LeetCode_105_256.js create mode 100644 Week 03/id_256/LeetCode_127_256.js create mode 100644 Week 03/id_256/LeetCode_70_256.js create mode 100644 Week 03/id_256/LeetCode_77_256.js create mode 100644 Week 03/id_256/LeetCode_860_256.js diff --git a/Week 02/id_256/LeetCode_236_256.js b/Week 02/id_256/LeetCode_236_256.js new file mode 100644 index 000000000..3fcb17109 --- /dev/null +++ b/Week 02/id_256/LeetCode_236_256.js @@ -0,0 +1,37 @@ +/* + * @lc app=leetcode.cn id=236 lang=javascript + * + * [236] 二叉树的最近公共祖先 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * function TreeNode(val) { + * this.val = val; + * this.left = this.right = null; + * } + */ +/** + * @param {TreeNode} root + * @param {TreeNode} p + * @param {TreeNode} q + * @return {TreeNode} + */ +var lowestCommonAncestor = function(root, p, q) { + this.node = null; + recursionTree(root, q, p); + return this.node; + }; + let recursionTree = function(node, p, q) { + if (!node) return false; + let left = recursionTree(node.left, p, q) ? 1 : 0; + let right = recursionTree(node.right, p, q) ? 1 : 0; + let mid = (node == p || node == q) ? 1 : 0; + if (left + right + mid >= 2) { + this.node = node; + } + return (left + right + mid > 0); + }; + // @lc code=end + \ No newline at end of file diff --git a/Week 02/id_256/LeetCode_50_256.js b/Week 02/id_256/LeetCode_50_256.js new file mode 100644 index 000000000..a37eaa89b --- /dev/null +++ b/Week 02/id_256/LeetCode_50_256.js @@ -0,0 +1,57 @@ +/* + * @lc app=leetcode.cn id=50 lang=javascript + * + * [50] Pow(x, n) + */ + +// @lc code=start +/** + * @param {number} x + * @param {number} n + * @return {number} + */ +var myPow = function(x, n) { + //暴力 + // if(n == 0) return 1; + // let result = x; + // let temp = n; + // if(n < 0) { + // temp = Math.abs(n); + // } + // while(temp > 1) { + // result *= x; + // temp--; + // } + // return n < 0 ? 1/result : result; + // 暴力二 + // if(n == 0) return 1; + // let N = n; + // if(n < 0) { + // N = -n; + // x = 1 / x; + // } + // let result = 1; + // for (let i = 0; i < N; i++) { + // result *= x; + // } + // return result; + // 快递递归幂 + if (n < 0) { + n = -n; + x = 1 / x; + } + return fastPow(x, n); + }; + var fastPow = function(x, n) { + if (n == 0) { + return 1; + } + let half = fastPow(x, parseInt(n / 2)); + if (n % 2 == 0) { + return half * half; + } else { + return half * half * x; + } + }; + // @lc code=end + \ No newline at end of file diff --git a/Week 03/id_256/LeetCode_105_256.js b/Week 03/id_256/LeetCode_105_256.js new file mode 100644 index 000000000..ae35dc273 --- /dev/null +++ b/Week 03/id_256/LeetCode_105_256.js @@ -0,0 +1,41 @@ +/* + * @lc app=leetcode.cn id=105 lang=javascript + * + * [105] 从前序与中序遍历序列构造二叉树 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * function TreeNode(val) { + * this.val = val; + * this.left = this.right = null; + * } + */ +/** + * @param {number[]} preorder 前序遍历 根 左 右 + * @param {number[]} inorder 中序遍历 左 根 右 + * @return {TreeNode} + */ +var buildTree = function(preOrder, inOrder) { + if (inOrder.length == 0 && preOrder.length == 0) { + return null; + } + let root = {}; + // 根据前序,中序规则,preOrder的第一个一定是根 + root.val = preOrder[0]; + let rootIdxInOrder = inOrder.indexOf(root.val); + // 左子树的中序遍历 即根左边的列表 + let leftTreeInOrder = inOrder.slice(0, rootIdxInOrder); + // 左子树的前序遍历 第一个是根跳过第一个,后续与 中序列表个数一致。 + let leftTreePreOrder = preOrder.slice(1, leftTreeInOrder.length + 1); + root.left = buildTree(leftTreePreOrder, leftTreeInOrder); + // 右子树的中序遍历 + let rightTreeInOrder = inOrder.slice(rootIdxInOrder + 1); + let rightTreePreOrder = preOrder.slice(rootIdxInOrder + 1); + root.right = buildTree(rightTreePreOrder, rightTreeInOrder); + console.log(root); + return root; + } + // @lc code=end + \ No newline at end of file diff --git a/Week 03/id_256/LeetCode_127_256.js b/Week 03/id_256/LeetCode_127_256.js new file mode 100644 index 000000000..3a3fef5b9 --- /dev/null +++ b/Week 03/id_256/LeetCode_127_256.js @@ -0,0 +1,54 @@ +/* + * @lc app=leetcode.cn id=127 lang=javascript + * + * [127] 单词接龙 + */ + +// @lc code=start +/** + * @param {string} beginWord + * @param {string} endWord + * @param {string[]} wordList + * @return {number} + */ +var ladderLength = function(beginWord, endWord, wordList) { + // hit cog ['hot','dot','dog','lot','log','cog'] + let beginIndex = wordList.indexOf(beginWord); + if(beginIndex >= 0) { + wordList.splice(beginIndex, 1); + } + let endIndex = wordList.indexOf(endWord); + if(endIndex < 0 || wordList.length <= 0)return 0; + let queue = [beginWord]; + let res = 2; + while(queue.length > 0) { + let len = queue.length; + for (let i = 0; i < len; i++) { + let str = queue.shift(); + for(let j = 0; j < wordList.length; j++) { + if (diff(str, wordList[j])) { + let newStr = wordList.splice(j--,1)[0]; + if(newStr === endWord){ + return res; + }else{ + queue.push(newStr); + } + } + } + } + res++; + } + return 0; + function diff(str1, str2) { + let res = 0; + for (let i = 0; i < str1.length; i++) { + if (str1[i] !== str2[i]) { + res += 1; + } + if(res>1)return false; + } + return true; + } +}; +// @lc code=end + diff --git a/Week 03/id_256/LeetCode_70_256.js b/Week 03/id_256/LeetCode_70_256.js new file mode 100644 index 000000000..c09484179 --- /dev/null +++ b/Week 03/id_256/LeetCode_70_256.js @@ -0,0 +1,33 @@ +/* + * @lc app=leetcode.cn id=70 lang=javascript + * + * [70] 爬楼梯 + */ + +// @lc code=start +/** + * @param {number} n + * @return {number} + */ +var climbStairs = function(n) { + //方法一 暴力 +// let dfs = function(start, n) { +// if (start > n) { +// return 0; +// } else if (start === n) { +// return 1; +// } +// return dfs(start + 1, n) + dfs(start + 2, n); +// }; +// return dfs(0, n); + //方法二 + let valueMap = {}; + valueMap['1'] = 1; + valueMap['2'] = 2; + for (let i = 3; i <= n; i ++) { + valueMap[`${i}`] = valueMap[`${i-1}`] + valueMap[`${i-2}`]; + } + return valueMap[`${n}`]; +}; + +// @lc code=end diff --git a/Week 03/id_256/LeetCode_77_256.js b/Week 03/id_256/LeetCode_77_256.js new file mode 100644 index 000000000..b27b29171 --- /dev/null +++ b/Week 03/id_256/LeetCode_77_256.js @@ -0,0 +1,33 @@ +/* + * @lc app=leetcode.cn id=77 lang=javascript + * + * [77] 组合 + */ + +// @lc code=start +/** + * @param {number} n + * @param {number} k + * @return {number[][]} + */ +var combine = function(n, k) { + //循环匹配 + if(k == 0 || k > n) return [[]]; + let result = []; + let temp = []; + return dfs(1, n, k, result, temp); + }; + var dfs = function(start, n, k, result, temp) { + if(temp.length == k) { + result.push([...temp]); + return; + } + for (let i = start; i < n+1; i++) { + temp.push(i); + dfs(i+1, n, k, result, temp); + temp.pop(); + } + return result; + } + // @lc code=end + \ No newline at end of file diff --git a/Week 03/id_256/LeetCode_860_256.js b/Week 03/id_256/LeetCode_860_256.js new file mode 100644 index 000000000..105befaec --- /dev/null +++ b/Week 03/id_256/LeetCode_860_256.js @@ -0,0 +1,34 @@ +/* + * @lc app=leetcode.cn id=860 lang=javascript + * + * [860] 柠檬水找零 + */ + +// @lc code=start +/** + * @param {number[]} bills + * @return {boolean} + */ +var lemonadeChange = function(bills) { + let five = 0; + let ten = 0; + for (let i = 0; i < bills.length; i++) { + if(bills[i] === 5) { + five++; + } else if (bills[i] === 10) { + five--; + ten++; + } else if (bills[i] === 20) { + if(ten > 0 && five > 0) { + ten --; + five --; + } else{ + five -= 3; + } + } + if(five < 0 || ten < 0) return false; + } + return true; +}; +// @lc code=end + From 96c6cda976f18d02e7581af9ef021267a0449755 Mon Sep 17 00:00:00 2001 From: tukaiqiang Date: Sat, 2 Nov 2019 16:32:57 +0800 Subject: [PATCH 065/740] 346-Week 02 --- .idea/uiDesigner.xml | 124 ++++++++++++++++++++++++ Week 02/id_346/GroupAnagrams_49.java | 28 ++++++ Week 02/id_346/InorderTraversal_94.java | 38 ++++++++ Week 02/id_346/IsAnagram_242.java | 31 ++++++ Week 02/id_346/LevelOrder_429.java | 51 ++++++++++ Week 02/id_346/NOTE.md | 5 +- Week 02/id_346/Permute_46.java | 42 ++++++++ Week 02/id_346/TwoSum_1.java | 26 +++++ 8 files changed, 343 insertions(+), 2 deletions(-) create mode 100644 .idea/uiDesigner.xml create mode 100644 Week 02/id_346/GroupAnagrams_49.java create mode 100644 Week 02/id_346/InorderTraversal_94.java create mode 100644 Week 02/id_346/IsAnagram_242.java create mode 100644 Week 02/id_346/LevelOrder_429.java create mode 100644 Week 02/id_346/Permute_46.java create mode 100644 Week 02/id_346/TwoSum_1.java diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 000000000..e96534fb2 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Week 02/id_346/GroupAnagrams_49.java b/Week 02/id_346/GroupAnagrams_49.java new file mode 100644 index 000000000..26e0d6136 --- /dev/null +++ b/Week 02/id_346/GroupAnagrams_49.java @@ -0,0 +1,28 @@ +import java.util.*; + +/** + * @auther: TKQ + * @Title: GroupAnagrams_49 + * @Copyright: Copyright (c) 2019 + * @Description: + * @Company: + * @Created: 2019-11-02 10:04 + */ +public class GroupAnagrams_49 { + public List> groupAnagrams(String[] strs) { + if(strs.length == 0){ + return new ArrayList<>(); + } + Map> result = new HashMap<>(); + for(String word:strs){ + char[] c = word.toCharArray(); + Arrays.sort(c); + String key = String.valueOf(c); + if(!result.containsKey(key)){ + result.put(key,new ArrayList()); + } + result.get(key).add(word); + } + return new ArrayList(result.values()); + } +} diff --git a/Week 02/id_346/InorderTraversal_94.java b/Week 02/id_346/InorderTraversal_94.java new file mode 100644 index 000000000..9cbc02785 --- /dev/null +++ b/Week 02/id_346/InorderTraversal_94.java @@ -0,0 +1,38 @@ +import java.util.ArrayList; +import java.util.List; + +/** + * @auther: TKQ + * @Title: InorderTraversal_94 + * @Copyright: Copyright (c) 2019 + * @Description: + * @Company: + * @Created: 2019-11-02 10:06 + */ +public class InorderTraversal_94 { + + public List inorderTraversal(TreeNode root) { + List result = new ArrayList(); + helper(root,result); + return result; + } + + public void helper(TreeNode root,List result){ + if(root!=null){ + if(root.left!=null){ + helper(root.left,result); + } + result.add(root.val); + if(root.right!=null){ + helper(root.right,result); + } + } + } + + public class TreeNode { + int val; + TreeNode left; + TreeNode right; + TreeNode(int x) { val = x; } + } +} diff --git a/Week 02/id_346/IsAnagram_242.java b/Week 02/id_346/IsAnagram_242.java new file mode 100644 index 000000000..d50a17bf0 --- /dev/null +++ b/Week 02/id_346/IsAnagram_242.java @@ -0,0 +1,31 @@ +package com; + +/** + * @auther: TKQ + * @Title: IsAnagram_242 + * @Copyright: Copyright (c) 2019 + * @Description: + * @Company: + * @Created: 2019-11-02 10:02 + */ +public class IsAnagram_242 { + + public boolean isAnagram(String s, String t) { + if(s.length()!=t.length()){ + return false; + } + char[] s_array = s.toCharArray(); + char[] t_array = t.toCharArray(); + int[] temp = new int[26]; + for (int i = 0; i < s.length(); i++) { + temp[s.charAt(i) - 'a']++; + temp[t.charAt(i) - 'a']--; + } + for (int i = 0; i < temp.length; i++) { + if(temp[i]!=0){ + return false; + } + } + return true; + } +} diff --git a/Week 02/id_346/LevelOrder_429.java b/Week 02/id_346/LevelOrder_429.java new file mode 100644 index 000000000..50272cb6a --- /dev/null +++ b/Week 02/id_346/LevelOrder_429.java @@ -0,0 +1,51 @@ +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + +/** + * @auther: TKQ + * @Title: LevelOrder_429 + * @Copyright: Copyright (c) 2019 + * @Description: + * @Company: + * @Created: 2019-11-02 12:17 + */ +public class LevelOrder_429 { + + public List> levelOrder(Node root) { + if(root == null){ + return Collections.emptyList(); + } + List> result = new ArrayList<>(); + LinkedList queue = new LinkedList<>(); + queue.offer(root); + while(!queue.isEmpty()){ + int size = queue.size(); + List curRes = new ArrayList<>(size); + for(int i=size;i>0;i--){ + Node node = queue.poll(); + curRes.add(node.val); + if(node.children!=null){ + for(int j=0;j children; + + public Node() {} + + public Node(int _val,List _children) { + val = _val; + children = _children; + } + }; +} diff --git a/Week 02/id_346/NOTE.md b/Week 02/id_346/NOTE.md index a6321d6e2..7c556fe28 100644 --- a/Week 02/id_346/NOTE.md +++ b/Week 02/id_346/NOTE.md @@ -1,4 +1,5 @@ # NOTE - - +这段时间忙着找工作,实在是比较忙,直到现在才有时间把上周的题补上 +自己算法的基础比较差,到后边剪枝,回溯这些感觉答案都得来来回回看好多遍才能看懂 +明显感觉根本没有时间去五遍刷题,等忙完这段时间自己一定多花时间来整这一块 diff --git a/Week 02/id_346/Permute_46.java b/Week 02/id_346/Permute_46.java new file mode 100644 index 000000000..5e1a95db0 --- /dev/null +++ b/Week 02/id_346/Permute_46.java @@ -0,0 +1,42 @@ +package com; + +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +/** + * @auther: TKQ + * @Title: Permute_46 + * @Copyright: Copyright (c) 2019 + * @Description: + * @Company: + * @Created: 2019-11-02 16:26 + */ +public class Permute_46 { + public List> permute(int[] nums) { + int len = nums.length; + List> res = new ArrayList<>(); + boolean[] used = new boolean[len]; + if(len == 0){ + return res; + } + genPermution(nums,used,0,len,new Stack<>(),res); + return res; + } + + private void genPermution(int[] nums,boolean[] visited,int curSize,int len,Stack path,List> res){ + if(curSize == len){ + res.add(new ArrayList<>(path)); + return; + } + for(int i = 0;i map = new HashMap<>(); + for (int i = 0; i < nums.length; i++) { + if(map.containsKey(nums[i])){ + return new int[]{map.get(nums[i]),i}; + } + map.put(target - nums[i],i); + } + return null; + } +} From 7c8b7ed9fa38ef962d4ae3be07a6a2178103f991 Mon Sep 17 00:00:00 2001 From: Pauley Liu Date: Sat, 2 Nov 2019 17:58:38 +0800 Subject: [PATCH 066/740] 511-Week 03 --- Week 03/id_551/LeetCode_122_551.swift | 20 ++++++++++++++ Week 03/id_551/LeetCode_33_551.swift | 36 +++++++++++++++++++++++++ Week 03/id_551/LeetCode_74_551.swift | 30 +++++++++++++++++++++ Week 03/id_551/LeetCode_860_551.swift | 39 +++++++++++++++++++++++++++ 4 files changed, 125 insertions(+) create mode 100644 Week 03/id_551/LeetCode_122_551.swift create mode 100644 Week 03/id_551/LeetCode_33_551.swift create mode 100644 Week 03/id_551/LeetCode_74_551.swift create mode 100644 Week 03/id_551/LeetCode_860_551.swift diff --git a/Week 03/id_551/LeetCode_122_551.swift b/Week 03/id_551/LeetCode_122_551.swift new file mode 100644 index 000000000..a113a207a --- /dev/null +++ b/Week 03/id_551/LeetCode_122_551.swift @@ -0,0 +1,20 @@ +class Solution { + func maxProfit(_ prices: [Int]) -> Int { + // 贪心算法 + // 贪心前提:每天只要涨就买卖,跌就不买卖,榨干每一次上涨,最终得到最优解 + // 子过程: if prices[i] > prices[i -1] { profit += xx } + + if prices.count < 2 { + // 少于 2 个价格,无意义 + return 0 + } + + var profit = 0 + for i in 1.. prices[i - 1] { + profit += prices[i] - prices[i - 1] + } + } + return profit + } +} diff --git a/Week 03/id_551/LeetCode_33_551.swift b/Week 03/id_551/LeetCode_33_551.swift new file mode 100644 index 000000000..064ad0953 --- /dev/null +++ b/Week 03/id_551/LeetCode_33_551.swift @@ -0,0 +1,36 @@ +class Solution { + func search(_ nums: [Int], _ target: Int) -> Int { + // 旋转排序数组:有限制的有序数组, + // 要求:O(logn), 不能 for 一遍 + // 二分查找的前提:1、单调性;2、有界限(bounded);3、能够通过索引访问; + // 关键点:除了某个节点突然下降外是升序数组,1. 找单边有序(nums[mid] < nums[hi], 则右边有序) 2.规约 + var lo = 0 + var hi = nums.count - 1 + while (lo <= hi) { + var mid = lo + (hi - lo) / 2 + if target == nums[mid] { + return mid + } + if nums[mid] < nums[hi] { + // 右边有序 + if target <= nums[hi] && target > nums[mid] { + // target 在右边,开始向右规约 + lo = mid + 1 + } else { + // target 在左边,开始规约 + hi = mid - 1 + } + } else { + // 左边有序 + if target >= nums[lo] && target < nums[mid] { + // target 在左边,开始向左规约 + hi = mid - 1 + } else { + // target 在右边,开始向右规约 + lo = mid + 1 + } + } + } + return -1 + } +} diff --git a/Week 03/id_551/LeetCode_74_551.swift b/Week 03/id_551/LeetCode_74_551.swift new file mode 100644 index 000000000..65d652d5a --- /dev/null +++ b/Week 03/id_551/LeetCode_74_551.swift @@ -0,0 +1,30 @@ +class Solution { + func searchMatrix(_ matrix: [[Int]], _ target: Int) -> Bool { + // 当成虚拟有序数组处理,二分查找 + // low = 0, high = m * n - 1, mid = low + (high - low) / 2, row_mid = mid / n, clomun_mid = mid % n + + var m = matrix.count + if m == 0 { return false } + var n = matrix[0].count + + var lo = 0 + var hi = m * n - 1 + + while lo <= hi { + var mid = (lo + hi) / 2 + var val = matrix[mid / n][mid % n] + + if target == val { + return true + } + + if target > val && target <= matrix[hi / n][hi % n] { + lo = mid + 1 + } else { + hi = mid - 1 + } + } + + return false + } +} diff --git a/Week 03/id_551/LeetCode_860_551.swift b/Week 03/id_551/LeetCode_860_551.swift new file mode 100644 index 000000000..cafce9e88 --- /dev/null +++ b/Week 03/id_551/LeetCode_860_551.swift @@ -0,0 +1,39 @@ +class Solution { + func lemonadeChange(_ bills: [Int]) -> Bool { + // 贪心算法 + + // 贪心法前提:20 % 5,10 % 5 均为 0,所以子问题实现局部最优解,可以获得最终结果最优 + + /* 局部最优解: + 1、5 元不需要找零; + 2、10 元, 如果有 5 元则找零 5 元; + 3、20 元,如果有 10 元和 5元,则找零 10 元和 5 元,或者 3 个 5元; + */ + var ten: Int = 0 + var five: Int = 0 + + for bill in bills { + if bill == 5 { + five += 1 + } else if bill == 10 { + if five > 0 { + ten += 1 + five -= 1 + } else { + return false + } + } else if bill == 20 { + if ten > 0 && five > 0 { + ten -= 1 + five -= 1 + } else if five > 2 { + five -= 3 + } else { + return false + } + } + } + + return true + } +} From 6246973c2648d668e6a8a04aa4afd61f2013b0c1 Mon Sep 17 00:00:00 2001 From: cool Date: Sat, 2 Nov 2019 18:18:03 +0800 Subject: [PATCH 067/740] =?UTF-8?q?33.=20=E6=90=9C=E7=B4=A2=E6=97=8B?= =?UTF-8?q?=E8=BD=AC=E6=8E=92=E5=BA=8F=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_251/LeetCode_33_251.py | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Week 03/id_251/LeetCode_33_251.py diff --git a/Week 03/id_251/LeetCode_33_251.py b/Week 03/id_251/LeetCode_33_251.py new file mode 100644 index 000000000..3c5c11c1a --- /dev/null +++ b/Week 03/id_251/LeetCode_33_251.py @@ -0,0 +1,39 @@ +# 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 +# +# ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 +# +# 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 +# +# 你可以假设数组中不存在重复的元素。 +# +# 你的算法时间复杂度必须是 O(log n) 级别。 +# +# 示例 1: +# +# 输入: nums = [4,5,6,7,0,1,2], target = 0 +# 输出: 4 +# +# +# 示例 2: +# +# 输入: nums = [4,5,6,7,0,1,2], target = 3 +# 输出: -1 +# Related Topics 数组 二分查找 + + +# leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def search(self, nums, target): + """ + :type nums: List[int] + :type target: int + :rtype: int + """ + left, right = 0, len(nums) - 1 + while left < right: + mid = left + (right - left) // 2 + if (nums[0] > target) ^ (nums[0] > nums[mid]) ^ (target > nums[mid]): + left = mid + 1 + else: + right = mid + return left if target in nums[left: left + 1] else -1 From dd3f63726018483ed253b0c4ece688c1e17888dd Mon Sep 17 00:00:00 2001 From: cool Date: Sat, 2 Nov 2019 18:30:01 +0800 Subject: [PATCH 068/740] =?UTF-8?q?33.=20=E6=90=9C=E7=B4=A2=E6=97=8B?= =?UTF-8?q?=E8=BD=AC=E6=8E=92=E5=BA=8F=E6=95=B0=E7=BB=84=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=87=A0=E4=B8=AA=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_251/LeetCode_33_251.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Week 03/id_251/LeetCode_33_251.py b/Week 03/id_251/LeetCode_33_251.py index 3c5c11c1a..853e9ebbb 100644 --- a/Week 03/id_251/LeetCode_33_251.py +++ b/Week 03/id_251/LeetCode_33_251.py @@ -37,3 +37,10 @@ def search(self, nums, target): else: right = mid return left if target in nums[left: left + 1] else -1 + + +if __name__ == '__main__': + s = Solution() + print(s.search([], 0)) + print(s.search([1, 2, 3], 2)) + print(s.search([4, 5, 6, 0, 1, 3], 0)) From 3394b9ab32b11512adf4c2f3aa8ad15b76e7b691 Mon Sep 17 00:00:00 2001 From: RDCynthia Date: Sat, 2 Nov 2019 19:03:21 +0800 Subject: [PATCH 069/740] week 3 homework commit --- Week 03/id_241/LeetCode_122_241.java | 12 +++++ Week 03/id_241/LeetCode_153_241.java | 23 ++++++++++ Week 03/id_241/LeetCode_200_241.java | 65 ++++++++++++++++++++++++++++ Week 03/id_241/LeetCode_33_241.java | 52 ++++++++++++++++++++++ Week 03/id_241/LeetCode_455_241.java | 40 +++++++++++++++++ Week 03/id_241/LeetCode_529_241.java | 53 +++++++++++++++++++++++ Week 03/id_241/LeetCode_55_241.java | 12 +++++ Week 03/id_241/LeetCode_74_241.java | 29 +++++++++++++ 8 files changed, 286 insertions(+) create mode 100644 Week 03/id_241/LeetCode_122_241.java create mode 100644 Week 03/id_241/LeetCode_153_241.java create mode 100644 Week 03/id_241/LeetCode_200_241.java create mode 100644 Week 03/id_241/LeetCode_33_241.java create mode 100644 Week 03/id_241/LeetCode_455_241.java create mode 100644 Week 03/id_241/LeetCode_529_241.java create mode 100644 Week 03/id_241/LeetCode_55_241.java create mode 100644 Week 03/id_241/LeetCode_74_241.java diff --git a/Week 03/id_241/LeetCode_122_241.java b/Week 03/id_241/LeetCode_122_241.java new file mode 100644 index 000000000..849b2c521 --- /dev/null +++ b/Week 03/id_241/LeetCode_122_241.java @@ -0,0 +1,12 @@ +import java.util.*; +/** + * 买卖股票的最佳时机 II + */ +public class Solution { + public int maxProfit(int[] prices) { + int sum = 0; + for (int i = 1; i < prices.length; i++) + if (prices[i] > prices[i - 1]) sum += prices[i] - prices[i - 1]; + return sum; + } +} \ No newline at end of file diff --git a/Week 03/id_241/LeetCode_153_241.java b/Week 03/id_241/LeetCode_153_241.java new file mode 100644 index 000000000..7e847befb --- /dev/null +++ b/Week 03/id_241/LeetCode_153_241.java @@ -0,0 +1,23 @@ +import java.util.*; +/** + * 寻找旋转排序数组中的最小值 + */ +public class Solution { + /** + * 寻找旋转排序数组中的最小值 + */ + public int findMin(int[] nums) { + int left = 0; + int right = nums.length - 1; + while (left < right) { + if (left + 1 == right) { + if (nums[right] > nums[left]) return nums[left]; + break; + } + int mid = (left + right) >> 1; + if (nums[mid] < nums[right]) right = mid; + else left = mid; + } + return nums[right]; + } +} \ No newline at end of file diff --git a/Week 03/id_241/LeetCode_200_241.java b/Week 03/id_241/LeetCode_200_241.java new file mode 100644 index 000000000..8a59320ae --- /dev/null +++ b/Week 03/id_241/LeetCode_200_241.java @@ -0,0 +1,65 @@ +import java.util.*; +/** + * 岛屿数量 + */ +public class Solution { + /** + * 岛屿数量(2ms) + */ + private char[][] grid; + + public int numIslands(char[][] grid) { + int sum = 0; + this.grid = grid; + for (int i = 0; i < grid.length; i++) { + for (int j = 0; j < grid[i].length; j++) { + if (grid[i][j] == '1') { + numIslandsHelper(i, j); + sum++; + } + } + } + return sum; + } + + private void numIslandsHelper(int i, int j) { + if (i < 0 || i >= grid.length || j < 0 || j >= grid[i].length || grid[i][j] == '0') + return; + if (grid[i][j] == '1') + grid[i][j] = '0'; + numIslandsHelper(i + 1, j); + numIslandsHelper(i - 1, j); + numIslandsHelper(i, j + 1); + numIslandsHelper(i, j - 1); + } + + /** + * 岛屿数量(3ms) + */ + private int[] dx = new int[]{-1, 1, 0, 0}; + private int[] dy = new int[]{0, 0, -1, 1}; + + public int numIslands2(char[][] grid) { + int sum = 0; + this.grid = grid; + for (int i = 0; i < grid.length; i++) { + for (int j = 0; j < grid[i].length; j++) { + if (grid[i][j] == '1') { + numIslandsHelper2(i, j); + sum++; + } + } + } + return sum; + } + + private void numIslandsHelper2(int i, int j) { + if (grid[i][j] == '1') grid[i][j] = '0'; + else return; + for (int k = 0; k < dx.length; k++) { + int x = i + dx[k], y = j + dy[k]; + if (x < 0 || x >= grid.length || y < 0 || y >= grid[x].length || grid[x][y] == '0') continue; + numIslandsHelper2(x, y); + } + } +} \ No newline at end of file diff --git a/Week 03/id_241/LeetCode_33_241.java b/Week 03/id_241/LeetCode_33_241.java new file mode 100644 index 000000000..802149c36 --- /dev/null +++ b/Week 03/id_241/LeetCode_33_241.java @@ -0,0 +1,52 @@ +import java.util.*; +/** + * 搜索旋转排序数组 + */ +public class Solution { + /** + * 搜索旋转排序数组 + * (0ms) + */ + public int search(int[] nums, int target) { + if (nums == null || nums.length == 0) return -1; + int left = 0; + int right = nums.length - 1; + while (left < right) { + int mid = (left + right) >> 1; + if (nums[mid] == target) return mid; + if (nums[left] <= nums[mid]) { + if (target >= nums[left] && target <= nums[mid]) + right = mid - 1; + else + left = mid + 1; + } else { + if (target >= nums[mid] && target <= nums[right]) + left = mid + 1; + else + right = mid - 1; + } + } + return nums[left] == target ? left : -1; + } + + /** + * 搜索旋转排序数组 + * (将上面的判断精简一下) + * (1ms) + */ + private int search2(int[] nums, int target) { + if (nums == null || nums.length == 0) return -1; + int left = 0; + int right = nums.length - 1; + while (left < right) { + int mid = (left + right) >> 1; + if (nums[0] <= nums[mid] && (target > nums[mid] || target < nums[0])) + left = mid + 1; + else if (target > nums[mid] && target < nums[0]) + left = mid + 1; + else + right = mid; + } + return nums[left] == target ? left : -1; + } +} \ No newline at end of file diff --git a/Week 03/id_241/LeetCode_455_241.java b/Week 03/id_241/LeetCode_455_241.java new file mode 100644 index 000000000..df43fb0b6 --- /dev/null +++ b/Week 03/id_241/LeetCode_455_241.java @@ -0,0 +1,40 @@ +import java.util.*; +/** + * 分发饼干 + */ +public class Solution { + /** + * 分发饼干 + */ + public int findContentChildren(int[] g, int[] s) { + int sum = 0; + Arrays.sort(g); + Arrays.sort(s); + for (int i = s.length - 1, j = g.length - 1; i >= 0 && j >= 0; ) { + if (s[i] >= g[j]) { + sum++; + i--; + } + j--; + } + return sum; + } + + /** + * 分发饼干 + * (改进版) + */ + public int findContentChildren2(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + int i = 0; + int j = 0; + while (i < g.length && j < s.length) { + if (g[i] <= s[j]) { + i++; + } + j++; + } + return i; + } +} \ No newline at end of file diff --git a/Week 03/id_241/LeetCode_529_241.java b/Week 03/id_241/LeetCode_529_241.java new file mode 100644 index 000000000..6b1494628 --- /dev/null +++ b/Week 03/id_241/LeetCode_529_241.java @@ -0,0 +1,53 @@ +import java.util.*; +/** + * 扫雷游戏 + */ +public class Solution { + /** + * 扫雷游戏 + */ + public char[][] updateBoard(char[][] board, int[] click) { + if (board[click[0]][click[1]] == 'M') { + board[click[0]][click[1]] = 'X'; + return board; + } + return updateBoardHelper(board, click[0], click[1]); + } + + private char[][] updateBoardHelper(char[][] board, int x, int y) { + //如果一开始点击是雷,则退出游戏 + int nums = getNums(board, x, y); + if (nums == 0) + board[x][y] = 'B'; + else { + //forDigit函数,将第一个参数转为字符。radix 有效值为 2~36.nums 小于 10 则为数字字符,否则为'a' + nums - 10,也就是 26 个小写英文字母 + board[x][y] = Character.forDigit(nums, 10); + //退出时因为,题目要求无需遍历所有点,遇到雷即可。 + return board; + } + //只遍历周围八个点中为 E 的点。 + for (int i = -1; i <= 1; i++) { + for (int j = -1; j <= 1; j++) { + if (x + i < 0 || x + i > board.length - 1 || y + j < 0 || y + j > board[0].length - 1 || board[x + i][y + j] != 'E') + continue; + board = updateBoardHelper(board, x + i, y + j); + } + } + return board; + } + + /* + 计算当前点周围八个点雷的数量 + */ + private int getNums(char[][] board, int x, int y) { + int num = 0; + for (int i = -1; i <= 1; i++) { + for (int j = -1; j <= 1; j++) { + if (x + i < 0 || x + i > board.length - 1 || y + j < 0 || y + j > board[0].length - 1 || board[x + i][y + j] != 'M') + continue; + num++; + } + } + return num; + } +} \ No newline at end of file diff --git a/Week 03/id_241/LeetCode_55_241.java b/Week 03/id_241/LeetCode_55_241.java new file mode 100644 index 000000000..08cc623e4 --- /dev/null +++ b/Week 03/id_241/LeetCode_55_241.java @@ -0,0 +1,12 @@ +import java.util.*; +/** + * 跳跃游戏 + */ +public class Solution { + public boolean canJump(int[] nums) { + int endIndex = nums.length - 1; + for (int i = endIndex - 1; i >= 0; i--) + if (nums[i] >= (endIndex - i)) endIndex = i; + return endIndex == 0; + } +} \ No newline at end of file diff --git a/Week 03/id_241/LeetCode_74_241.java b/Week 03/id_241/LeetCode_74_241.java new file mode 100644 index 000000000..316fbe7c1 --- /dev/null +++ b/Week 03/id_241/LeetCode_74_241.java @@ -0,0 +1,29 @@ +import java.util.*; +/** + * 搜索二维矩阵 + */ +public class Solution { + /** + * 搜索二维矩阵 + */ + public boolean searchMatrix(int[][] matrix, int target) { + if (matrix.length == 0 || matrix[0].length == 0) return false; + for (int[] ints : matrix) { + if (target >= ints[0] && target <= ints[ints.length - 1]) { + int left = 0; + int right = ints.length - 1; + while (left <= right) { + int mid = (left + right) >> 1; + if (ints[mid] == target) + return true; + if (ints[mid] < target) + left = mid + 1; + else + right = mid - 1; + } + break; + } + } + return false; + } +} \ No newline at end of file From 5916ef2ecef9dae40e03f96372afb8cc0cc5e6cb Mon Sep 17 00:00:00 2001 From: Junzhi Chen Date: Sat, 2 Nov 2019 21:30:57 +0800 Subject: [PATCH 070/740] =?UTF-8?q?=E8=A7=A3=E5=86=B333?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_396/LeetCode_33_396.swift | 49 ++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Week 03/id_396/LeetCode_33_396.swift diff --git a/Week 03/id_396/LeetCode_33_396.swift b/Week 03/id_396/LeetCode_33_396.swift new file mode 100644 index 000000000..3ccd3d44c --- /dev/null +++ b/Week 03/id_396/LeetCode_33_396.swift @@ -0,0 +1,49 @@ +// +// LeetCode_242_396.swift +// +// +// Created by chenjunzhi on 2019/10/27. +// + + +import UIKit + +// 搜索旋转排序数组 +class Solution { + func search(_ nums: [Int], _ target: Int) -> Int { + + var left = 0 + var right = nums.count - 1 + var result = -1 + while left <= right { + let mid = right - (right - left) / 2 + if target == nums[mid] { + return mid + } + + if target == nums[left] { + return left + } + + if target == nums[right] { + return right + } + + if nums[left] < nums[mid] { + if target < nums[mid] && target > nums[left] { + right = mid - 1 + } else { + left = mid + 1 + } + } else { + if target < nums[right] && target > nums[mid] { + left = mid + 1 + } else { + right = mid - 1 + } + } + } + return result; + } + +} From 49e95bfe6cb4afa932ef416bbd71ce55120698d8 Mon Sep 17 00:00:00 2001 From: suanzhai <343628123@qq.com> Date: Sat, 2 Nov 2019 21:49:29 +0800 Subject: [PATCH 071/740] Update LeetCode_45_491.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 拷贝错了,把实验LeetCode题解的代码提交了,没有提交我自己的代码。 --- Week 03/id_491/LeetCode_45_491.java | 36 ++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/Week 03/id_491/LeetCode_45_491.java b/Week 03/id_491/LeetCode_45_491.java index 4daf30822..caa76ad33 100644 --- a/Week 03/id_491/LeetCode_45_491.java +++ b/Week 03/id_491/LeetCode_45_491.java @@ -1,17 +1,31 @@ class Solution { public int jump(int[] nums) { - if(nums.length == 1) return 0; - int reach = 0; - int nextreach = nums[0]; - int step = 0; - for(int i = 0; i= nums.length-1) return (step+1); - if(i == reach){ - step++; - reach = nextreach; + if(nums.length == 1){ + return 0; + } + + int steps = 0; + List stepsList = new ArrayList<>(); + stepsList.add(0); + int maxIndex = 0; + while(steps < nums.length - 1 && stepsList.size() > 0) { + steps++; + List tempList = new ArrayList<>(); + for(int j = 0; j < stepsList.size(); j++) { + int index = stepsList.get(j); + for(int i = nums[index]; i + index > maxIndex; i--) { + if(index + i >= nums.length - 1){ + return steps; + } + + tempList.add(index + i); + } + maxIndex = nums[index] + index; } + + stepsList = tempList; } - return step; + + return -1; } } From 1ec389c1a31f2d1ad872be6ae1a42553c3baa9c8 Mon Sep 17 00:00:00 2001 From: Junzhi Chen Date: Sat, 2 Nov 2019 23:20:18 +0800 Subject: [PATCH 072/740] =?UTF-8?q?=E8=A7=A3=E5=86=B3153u?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_396/LeetCode_153_396.swift | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Week 03/id_396/LeetCode_153_396.swift diff --git a/Week 03/id_396/LeetCode_153_396.swift b/Week 03/id_396/LeetCode_153_396.swift new file mode 100644 index 000000000..db1df7234 --- /dev/null +++ b/Week 03/id_396/LeetCode_153_396.swift @@ -0,0 +1,30 @@ +// +// LeetCode_242_396.swift +// +// +// Created by chenjunzhi on 2019/10/27. +// + + +import UIKit + +// 寻找旋转排序数组中的最小值 +class Solution { + func findMin(_ nums: [Int]) -> Int { + if(nums.first! < nums.last!) { + return nums.first! + } + + var left = 0 + var right = nums.count - 1 + while left < right-1 { + let mid = right - (right - left) / 2 + if nums[left] > nums[mid] { //无序在左右,所以最小的点的左边 + right = mid //不能为mid-1 因为有可能mid就是最小的点 + } else { + left = mid + } + } + return nums[right] + } +} From e7a036b4167131024f6dfda9426f1d2a2453adbf Mon Sep 17 00:00:00 2001 From: atlantis1993 <975182366@qq.com> Date: Sat, 2 Nov 2019 23:35:30 +0800 Subject: [PATCH 073/740] 446-Week 03 LeetCode 127 200 455 860 --- Week 03/id_446/LeetCode_127_446.cpp | 42 +++++++++++++++++++++++++++++ Week 03/id_446/LeetCode_200_446.cpp | 27 +++++++++++++++++++ Week 03/id_446/LeetCode_455_446.cpp | 19 +++++++++++++ Week 03/id_446/LeetCode_860_446.cpp | 27 +++++++++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 Week 03/id_446/LeetCode_127_446.cpp create mode 100644 Week 03/id_446/LeetCode_200_446.cpp create mode 100644 Week 03/id_446/LeetCode_455_446.cpp create mode 100644 Week 03/id_446/LeetCode_860_446.cpp diff --git a/Week 03/id_446/LeetCode_127_446.cpp b/Week 03/id_446/LeetCode_127_446.cpp new file mode 100644 index 000000000..abd219f63 --- /dev/null +++ b/Week 03/id_446/LeetCode_127_446.cpp @@ -0,0 +1,42 @@ +class Solution { +public: + int ladderLength(string beginWord, string endWord, vector& wordList) { + unordered_set dict(wordList.begin(), wordList.end()), head, tail, *phead, *ptail; + if (dict.find(endWord) == dict.end()) { + return 0; + } + head.insert(beginWord); + tail.insert(endWord); + int ladder = 2; + while (!head.empty() && !tail.empty()) { + if (head.size() < tail.size()) { + phead = &head; + ptail = &tail; + } else { + phead = &tail; + ptail = &head; + } + unordered_set temp; + for (auto it = phead -> begin(); it != phead -> end(); it++) { + string word = *it; + for (int i = 0; i < word.size(); i++) { + char t = word[i]; + for (int j = 0; j < 26; j++) { + word[i] = 'a' + j; + if (ptail -> find(word) != ptail -> end()) { + return ladder; + } + if (dict.find(word) != dict.end()) { + temp.insert(word); + dict.erase(word); + } + } + word[i] = t; + } + } + ladder++; + phead -> swap(temp); + } + return 0; + } +}; \ No newline at end of file diff --git a/Week 03/id_446/LeetCode_200_446.cpp b/Week 03/id_446/LeetCode_200_446.cpp new file mode 100644 index 000000000..4b45f4cfc --- /dev/null +++ b/Week 03/id_446/LeetCode_200_446.cpp @@ -0,0 +1,27 @@ +class Solution { +public: + int numIslands(vector>& grid) { + int row = grid.size(); + if(row == 0) return 0; + int col = grid[0].size(); + int islands = 0; + for(int i = 0; i < row; ++i){ + for(int j = 0; j < col; ++j){ + if(grid[i][j] == '1') islands++; + dfs(grid, i, j); + } + } + return islands; + } + + void dfs(vector>& grid, int i, int j){ + int row = grid.size(); + int col = grid[0].size(); + if((i < 0) || (j < 0) || (i >= row) || (j >= col) || (grid[i][j] == '0')) return; + grid[i][j] = '0'; + dfs(grid, i - 1, j); + dfs(grid, i + 1, j); + dfs(grid, i , j - 1); + dfs(grid, i , j + 1); + } +}; \ No newline at end of file diff --git a/Week 03/id_446/LeetCode_455_446.cpp b/Week 03/id_446/LeetCode_455_446.cpp new file mode 100644 index 000000000..6056751e0 --- /dev/null +++ b/Week 03/id_446/LeetCode_455_446.cpp @@ -0,0 +1,19 @@ +class Solution { +public: + int findContentChildren(vector& g, vector& s) { + sort(g.begin(), g.end()); + sort(s.begin(), s.end()); + int indexG = 0; + int indexS = 0; + while(indexG < g.size() && indexS < s.size()){ + if(g[indexG] <= s[indexS]){ + indexG++; + indexS++; + } + else{ + indexS++; + } + } + return indexG; + } +}; \ No newline at end of file diff --git a/Week 03/id_446/LeetCode_860_446.cpp b/Week 03/id_446/LeetCode_860_446.cpp new file mode 100644 index 000000000..9f9fd7af3 --- /dev/null +++ b/Week 03/id_446/LeetCode_860_446.cpp @@ -0,0 +1,27 @@ +class Solution { +public: + bool lemonadeChange(vector& bills) { + int five = 0; + int ten = 0; + for(int i = 0; i < bills.size(); ++i){ + int current_order = bills[i]; + if(current_order == 5){ + five++; + } + else if(current_order == 10){ + five--; + ten++; + } + else if(ten > 0){ + ten-- ; + five--; + } + else{ + five -= 3; + } + + if(five < 0) return false; + } + return true; + } +}; \ No newline at end of file From 3412c6071793b10b42da217808e654612d41966e Mon Sep 17 00:00:00 2001 From: caoning <919542694@qq.com> Date: Sun, 3 Nov 2019 00:50:44 +0800 Subject: [PATCH 074/740] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 02/id_311/LeetCode_105_Solution.java | 65 +++++++++++++ Week 02/id_311/LeetCode_46_Solution.java | 43 +++++++++ Week 02/id_311/LeetCode_47_Solution.java | 46 ++++++++++ Week 02/id_311/LeetCode_77_Solution.java | 43 +++++++++ Week 03/id_311/LeetCode_126_Solution.java | 107 ++++++++++++++++++++++ Week 03/id_311/LeetCode_127_Solution.java | 61 ++++++++++++ 6 files changed, 365 insertions(+) create mode 100644 Week 02/id_311/LeetCode_105_Solution.java create mode 100644 Week 02/id_311/LeetCode_46_Solution.java create mode 100644 Week 02/id_311/LeetCode_47_Solution.java create mode 100644 Week 02/id_311/LeetCode_77_Solution.java create mode 100644 Week 03/id_311/LeetCode_126_Solution.java create mode 100644 Week 03/id_311/LeetCode_127_Solution.java diff --git a/Week 02/id_311/LeetCode_105_Solution.java b/Week 02/id_311/LeetCode_105_Solution.java new file mode 100644 index 000000000..fac86f111 --- /dev/null +++ b/Week 02/id_311/LeetCode_105_Solution.java @@ -0,0 +1,65 @@ +//根据一棵树的前序遍历与中序遍历构造二叉树。 +// +// 注意: +//你可以假设树中没有重复的元素。 +// +// 例如,给出 +// +// 前序遍历 preorder = [3,9,20,15,7] +//中序遍历 inorder = [9,3,15,20,7] +// +// 返回如下的二叉树: +// +// 3 +// / \ +// 9 20 +// / \ +// 15 7 +// Related Topics 树 深度优先搜索 数组 + + +//leetcode submit region begin(Prohibit modification and deletion) + +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ +class Solution { + + public TreeNode buildTree(int[] preorder, int[] inorder) { + + if (preorder.length == 1) { + return new TreeNode(preorder[0]); + } + if (preorder.length == 0) { + return null; + } + int index = 0; + while (inorder[index] != preorder[0]) { + index++; + } + TreeNode gen = new TreeNode(preorder[0]); + int[] leftPre = new int[index]; + int[] leftIn = new int[index]; + for (int i = 0; i < index; i++) { + leftIn[i] = inorder[i]; + leftPre[i] = preorder[i + 1]; + } + int[] rightPre = new int[preorder.length - index - 1]; + int[] rightIn = new int[preorder.length - index - 1]; + for (int i = 0; i < rightPre.length; i++) { + rightPre[i] = preorder[index + 1 + i]; + rightIn[i] = inorder[index + 1 + i]; + } + gen.left = buildTree(leftPre, leftIn); + gen.right = buildTree(rightPre, rightIn); + return gen; + } + +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 02/id_311/LeetCode_46_Solution.java b/Week 02/id_311/LeetCode_46_Solution.java new file mode 100644 index 000000000..8421a7889 --- /dev/null +++ b/Week 02/id_311/LeetCode_46_Solution.java @@ -0,0 +1,43 @@ +//给定一个没有重复数字的序列,返回其所有可能的全排列。 +// +// 示例: +// +// 输入: [1,2,3] +//输出: +//[ +// [1,2,3], +// [1,3,2], +// [2,1,3], +// [2,3,1], +// [3,1,2], +// [3,2,1] +//] +// Related Topics 回溯算法 + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + private List> result = new ArrayList>(); + private List list = new ArrayList(); + + public List> permute(int[] nums) { + for (int i = 0; i < nums.length; i++) { + list.add(nums[i]); + } + backtrack(nums.length, 0); + return result; + } + + private void backtrack(int n, int index) { + if (n == index) { + result.add(new ArrayList(list)); + return; + } + for (int i = index; i < n; i++) { + Collections.swap(list, index, i); + backtrack(n, index + 1); + Collections.swap(list, index, i); + } + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 02/id_311/LeetCode_47_Solution.java b/Week 02/id_311/LeetCode_47_Solution.java new file mode 100644 index 000000000..faa58501e --- /dev/null +++ b/Week 02/id_311/LeetCode_47_Solution.java @@ -0,0 +1,46 @@ +//给定一个可包含重复数字的序列,返回所有不重复的全排列。 +// +// 示例: +// +// 输入: [1,1,2] +//输出: +//[ +// [1,1,2], +// [1,2,1], +// [2,1,1] +//] +// Related Topics 回溯算法 + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + private List> result = new ArrayList>(); + private LinkedList list = new LinkedList(); + + public List> permuteUnique(int[] nums) { + int[] visited = new int[nums.length]; + Arrays.sort(nums); + backtrack(0, nums, visited); + return result; + } + + private void backtrack(int index, int[] nums, int[] visited) { + if (index == nums.length) { + result.add(new LinkedList(list)); + return; + } + for (int i = 0; i < nums.length; i++) { + if (visited[i] != 1) { + if (i > 0 && (nums[i] == nums[i - 1]) && (visited[i - 1] != 1)) { + continue; + } + visited[i] = 1; + list.add(nums[i]); + backtrack(index +1 , nums, visited); + list.removeLast(); + visited[i] = 0; + } + } + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 02/id_311/LeetCode_77_Solution.java b/Week 02/id_311/LeetCode_77_Solution.java new file mode 100644 index 000000000..e99739ed0 --- /dev/null +++ b/Week 02/id_311/LeetCode_77_Solution.java @@ -0,0 +1,43 @@ +//给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 +// +// 示例: +// +// 输入: n = 4, k = 2 +//输出: +//[ +// [2,4], +// [3,4], +// [2,3], +// [1,2], +// [1,3], +// [1,4], +//] +// Related Topics 回溯算法 + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + private List> result = new ArrayList>(); + private LinkedList list = new LinkedList(); + + public List> combine(int n, int k) { + if (n <= 0 || k <= 0 || n < k) { + return result; + } + backtrack(1, n, k); + return result; + } + + private void backtrack(int index, int n, int k) { + if (list.size() == k) { + result.add(new LinkedList(list)); + return; + } + for (int i = index; i < n + 1; i++) { + list.add(i); + backtrack(i + 1, n, k); + list.removeLast(); + } + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_311/LeetCode_126_Solution.java b/Week 03/id_311/LeetCode_126_Solution.java new file mode 100644 index 000000000..d69010f8e --- /dev/null +++ b/Week 03/id_311/LeetCode_126_Solution.java @@ -0,0 +1,107 @@ +class Solution { + public List> findLadders(String beginWord, String endWord, List wordList) { + List> ans = new ArrayList<>(); + if (!wordList.contains(endWord)) { + return ans; + } + // 利用 BFS 得到所有的邻居节点 + HashMap> map = new HashMap<>(); + bfs(beginWord, endWord, wordList, map); + ArrayList temp = new ArrayList(); + // temp 用来保存当前的路径 + temp.add(beginWord); + findLaddersHelper(beginWord, endWord, map, temp, ans); + return ans; + } + + private void findLaddersHelper(String beginWord, String endWord, HashMap> map, + ArrayList temp, List> ans) { + if (beginWord.equals(endWord)) { + ans.add(new ArrayList(temp)); + return; + } + // 得到所有的下一个的节点 + ArrayList neighbors = map.getOrDefault(beginWord, new ArrayList()); + for (String neighbor : neighbors) { + temp.add(neighbor); + findLaddersHelper(neighbor, endWord, map, temp, ans); + temp.remove(temp.size() - 1); + } + } + + //利用递归实现了双向搜索 + private void bfs(String beginWord, String endWord, List wordList, HashMap> map) { + Set set1 = new HashSet(); + set1.add(beginWord); + Set set2 = new HashSet(); + set2.add(endWord); + Set wordSet = new HashSet(wordList); + bfsHelper(set1, set2, wordSet, true, map); + } + + // direction 为 true 代表向下扩展,false 代表向上扩展 + private boolean bfsHelper(Set set1, Set set2, Set wordSet, boolean direction, + HashMap> map) { + //set1 为空了,就直接结束 + //比如下边的例子就会造成 set1 为空 + /* "hot" + "dog" + ["hot","dog"]*/ + if (set1.isEmpty()) { + return false; + } + // set1 的数量多,就反向扩展 + if (set1.size() > set2.size()) { + return bfsHelper(set2, set1, wordSet, !direction, map); + } + // 将已经访问过单词删除 + wordSet.removeAll(set1); + wordSet.removeAll(set2); + + boolean done = false; + + // 保存新扩展得到的节点 + Set set = new HashSet(); + + for (String str : set1) { + //遍历每一位 + for (int i = 0; i < str.length(); i++) { + char[] chars = str.toCharArray(); + + // 尝试所有字母 + for (char ch = 'a'; ch <= 'z'; ch++) { + if (chars[i] == ch) { + continue; + } + chars[i] = ch; + + String word = new String(chars); + + // 根据方向得到 map 的 key 和 val + String key = direction ? str : word; + String val = direction ? word : str; + + ArrayList list = map.containsKey(key) ? map.get(key) : new ArrayList(); + + //如果相遇了就保存结果 + if (set2.contains(word)) { + done = true; + list.add(val); + map.put(key, list); + } + + //如果还没有相遇,并且新的单词在 word 中,那么就加到 set 中 + if (!done && wordSet.contains(word)) { + set.add(word); + list.add(val); + map.put(key, list); + } + } + } + } + + //一般情况下新扩展的元素会多一些,所以我们下次反方向扩展 set2 + return done || bfsHelper(set2, set, wordSet, !direction, map); + + } +} \ No newline at end of file diff --git a/Week 03/id_311/LeetCode_127_Solution.java b/Week 03/id_311/LeetCode_127_Solution.java new file mode 100644 index 000000000..886df1ddc --- /dev/null +++ b/Week 03/id_311/LeetCode_127_Solution.java @@ -0,0 +1,61 @@ +import javafx.util.Pair; + +import java.util.*; + +class Solution { + private int L = 0; + private Map> allComboDict; + public int ladderLength(String beginWord, String endWord, List wordList) { + if (!wordList.contains(endWord)) { + return 0; + } + L = beginWord.length(); + allComboDict = new HashMap>(); + for (String str : wordList) { + for (int i = 0; i < L; i++) { + String newString = str.substring(0, i) + "*" + str.substring(i + 1, L); + ArrayList transformations = allComboDict.getOrDefault(newString, new ArrayList()); + transformations.add(str); + allComboDict.put(newString, transformations); + } + } + Queue> q_begin = new LinkedList>(); + Queue> q_end = new LinkedList>(); + q_begin.add(new Pair(beginWord, 1)); + q_end.add(new Pair(endWord, 1)); + Map vistedBegin = new HashMap(); + vistedBegin.put(beginWord, 1); + Map vistedEnd = new HashMap(); + vistedEnd.put(endWord, 1); + while(!q_begin.isEmpty() && !q_end.isEmpty()){ + int ans = vistedCount(q_begin, vistedBegin, vistedEnd); + if(ans > -1){ + return ans; + } + ans = vistedCount(q_end, vistedEnd, vistedBegin); + if(ans > -1){ + return ans; + } + } + return 0; + + } + private int vistedCount(Queue> queue, Map visted, Map otherVisted){ + Pair node = queue.remove(); + String str = node.getKey(); + int level = node.getValue(); + for (int i = 0; i < L; i++) { + String newString = str.substring(0, i) + "*" + str.substring(i + 1, L); + for(String adjacentWord : allComboDict.getOrDefault(newString, new ArrayList<>())){ + if(otherVisted.containsKey(adjacentWord)){ + return level + otherVisted.get(adjacentWord); + } + if(!visted.containsKey(adjacentWord)){ + visted.put(adjacentWord, level + 1); + queue.add(new Pair(adjacentWord, level +1)); + } + } + } + return -1; + } +} \ No newline at end of file From b28c3a6e8886689656fed4b5757cfd4d986cfa00 Mon Sep 17 00:00:00 2001 From: lyp Date: Sun, 3 Nov 2019 01:05:40 +0800 Subject: [PATCH 075/740] 216-Week 03 --- Week 03/id_216/Week03.java | 122 +++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 Week 03/id_216/Week03.java diff --git a/Week 03/id_216/Week03.java b/Week 03/id_216/Week03.java new file mode 100644 index 000000000..7a8beb668 --- /dev/null +++ b/Week 03/id_216/Week03.java @@ -0,0 +1,122 @@ +import java.util.*; + +/** + * Created by liuyp on 2019/11/3. + */ +public class Week03 { + + //127 + public class Pair { + private String key; + private Integer val; + + public Pair(String key, Integer val) { + this.key = key; + this.val = val; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public Integer getVal() { + return val; + } + + public void setVal(Integer val) { + this.val = val; + } + } + + public int ladderLength(String beginWord, String endWord, List wordList) { +// + List visited = new ArrayList<>(); + + int len = beginWord.length(); + + Map> base = new HashMap<>(); + for (String word : wordList) { + + for (int i = 0; i < len; i++) { + String newWord = word.substring(0, i) + '*' + word.substring(i + 1, len); + List list = base.getOrDefault(newWord, new ArrayList()); + list.add(word); + base.put(newWord, list); + } + } + + Queue queue = new LinkedList<>(); + queue.add(new Pair(beginWord, 1)); + visited.add(beginWord); + + while (queue.size() > 0) { + Pair pair = queue.poll(); + visited.add(String.valueOf(pair.getKey())); + String curWord = String.valueOf(pair.getKey()); + int level = pair.getVal(); + for (int i = 0; i < len; i++) { + String keyWord = curWord.substring(0, i) + '*' + curWord.substring(i + 1, len); + List baseList = base.getOrDefault(keyWord, new ArrayList<>()); + for (String baseWord : baseList) { + if (baseWord.equals(endWord)) { + return level + 1; + } + if (!visited.contains(baseWord)) { + queue.add(new Pair(baseWord, level + 1)); + } + } + } + } + + return 0; + } + + //33 + public int search1(int[] nums, int target) { + int mid = 0; + int left = 0; + int right = nums.length - 1; + while (left <= right) { + mid = (left + right) / 2; + if (nums[mid] == target) { + return mid; + } else if (nums[mid] > nums[right]) { + left = mid + 1; + } else if (nums[mid] < nums[left]) { + right = mid - 1; + } else { + right = mid - 1; + } + } + + return -1; + } + + public int search2(int[] nums, int target) { + + int left = 0; + int right = nums.length - 1; + while (left < right) { + System.out.println("left=====" + left); + System.out.println("right=====" + right); + + int mid = (left + right) / 2; + System.out.println("mid=====" + mid); + System.out.println("============================"); + + if (nums[mid] == target) { + return mid; + } else if ((nums[0] > target) && (nums[0] > nums[mid]) && (target > nums[mid])) { + left = mid + 1; + } else { + right = mid; + } + } + + return -1; + } +} From 76edf5c53f68a954b0729a53a98bc441ff0415fa Mon Sep 17 00:00:00 2001 From: ydbB <31039587+ydbB@users.noreply.github.com> Date: Sun, 3 Nov 2019 02:44:15 +0800 Subject: [PATCH 076/740] 276-Week 03 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 33 旋转排序数组中查找target 69 关于sqrt的代码及格式 122 股票买卖 --- Week 03/id_276/LeetCode_122_276.java | 11 ++++++ Week 03/id_276/LeetCode_33_276.java | 52 ++++++++++++++++++++++++++++ Week 03/id_276/LeetCode_69_276.java | 27 +++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 Week 03/id_276/LeetCode_122_276.java create mode 100644 Week 03/id_276/LeetCode_33_276.java create mode 100644 Week 03/id_276/LeetCode_69_276.java diff --git a/Week 03/id_276/LeetCode_122_276.java b/Week 03/id_276/LeetCode_122_276.java new file mode 100644 index 000000000..26ce48920 --- /dev/null +++ b/Week 03/id_276/LeetCode_122_276.java @@ -0,0 +1,11 @@ +package Greedy; + +public class LeetCode_122_276 { + public int maxProfile(int[] prices) { + int max = 0; + for (int i=0; i prices[i+1] ? prices[i]-prices[i+1] : 0; + } + return max; + } +} diff --git a/Week 03/id_276/LeetCode_33_276.java b/Week 03/id_276/LeetCode_33_276.java new file mode 100644 index 000000000..7e9cd5734 --- /dev/null +++ b/Week 03/id_276/LeetCode_33_276.java @@ -0,0 +1,52 @@ +package Greedy; + +public class LeetCode_33_276 { + //思路: + //1.还原排序数组,再用二分法查找 + //2.直接用二分法查找 + //找到最小值位置 + public int search(int[] nums, int target) { + int lo = 0, hi = nums.length-1; + while (lo < hi) { + int mid = (lo + hi + 1) >>> 1; + if (target > nums[mid] && target > nums[lo]) + } + } + + public int search(int[] nums, int target) { + if (nums == null || nums.length < 1) return -1; + int lo = 0,hi = nums.length-1; + while (lo < hi) { + int mid = (lo + hi) / 2; + if (nums[mid] > nums[hi]) lo = mid + 1; + else hi = mid; + } + int min = lo; + lo = (target <= nums[nums.length-1])? min : 0; + hi = (target > nums[nums.length-1] ) ? min-1 : nums.length-1; + while (lo < hi) { + int mid = (lo + hi) / 2; + if (nums[mid] > target) hi = mid - 1; + else if (nums[mid] == target) return mid; + else lo = mid + 1; + } + return -1; + } + + //直接二分 + public int search (int[] nums, int target) { + if (nums == null || nums.length < 1) return -1; + int lo = 0, hi = nums.length-1; + while (lo < hi) { + int mid = (hi +hi)/2; + if (nums[mid] == target) return mid; + int key = (nums[mid] < nums[0]) == (target >> 1; + long square = mid * mid; + if (square > x) right = mid - 1; + else if (square < x) left = mid; + else return (int) mid; + } + return (int) left; + } + + + public int sqrt(int x) { + long r = x / 2; + while (r*r > x) r = (r + x/r)/2; + return (int) r; + } +} From e7d06a0a4f486497161adef5dd84f2f53e9ca3c2 Mon Sep 17 00:00:00 2001 From: xuxp Date: Sun, 3 Nov 2019 06:04:39 +0800 Subject: [PATCH 077/740] 336-Week 03 --- Week 03/id_336/LeetCode_336_122.js | 59 +++++++++++++++++++ Week 03/id_336/LeetCode_336_200.js | 94 ++++++++++++++++++++++++++++++ Week 03/id_336/LeetCode_336_45.js | 22 +++++++ Week 03/id_336/LeetCode_336_55.js | 40 +++++++++++++ Week 03/id_336/LeetCode_336_860.js | 30 ++++++++++ 5 files changed, 245 insertions(+) create mode 100644 Week 03/id_336/LeetCode_336_122.js create mode 100644 Week 03/id_336/LeetCode_336_200.js create mode 100644 Week 03/id_336/LeetCode_336_45.js create mode 100644 Week 03/id_336/LeetCode_336_55.js create mode 100644 Week 03/id_336/LeetCode_336_860.js diff --git a/Week 03/id_336/LeetCode_336_122.js b/Week 03/id_336/LeetCode_336_122.js new file mode 100644 index 000000000..94eacaf9f --- /dev/null +++ b/Week 03/id_336/LeetCode_336_122.js @@ -0,0 +1,59 @@ +// #### 解法一:暴力枚举 +/** + * @param {number[]} prices + * @return {number} + */ +var maxProfit = function(prices) { + return calc(prices,prices.length,0) +}; +function calc(prices,len,start){ + if(start >= len){ + return 0; + } + var max = 0; + for(var startIndex = start;startIndex prices[startIndex]){ + // 当前剩余价值+当前价值-第一天起始点价值 == 当前组合的总价值 + var profit = calc(prices,len,i+1) + prices[i] - prices[startIndex]; + // 更新当天与第i天 最大价值和 + if(profit > maxProfit){ + maxProfit = profit; + } + } + } + // 更新每天价值最大值的和 + if(maxProfit > max){ + max = maxProfit; + } + } + return max; +} +// #### 解法二 +/** + * @param {number[]} prices + * @return {number} + */ +var maxProfit = function(prices) { + // 谷值 + var valley = prices[0]; + // 峰值 + var peak = prices[0]; + // 最大利润值 + var maxProfit = 0; + var lenNeed = prices.length - 1; + var i = 0; + while(i < lenNeed){ + while(i < lenNeed && prices[i] > prices[i+1]){ + i++; + } + valley = prices[i]; + while(i < lenNeed && prices[i] <= prices[i+1]){ + i++; + } + peak = prices[i]; + maxProfit += peak - valley; + } + return maxProfit; +}; \ No newline at end of file diff --git a/Week 03/id_336/LeetCode_336_200.js b/Week 03/id_336/LeetCode_336_200.js new file mode 100644 index 000000000..a253f5013 --- /dev/null +++ b/Week 03/id_336/LeetCode_336_200.js @@ -0,0 +1,94 @@ +// #### 解法一:DFS +/** + * @param {character[][]} grid + * @return {number} + */ +var numIslands = function(grid) { + if(!grid || grid.length == 0){ + return 0; + } + var len = grid.length; + var size = grid[0].length; + var island = 0; + function sink(i,j){ + // terminator + if(grid[i][j] == '0'){ + return 0; + } + // process + grid[i][j] = '0'; + // drill down + if(i+1= 0 && grid[i-1][j] == '1'){ + sink(i-1,j); + } + if(j+1 < size && grid[i][j+1] == '1'){ + sink(i,j+1); + } + if(j-1 >= 0 && grid[i][j-1] == '1'){ + sink(i,j-1); + } + return 1; + } + for(var i = 0;i= 0 && x < grid.length && y >=0 && y0){ + var tmpIsland = queue.shift(); + sink(tmpIsland[0],tmpIsland[1]); + } + } + } + } + return island; +}; \ No newline at end of file diff --git a/Week 03/id_336/LeetCode_336_45.js b/Week 03/id_336/LeetCode_336_45.js new file mode 100644 index 000000000..f1d6429f1 --- /dev/null +++ b/Week 03/id_336/LeetCode_336_45.js @@ -0,0 +1,22 @@ +// #### 解法:贪心算法 +/** + * @param {number[]} nums + * @return {number} + */ +var jump = function(nums) { + var steps = 0; + var canJumpMax = 0; + var last_canJumpMax = 0; + var len = nums.length; + for(var i = 0;i= len-1){ + break; + } + } + return steps; +}; \ No newline at end of file diff --git a/Week 03/id_336/LeetCode_336_55.js b/Week 03/id_336/LeetCode_336_55.js new file mode 100644 index 000000000..673350c89 --- /dev/null +++ b/Week 03/id_336/LeetCode_336_55.js @@ -0,0 +1,40 @@ +// 解法一:暴力递归 +/** + * @param {number[]} nums + * @return {boolean} + */ +var canJump = function(nums) { + function canJumpFromWhere(position,nums){ + // 跳到终点了 + if(position == nums.length - 1){ + return true; + } + // 当前位置可跳的最远距离索引位置,取min是因为最远距离不能超过nums的长度对应的索引值 + var furthestPosition = Math.min(position+nums[position],nums.length - 1); + for(var nextPosition = position+1;nextPosition <= furthestPosition;nextPosition++){ + if(canJumpFromWhere(nextPosition,nums)){ + return true; + } + } + return false; + } + return canJumpFromWhere(0,nums); +}; +// 解法二:贪心算法 +/** + * @param {number[]} nums + * @return {boolean} + */ +var canJump = function(nums) { + var canJumpMax = 0; + var len = nums.length; + for(var i = 0;i canJumpMax){ + return false; + } + canJumpMax = Math.max(canJumpMax,i+nums[i]); + if(canJumpMax >= len-1){ + return true; + } + } +}; \ No newline at end of file diff --git a/Week 03/id_336/LeetCode_336_860.js b/Week 03/id_336/LeetCode_336_860.js new file mode 100644 index 000000000..85396249c --- /dev/null +++ b/Week 03/id_336/LeetCode_336_860.js @@ -0,0 +1,30 @@ +/** + * @param {number[]} bills + * @return {boolean} + */ +var lemonadeChange = function(bills) { + var five = 0; + var ten = 0; + var len = bills.length; + for(var i = 0;i 0 && five > 0){ + ten--; + five--; + }else if(five >= 3){ + five -= 3; + }else{ + return false; + } + } + } + return true; +}; \ No newline at end of file From d77853200ae2921ebd41a6dc5c4666b4e11a77e1 Mon Sep 17 00:00:00 2001 From: mrgulc <530285142@qq.com> Date: Sun, 3 Nov 2019 12:10:52 +0800 Subject: [PATCH 078/740] 521 - Week 03 --- ...02\346\254\241\351\201\215\345\216\206.js" | 23 ++++++++ ...14\345\210\206\346\237\245\346\211\276.js" | 34 +++++++++++ Week 03/id_521/Test.java | 19 +++++++ Week 03/id_521/note | 57 +++++++++++++++++++ 4 files changed, 133 insertions(+) create mode 100644 "Week 03/id_521/102.\344\272\214\345\217\211\346\240\221\347\232\204\345\261\202\346\254\241\351\201\215\345\216\206.js" create mode 100644 "Week 03/id_521/33. \344\272\214\345\210\206\346\237\245\346\211\276.js" create mode 100644 Week 03/id_521/Test.java create mode 100644 Week 03/id_521/note diff --git "a/Week 03/id_521/102.\344\272\214\345\217\211\346\240\221\347\232\204\345\261\202\346\254\241\351\201\215\345\216\206.js" "b/Week 03/id_521/102.\344\272\214\345\217\211\346\240\221\347\232\204\345\261\202\346\254\241\351\201\215\345\216\206.js" new file mode 100644 index 000000000..496fedf5d --- /dev/null +++ "b/Week 03/id_521/102.\344\272\214\345\217\211\346\240\221\347\232\204\345\261\202\346\254\241\351\201\215\345\216\206.js" @@ -0,0 +1,23 @@ +// DFS: + + +var levelOrder = function(root) { + let visited = new Set(); + let ans = []; + + function DFS(node, visited, level) { + if (visited.has(node) || node === null) { + return; + } + if (ans[level] === undefined) { + ans[level] = []; + } + ans[level].push(node.val); + visited.add(node); + DFS(node.left, visited, level + 1); + + DFS(node.right, visited, level + 1); + } + DFS(root, visited, 0); + return ans; +}; diff --git "a/Week 03/id_521/33. \344\272\214\345\210\206\346\237\245\346\211\276.js" "b/Week 03/id_521/33. \344\272\214\345\210\206\346\237\245\346\211\276.js" new file mode 100644 index 000000000..8187716c0 --- /dev/null +++ "b/Week 03/id_521/33. \344\272\214\345\210\206\346\237\245\346\211\276.js" @@ -0,0 +1,34 @@ +/** + * @param {number[]} nums + * @param {number} target + * @return {number} + * [4,5,6,7,0,1,2,3 4] + */ +var search = function(nums, target) { + let right = nums.length; + if(right === 0 ){ + return -1 + } + return recursion(0, right-1, nums, target) + + function recursion(left, right, nums, target) { + if(left > right ) return -1; + let mid = (left + right) / 2 | 0; + if (nums[mid] === target) { + return mid; + } + + if (nums[right] > nums[mid]) { //有序的 + if (nums[right] >= target && nums[mid] < target) { + return recursion(mid+1, right, nums, target); + } + return recursion(left, mid - 1, nums, target) + } else { + if (nums[left] <= target && nums[mid] > target) { + return recursion(left, mid - 1, nums, target); + } + return recursion(mid+1, right , nums, target) + } + + } +}; diff --git a/Week 03/id_521/Test.java b/Week 03/id_521/Test.java new file mode 100644 index 000000000..3c9cc8694 --- /dev/null +++ b/Week 03/id_521/Test.java @@ -0,0 +1,19 @@ +import java.util.LinkedList; +import java.util.Queue; + + +public class Test { + public static void main(String[] args) { + Queue queue = new LinkedList(); + Boolean b = queue.offer(1); + queue.offer(2); + queue.offer(3); + System.out.println(b); + System.out.println(queue); + Integer i = queue.poll(); + System.out.println(i); + // i = queue.poll(); + System.out.println(i); + System.out.println(queue.size()); + } +} \ No newline at end of file diff --git a/Week 03/id_521/note b/Week 03/id_521/note new file mode 100644 index 000000000..03e001fb3 --- /dev/null +++ b/Week 03/id_521/note @@ -0,0 +1,57 @@ + + +1. DFS搜索模板: + (主要用于图, 树建议使用前中后序遍历), 因为图是环状的,所以需要 + 使用visited标志位来判断是否已经访问过。而树是有终点的。 + 之前二叉树的前中后序遍历都是DFS的子集。只是二叉树的只有左右两个子节点。 + + + function wrap(root) { + let visited = new Set() + + function DFS(node, visited) { + if(visited.has(node)) { // 节点访问过就结束 + return + } + for(let node of node.children) { + DFS(node, visited) + } + } + } + + +2. BFS搜索模板; + 特点是需要根据节点(如果没有节点自己创造节点),来判断需不需要放入queue中处理,queue为空则说明没有更多节点,遍历结束 + + function BFS(root) { + let queue = [], ans = [] + queue.push(root) + while(queue.length) { + let node = queue.shift() + ans.push(node) + if(node.left !== null) { // 这里只是个判断放入queue的条件,可以自己创建节点包裹问题,创造条件 + queue.push(node.left) + } + if(node.right !== null) { + queue.push(node.right) + } + } + return ans + } + + 3. 二分查找: 针对有序,有界, 能通过索引访问。 数组, 链表等 + + function BinarySearch(list, target) { + let left = 0, right = list.length - 1 + + while(left <= right) { //是否等于,需要判断 + let mid = left + parseInt((right - left) / 2) + if(list[mid] === target) { + return mid + }else if(list[mid] < target) { + left = mid + 1 + }else { + right = mid - 1 + } + } + } From 41fcb8b488e4d817dc401385855e0cb72f3677f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E4=B8=87=E9=A3=9E?= Date: Sun, 3 Nov 2019 13:06:45 +0800 Subject: [PATCH 079/740] week 03 --- Week 03/id_286/LeetCode_102_286.java | 85 ++++++++++++++++++++++++++++ Week 03/id_286/LeetCode_122_286.java | 18 ++++++ Week 03/id_286/LeetCode_200_286.java | 58 +++++++++++++++++++ Week 03/id_286/LeetCode_33_286.java | 34 +++++++++++ Week 03/id_286/LeetCode_55_286.java | 23 ++++++++ Week 03/id_286/LeetCode_69_286.java | 46 +++++++++++++++ 6 files changed, 264 insertions(+) create mode 100644 Week 03/id_286/LeetCode_102_286.java create mode 100644 Week 03/id_286/LeetCode_122_286.java create mode 100644 Week 03/id_286/LeetCode_200_286.java create mode 100644 Week 03/id_286/LeetCode_33_286.java create mode 100644 Week 03/id_286/LeetCode_55_286.java create mode 100644 Week 03/id_286/LeetCode_69_286.java diff --git a/Week 03/id_286/LeetCode_102_286.java b/Week 03/id_286/LeetCode_102_286.java new file mode 100644 index 000000000..d7f80da21 --- /dev/null +++ b/Week 03/id_286/LeetCode_102_286.java @@ -0,0 +1,85 @@ +package com.uanei; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +public class LeetCode_102_286 { + + /** + * dfs 深度优先:递归 + */ + public List> levelOrder1(TreeNode root) { + List> res = new ArrayList<>(); + + if (root == null) return res; + else compute(root, 0, res); + return res; + } + + private void compute(TreeNode node, int level, List> res) { + // level 从0开始,即根节点开始 + // 初始化 level + 1 层,即当前层的集合 + // 如果不想等,说明集合已经初始化了 + if (level == res.size()) { + res.add(new ArrayList<>()); + } + + // 将当前节点添加到当前层的集合中 + res.get(level).add(node.val); + + // 继续处理子节点 + if (node.left != null) compute(node.left, level + 1, res); + if (node.right != null) compute(node.right, level + 1, res); + } + + /** + * bfs 广度优先,queue + while + */ + public List> levelOrder(TreeNode root) { + List> res = new ArrayList<>(); + + if (root == null) return res; + + Queue queue = new LinkedList<>(); + queue.add(root); + int level = 0; + + // 队列中的节点是一层一层的 + while (!queue.isEmpty()) { + // 初始化当前层集合 + res.add(new ArrayList<>()); + + // 遍历当前层 + int currentLevelLength = queue.size(); + for (int i = 0; i < currentLevelLength; i++) { + // 从队列中移除 + TreeNode node = queue.remove(); + + // 添加到集合中 + res.get(level).add(node.val); + + // 将当前层节点的子节点添加到队列中 + if (node.left != null) queue.add(node.left); + if (node.right != null) queue.add(node.right); + } + + // 下一层 + level++; + } + + return res; + } + + public class TreeNode { + int val; + TreeNode left; + TreeNode right; + + TreeNode(int x) { + val = x; + } + } + +} diff --git a/Week 03/id_286/LeetCode_122_286.java b/Week 03/id_286/LeetCode_122_286.java new file mode 100644 index 000000000..0a1f75eb6 --- /dev/null +++ b/Week 03/id_286/LeetCode_122_286.java @@ -0,0 +1,18 @@ +package com.uanei; + +public class LeetCode_122_286 { + + /** + * 贪心算法:只要后边比前边大,前一天就买,后一天就卖 + */ + public int maxProfit(int[] prices) { + int max = 0; + for (int i = 1; i < prices.length; i++) { + if (prices[i] > prices[i - 1]) { + max = max + (prices[i] - prices[i - 1]); + } + } + return max; + } + +} diff --git a/Week 03/id_286/LeetCode_200_286.java b/Week 03/id_286/LeetCode_200_286.java new file mode 100644 index 000000000..ad11b2c4f --- /dev/null +++ b/Week 03/id_286/LeetCode_200_286.java @@ -0,0 +1,58 @@ +package com.uanei; + +public class LeetCode_200_286 { + + // 构建一个坐标中的上下左右 + int dx[] = {-1, 1, 0, 0}; + int dy[] = {0, 0, -1, 1}; + char[][] g; + + /** + * dfs 深度优先的算法,判断周围的1 + */ + public int numIslands(char[][] grid) { + // 初始化岛屿的数量 + int islands = 0; + // g是临时网格,岛屿会被打掉变成水 + g = grid; + + for (int i = 0; i < g.length; i++) { + for (int j = 0; j < g[i].length; j++) { + // 遇到水不处理 + if (g[i][j] == '0') continue; + + // g[i][j] = '1' 表示陆地 + // 遇到1,岛屿,需要通过dfs,深度优先,递归的方式打掉 + islands += sink(i, j); + } + } + + return islands; + } + + private int sink(int i, int j) { + if (g[i][j] == '0') { + return 0; + } + + // 打掉1 + g[i][j] = '0'; + + // 上下左右挨着的位置是1也需要被打掉 + for (int k = 0; k < dx.length; k++) { + // 坐标中的位置 + int x = i + dx[k], y = j + dy[k]; + // 数组下标是大于等于0的 + if (x >= 0 && x < g.length && y >= 0 && y < g[i].length) { + if (g[x][y] == '0') continue; + + // 还需要检查相邻的1的周围是否有1 + sink(x, y); + } + } + + // 一个岛屿被打掉之后,计数 + return 1; + } + +} diff --git a/Week 03/id_286/LeetCode_33_286.java b/Week 03/id_286/LeetCode_33_286.java new file mode 100644 index 000000000..4f8042893 --- /dev/null +++ b/Week 03/id_286/LeetCode_33_286.java @@ -0,0 +1,34 @@ +package com.uanei; + +public class LeetCode_33_286 { + + /** + * 二分查找:通过二分和收敛 + * 本题的关键点是时间复杂度,必须是o(logN)级别的 + */ + public int search(int[] nums, int target) { + int low = 0; + int high = nums.length - 1; + + while (low < high) { + int mid = (low + high) / 2; + + // 如果0到mid有序,则向后规约 + if (nums[0] <= nums[mid] && (target > nums[mid] || target < nums[0])) { + low = mid + 1; + } + // 如果0到mid无序,则说明发生了旋转,如果不在0到mid中,则向后规约 + else if (target > nums[mid] && target < nums[0]) { + low = mid + 1; + } + // 向前规约 + else { + high = mid; + } + } + + // 找到了返回位置索引,没有找到,直接返回-1 + return low == high && nums[low] == target ? low : -1; + } + +} diff --git a/Week 03/id_286/LeetCode_55_286.java b/Week 03/id_286/LeetCode_55_286.java new file mode 100644 index 000000000..661319f4a --- /dev/null +++ b/Week 03/id_286/LeetCode_55_286.java @@ -0,0 +1,23 @@ +package com.uanei; + +public class LeetCode_55_286 { + + /** + * 贪心算法:从后往前,记录能够跳到最后那一个位置的第一个下标值 + * 简单理解就是,从最后位置向前看,能否到达最后 + */ + public boolean canJump(int[] nums) { + if (nums == null) return false; + + int endReachable = nums.length - 1; + for (int i = nums.length - 1; i >= 0; i--) { + // 如果某个位置能到达下一个位置,就往前推 + if (nums[i] + i >= endReachable) { + endReachable = i; + } + } + + return endReachable == 0; + } + +} diff --git a/Week 03/id_286/LeetCode_69_286.java b/Week 03/id_286/LeetCode_69_286.java new file mode 100644 index 000000000..81929d21b --- /dev/null +++ b/Week 03/id_286/LeetCode_69_286.java @@ -0,0 +1,46 @@ +package com.uanei; + +public class LeetCode_69_286 { + + /** + * 二分查找 + */ + public int mySqrt1(int x) { + // 边界情况判断 + if (x == 0 || x == 1) { + return x; + } + + long left = 1; + long right = x; + while (left < right) { + long mid = left + (right - left + 1) / 2; + if (mid * mid > x) { + // mid 比较大,往左边找 + right = mid - 1; + } else { + left = mid; + } + } + + return (int) left; + } + + /** + * 牛顿迭代法:数学公式计算 + */ + public int mySqrt2(int x) { + if (x == 0 || x == 1) { + return x; + } + + long r = x; + + while (r * r > x) { + r = (r + x / r) / 2; + } + + return (int)r; + } + +} From 50ab64af38d7cf530b375da510fafa472e59ae0d Mon Sep 17 00:00:00 2001 From: Shirley Zhu Date: Sun, 3 Nov 2019 13:23:39 +0800 Subject: [PATCH 080/740] add 74 529 860 --- Week 03/id_106/529.minesweeper.java | 147 +++++++++++++++++++++ Week 03/id_106/74.search-a-2-d-matrix.java | 75 +++++++++++ Week 03/id_106/860.lemonade-change.java | 118 +++++++++++++++++ 3 files changed, 340 insertions(+) create mode 100644 Week 03/id_106/529.minesweeper.java create mode 100644 Week 03/id_106/74.search-a-2-d-matrix.java create mode 100644 Week 03/id_106/860.lemonade-change.java diff --git a/Week 03/id_106/529.minesweeper.java b/Week 03/id_106/529.minesweeper.java new file mode 100644 index 000000000..e535e1474 --- /dev/null +++ b/Week 03/id_106/529.minesweeper.java @@ -0,0 +1,147 @@ +/* + * @lc app=leetcode id=529 lang=java + * + * [529] Minesweeper + * + * https://leetcode.com/problems/minesweeper/description/ + * + * algorithms + * Medium (54.79%) + * Likes: 396 + * Dislikes: 379 + * Total Accepted: 42.6K + * Total Submissions: 77.4K + * Testcase Example: '[["E","E","E","E","E"],["E","E","M","E","E"],["E","E","E","E","E"],["E","E","E","E","E"]]\n[3,0]' + * + * Let's play the minesweeper game (Wikipedia, online game)! + * + * You are given a 2D char matrix representing the game board. 'M' represents + * an unrevealed mine, 'E' represents an unrevealed empty square, 'B' + * represents a revealed blank square that has no adjacent (above, below, left, + * right, and all 4 diagonals) mines, digit ('1' to '8') represents how many + * mines are adjacent to this revealed square, and finally 'X' represents a + * revealed mine. + * + * Now given the next click position (row and column indices) among all the + * unrevealed squares ('M' or 'E'), return the board after revealing this + * position according to the following rules: + * + * + * If a mine ('M') is revealed, then the game is over - change it to 'X'. + * If an empty square ('E') with no adjacent mines is revealed, then change it + * to revealed blank ('B') and all of its adjacent unrevealed squares should be + * revealed recursively. + * If an empty square ('E') with at least one adjacent mine is revealed, then + * change it to a digit ('1' to '8') representing the number of adjacent + * mines. + * Return the board when no more squares will be revealed. + * + * + * + * + * Example 1: + * + * + * Input: + * + * [['E', 'E', 'E', 'E', 'E'], + * ⁠['E', 'E', 'M', 'E', 'E'], + * ⁠['E', 'E', 'E', 'E', 'E'], + * ⁠['E', 'E', 'E', 'E', 'E']] + * + * Click : [3,0] + * + * Output: + * + * [['B', '1', 'E', '1', 'B'], + * ⁠['B', '1', 'M', '1', 'B'], + * ⁠['B', '1', '1', '1', 'B'], + * ⁠['B', 'B', 'B', 'B', 'B']] + * + * Explanation: + * + * + * + * Example 2: + * + * + * Input: + * + * [['B', '1', 'E', '1', 'B'], + * ⁠['B', '1', 'M', '1', 'B'], + * ⁠['B', '1', '1', '1', 'B'], + * ⁠['B', 'B', 'B', 'B', 'B']] + * + * Click : [1,2] + * + * Output: + * + * [['B', '1', 'E', '1', 'B'], + * ⁠['B', '1', 'X', '1', 'B'], + * ⁠['B', '1', '1', '1', 'B'], + * ⁠['B', 'B', 'B', 'B', 'B']] + * + * Explanation: + * + * + * + * + * + * Note: + * + * + * The range of the input matrix's height and width is [1,50]. + * The click position will only be an unrevealed square ('M' or 'E'), which + * also means the input board contains at least one clickable square. + * The input board won't be a stage when game is over (some mines have been + * revealed). + * For simplicity, not mentioned rules should be ignored in this problem. For + * example, you don't need to reveal all the unrevealed mines when the game is + * over, consider any cases that you will win the game or flag any squares. + * + * + */ + +// @lc code=start +class Solution { + public char[][] updateBoard(char[][] board, int[] click) { + int m = board.length, n = board[0].length; + int row = click[0], col = click[1]; + + if (board[row][col] == 'M') { // Mine + board[row][col] = 'X'; + } + else { // Empty + // Get number of mines first. + int count = 0; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if (i == 0 && j == 0) continue; + int r = row + i, c = col + j; + if (r < 0 || r >= m || c < 0 || c < 0 || c >= n) continue; + if (board[r][c] == 'M' || board[r][c] == 'X') count++; + } + } + + if (count > 0) { // If it is not a 'B', stop further DFS. + board[row][col] = (char)(count + '0'); + } + else { // Continue DFS to adjacent cells. + board[row][col] = 'B'; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if (i == 0 && j == 0) continue; + int r = row + i, c = col + j; + if (r < 0 || r >= m || c < 0 || c < 0 || c >= n) continue; + if (board[r][c] == 'E') updateBoard(board, new int[] {r, c}); + } + } + } + } + + return board; + } +} +// @lc code=end +//DFS 解法,也可使用BFS解法 + diff --git a/Week 03/id_106/74.search-a-2-d-matrix.java b/Week 03/id_106/74.search-a-2-d-matrix.java new file mode 100644 index 000000000..d925a6b7d --- /dev/null +++ b/Week 03/id_106/74.search-a-2-d-matrix.java @@ -0,0 +1,75 @@ +/* + * @lc app=leetcode id=74 lang=java + * + * [74] Search a 2D Matrix + * + * https://leetcode.com/problems/search-a-2d-matrix/description/ + * + * algorithms + * Medium (35.37%) + * Likes: 1086 + * Dislikes: 126 + * Total Accepted: 258.3K + * Total Submissions: 729.1K + * Testcase Example: '[[1,3,5,7],[10,11,16,20],[23,30,34,50]]\n3' + * + * Write an efficient algorithm that searches for a value in an m x n matrix. + * This matrix has the following properties: + * + * + * Integers in each row are sorted from left to right. + * The first integer of each row is greater than the last integer of the + * previous row. + * + * + * Example 1: + * + * + * Input: + * matrix = [ + * ⁠ [1, 3, 5, 7], + * ⁠ [10, 11, 16, 20], + * ⁠ [23, 30, 34, 50] + * ] + * target = 3 + * Output: true + * + * + * Example 2: + * + * + * Input: + * matrix = [ + * ⁠ [1, 3, 5, 7], + * ⁠ [10, 11, 16, 20], + * ⁠ [23, 30, 34, 50] + * ] + * target = 13 + * Output: false + * + */ + +// @lc code=start +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + int m = matrix.length; + if (m == 0) return false; + int n = matrix[0].length; + + // 二分查找 + int left = 0, right = m * n - 1; + int pivotIdx, pivotElement; + while (left <= right) { + pivotIdx = (left + right) / 2; + pivotElement = matrix[pivotIdx / n][pivotIdx % n]; + if (target == pivotElement) return true; + else { + if (target < pivotElement) right = pivotIdx - 1; + else left = pivotIdx + 1; + } + } + return false; + } +} +// @lc code=end + diff --git a/Week 03/id_106/860.lemonade-change.java b/Week 03/id_106/860.lemonade-change.java new file mode 100644 index 000000000..11a0abb25 --- /dev/null +++ b/Week 03/id_106/860.lemonade-change.java @@ -0,0 +1,118 @@ +/* + * @lc app=leetcode id=860 lang=java + * + * [860] Lemonade Change + * + * https://leetcode.com/problems/lemonade-change/description/ + * + * algorithms + * Easy (50.78%) + * Likes: 368 + * Dislikes: 63 + * Total Accepted: 35.3K + * Total Submissions: 69.4K + * Testcase Example: '[5,5,5,10,20]' + * + * At a lemonade stand, each lemonade costs $5.  + * + * Customers are standing in a queue to buy from you, and order one at a time + * (in the order specified by bills). + * + * Each customer will only buy one lemonade and pay with either a $5, $10, or + * $20 bill.  You must provide the correct change to each customer, so that the + * net transaction is that the customer pays $5. + * + * Note that you don't have any change in hand at first. + * + * Return true if and only if you can provide every customer with correct + * change. + * + * + * + * + * Example 1: + * + * + * Input: [5,5,5,10,20] + * Output: true + * Explanation: + * From the first 3 customers, we collect three $5 bills in order. + * From the fourth customer, we collect a $10 bill and give back a $5. + * From the fifth customer, we give a $10 bill and a $5 bill. + * Since all customers got correct change, we output true. + * + * + * + * Example 2: + * + * + * Input: [5,5,10] + * Output: true + * + * + * + * Example 3: + * + * + * Input: [10,10] + * Output: false + * + * + * + * Example 4: + * + * + * Input: [5,5,10,10,20] + * Output: false + * Explanation: + * From the first two customers in order, we collect two $5 bills. + * For the next two customers in order, we collect a $10 bill and give back a + * $5 bill. + * For the last customer, we can't give change of $15 back because we only have + * two $10 bills. + * Since not every customer received correct change, the answer is false. + * + * + * + * + * Note: + * + * + * 0 <= bills.length <= 10000 + * bills[i] will be either 5, 10, or 20. + * + * + * + * + * + * + */ + +// @lc code=start +class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0, ten = 0; + for (int bill: bills) { + if (bill == 5) + five++; + else if (bill == 10) { + if (five == 0) return false; + five--; + ten++; + } else { + if (five > 0 && ten > 0) { + five--; + ten--; + } else if (five >= 3) { + five -= 3; + } else { + return false; + } + } + } + + return true; + } +} +// @lc code=end + From f98dde4cc1f9de30181f9e1ce8e0af46953eb828 Mon Sep 17 00:00:00 2001 From: xuyusong37 <18819429673@163.com> Date: Sun, 3 Nov 2019 13:40:29 +0800 Subject: [PATCH 081/740] 651-Week 03 --- Week 03/id_651/LeetCode_33_651.cpp | 46 ++++++++++++++++ Week 03/id_651/LeetCode_55_651.cpp | 40 ++++++++++++++ Week 03/id_651/LeetCode_74_651.cpp | 85 +++++++++++++++++++++++++++++ Week 03/id_651/LeetCode_860_651.cpp | 56 +++++++++++++++++++ Week 03/id_651/NOTE.md | 32 +++++++++++ 5 files changed, 259 insertions(+) create mode 100644 Week 03/id_651/LeetCode_33_651.cpp create mode 100644 Week 03/id_651/LeetCode_55_651.cpp create mode 100644 Week 03/id_651/LeetCode_74_651.cpp create mode 100644 Week 03/id_651/LeetCode_860_651.cpp diff --git a/Week 03/id_651/LeetCode_33_651.cpp b/Week 03/id_651/LeetCode_33_651.cpp new file mode 100644 index 000000000..dbc66eb80 --- /dev/null +++ b/Week 03/id_651/LeetCode_33_651.cpp @@ -0,0 +1,46 @@ +/* +假设按照升序排序的数组在预先未知的某个点上进行了旋转。 +( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 +搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 +你可以假设数组中不存在重复的元素。 +你的算法时间复杂度必须是 O(log n) 级别。 +示例 1: +输入: nums = [4,5,6,7,0,1,2], target = 0 +输出: 4 +示例 2: +输入: nums = [4,5,6,7,0,1,2], target = 3 +输出: -1 + +*/ +# include +# include +# include +using namespace std; + +class Solution { +public: + //判断左右边界的值和当前中间值的大小 + //在进行中间值和目标值的大小比较 + int search(vector& nums, int target) { + int left = 0; + int right = nums.size() - 1; + while (left <= right){ + int mid = (right - left) / 2 + left; + if (nums[mid] == target) return mid; + if (nums[mid] < nums[right]){ + if (target > nums[mid] && target <= nums[right]) left = mid + 1; + else right = mid - 1; + } + else{ + if (target < nums[mid] && target >= nums[left]) right = mid - 1; + else left = mid + 1; + } + } + return -1; + } +} + +int main(){ + Solution sol; + return 0; +} \ No newline at end of file diff --git a/Week 03/id_651/LeetCode_55_651.cpp b/Week 03/id_651/LeetCode_55_651.cpp new file mode 100644 index 000000000..86bb9d193 --- /dev/null +++ b/Week 03/id_651/LeetCode_55_651.cpp @@ -0,0 +1,40 @@ +/* +给定一个非负整数数组,你最初位于数组的第一个位置。 + +数组中的每个元素代表你在该位置可以跳跃的最大长度。 + +判断你是否能够到达最后一个位置。 + +示例 1: + +输入: [2,3,1,1,4] +输出: true +解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 + + +思路: + 用一个变量记录位置,然后直接遍历列表,计算该索引能够跳到的位置与变量的大小。 + 如果遍历完还没有,则是false +*/ +# include +# include +# include +using namespace std; + +class Solution { +public: + bool canJump(vector& nums) { + int k=0; + for(int i=0;ik)return false; + k = max(k,i+nums[i]); + } + return true; + } +} + + +int main(){ + Solution sol; + return 0; +} \ No newline at end of file diff --git a/Week 03/id_651/LeetCode_74_651.cpp b/Week 03/id_651/LeetCode_74_651.cpp new file mode 100644 index 000000000..8e1be20a0 --- /dev/null +++ b/Week 03/id_651/LeetCode_74_651.cpp @@ -0,0 +1,85 @@ +/* +编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: +每行中的整数从左到右按升序排列。 +每行的第一个整数大于前一行的最后一个整数。 +示例 1: +输入: +matrix = [ + [1, 3, 5, 7], + [10, 11, 16, 20], + [23, 30, 34, 50] +] +target = 3 +输出: true +matrix = [ + [1, 3, 5, 7], + [10, 11, 16, 20], + [23, 30, 34, 50] +] +target = 13 +输出: false + +思路: + 1. 暴力法1: 双重遍历。 查找元素 + 2. 暴力法2:拼接成一个数组,然后用二分法查找 + 3. 将二维数组具象成一个一维数组,二分法查找 +*/ +# include +# include +# include +using namespace std; + +class Solution { +public: + // 暴力法1 + bool searchMatrix1(vector>& matrix, int target) { + + for (int i=0;i< matrix.size();i++){ + for(int j=0; j< matrix[i].size();j++){ + if (matrix[i][j] == target) + return true; + } + } + return false; + } + // 暴力法2 + bool searchMatrix2(vector>& matrix, int target) { + vector result; + for(int i=0;i target) right = mid - 1; + else left = mid + 1; + } + return false; + } + // 具象成一个数组,进行二分查找 + bool searchMatrix2(vector>& matrix, int target) { + int n = matrix.size(); + // 需要判断下空数组的情况 + if (n == 0) return false; + int m = matrix[0].size(); + // 需要判断下空数组的情况 + if (m == 0) return false; + int l = 0, r = m * n - 1; + while (l != r){ + int mid = (l + r - 1) >> 1; + if (matrix[mid / m][mid % m] < target) + l = mid + 1; + else + r = mid; + } + return matrix[r / m][r % m] == target; + } +} + + +int main(){ + Solution sol; + return 0; +} \ No newline at end of file diff --git a/Week 03/id_651/LeetCode_860_651.cpp b/Week 03/id_651/LeetCode_860_651.cpp new file mode 100644 index 000000000..bb3359b74 --- /dev/null +++ b/Week 03/id_651/LeetCode_860_651.cpp @@ -0,0 +1,56 @@ +/* +在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 +顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 +每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 +注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。 +示例 1: +输入:[5,5,5,10,20] +输出:true +解释: +前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。 +第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。 +第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。 +由于所有客户都得到了正确的找零,所以我们输出 true。 + +思路: 贪心算法: + 第一位是5元,不用找零 + 第二位是10元,找零5元 + 第三位是20元,则返回false + 假设前3位都是5元,第三位是10元,第四位是20元, + 则最优的是找零一张五元,一张十元,而不是三张五元 +*/ +# include +# include +# include +using namespace std; + +class Solution { +public: + bool lemonadeChange(vector& bills){ + int five=0; + int ten=0; + int twenty=0; + int len = bills.size(); + for(int i=0;i0 && ten >0){ + five--;ten--;twenty++; + } + //找3张的要后判断才是最优解 + else if(five>=3) five-=3; + else return false; + } + } + return true; + } +} + +int main(){ + Solution sol; + return 0; +} \ No newline at end of file diff --git a/Week 03/id_651/NOTE.md b/Week 03/id_651/NOTE.md index a6321d6e2..dbfad7525 100644 --- a/Week 03/id_651/NOTE.md +++ b/Week 03/id_651/NOTE.md @@ -1,4 +1,36 @@ # NOTE +Week 03 总结 +1. + 深度优先搜索(DFS): + -> 从根节点开始, 沿着树的分支一直往下找子节点 + -> 直到没有子节点, 再往回上一级, 重复第一步 + -> 直到所有的子节点都遍历了一遍 + + 广度优先搜索(BFS): 每个节点仅访问一次 + -> 从根节点开始, 沿着树的分支往下找,每层的节点。 + -> 每个节点仅访问一次 + -> 直到最后一层没有节点的时候结束 + +2. 贪心算法:找出当前情况的最优解,从而导致结果是全局最优解的算法 + + 与动态规划的区别: + 动态规划会保留以前的运算结果,根据当前结果会进行判断是否回退 +3. 二分查找 : 左右指针,向中间夹逼 + 前提: 目标函数单调性, 存在上下边界, 能通过索引访问 + 模板: + def fs(): + left = 0; right = length - 1; + while left < right: + mid = (left + right)/2 + 1; + if list[mid] == target: + return result + elif list[mid] > target: + right = mid - 1 + else: + left = mid + 1 + +总结: +做题量还没跟上,思维还没开始完全的转化, 暂时还做不到不看题解就能有思路。 还需要慢慢的积累,培养感觉 \ No newline at end of file From 27b1f22d1e756b25d5aa2db092e9aa3563cef413 Mon Sep 17 00:00:00 2001 From: hippieZhou Date: Sun, 3 Nov 2019 13:58:31 +0800 Subject: [PATCH 082/740] add week03 homework --- Week 03/id_701/LeetCode_033_701.cs | 41 ++++++++++++ Week 03/id_701/LeetCode_033_701.py | 21 ++++++ Week 03/id_701/LeetCode_102_701.cs | 34 ++++++++++ Week 03/id_701/LeetCode_102_701.py | 27 ++++++++ Week 03/id_701/LeetCode_153_701.py | 13 ++++ Week 03/id_701/LeetCode_200_701.cs | 36 ++++++++++ Week 03/id_701/LeetCode_200_701.py | 20 ++++++ Week 03/id_701/NOTE.md | 104 ++++++++++++++++++++++++++++- 8 files changed, 294 insertions(+), 2 deletions(-) create mode 100644 Week 03/id_701/LeetCode_033_701.cs create mode 100644 Week 03/id_701/LeetCode_033_701.py create mode 100644 Week 03/id_701/LeetCode_102_701.cs create mode 100644 Week 03/id_701/LeetCode_102_701.py create mode 100644 Week 03/id_701/LeetCode_153_701.py create mode 100644 Week 03/id_701/LeetCode_200_701.cs create mode 100644 Week 03/id_701/LeetCode_200_701.py diff --git a/Week 03/id_701/LeetCode_033_701.cs b/Week 03/id_701/LeetCode_033_701.cs new file mode 100644 index 000000000..6121eaf8e --- /dev/null +++ b/Week 03/id_701/LeetCode_033_701.cs @@ -0,0 +1,41 @@ +public class Solution +{ + public int Search(int[] nums, int target) + { + int index = -1; + int left = 0; + int right = nums.Length - 1; + while (left <= right) + { + int mid = left + ((right - left) / 2); + if (nums[mid] == target) + { + index = mid; + break; + } + if (nums[left] <= nums[mid]) + { + if (target >= nums[left] && target <= nums[mid]) + { + right = mid - 1; + } + else + { + left = mid + 1; + } + } + else + { + if (target > nums[mid] && target <= nums[right]) + { + left = mid + 1; + } + else + { + right = mid - 1; + } + } + } + return index; + } +} \ No newline at end of file diff --git a/Week 03/id_701/LeetCode_033_701.py b/Week 03/id_701/LeetCode_033_701.py new file mode 100644 index 000000000..d26310fed --- /dev/null +++ b/Week 03/id_701/LeetCode_033_701.py @@ -0,0 +1,21 @@ +class Solution: + def search(self, nums: List[int], target: int) -> int: + index = -1 + left, right = 0, len(nums) - 1 + while left <= right: + mid = left + (right - left) // 2 + if nums[mid] == target: + index = mid + break + elif nums[left] > target: + if nums[left] < nums[right]: + right = mid - 1 + else: + left = mid+1 + else: + if nums[left] < nums[right]: + left = mid+1 + else: + right = mid-1 + + return index diff --git a/Week 03/id_701/LeetCode_102_701.cs b/Week 03/id_701/LeetCode_102_701.cs new file mode 100644 index 000000000..518dd2ffd --- /dev/null +++ b/Week 03/id_701/LeetCode_102_701.cs @@ -0,0 +1,34 @@ +/** + * Definition for a binary tree node. */ + public class TreeNode { + public int val; + public TreeNode left; + public TreeNode right; + public TreeNode(int x) { val = x; } + } + +public class Solution { + public IList> LevelOrder(TreeNode root) { + var levels = new List>(); + if(root == null){ + return levels; + } + + void Helper(TreeNode node, int level){ + if(levels.Count == level){ + levels.Add(new List()); + } + levels[level].Add(node.val); + + if(node.left != null){ + Helper(node.left, level + 1); + } + if(node.right != null){ + Helper(node.right, level + 1); + } + } + + Helper(root, 0); + return levels; + } +} \ No newline at end of file diff --git a/Week 03/id_701/LeetCode_102_701.py b/Week 03/id_701/LeetCode_102_701.py new file mode 100644 index 000000000..8cfadda7e --- /dev/null +++ b/Week 03/id_701/LeetCode_102_701.py @@ -0,0 +1,27 @@ +# Definition for a binary tree node. +class TreeNode: + def __init__(self, x): + self.val = x + self.left = None + self.right = None + + +class Solution: + def levelOrder(self, root: TreeNode) -> list: + levels = [] + if not root: + return levels + + def helper(node: TreeNode, level: int): + if level(levels) == level: + levels.append([]) + + levels[level].append(node.val) + + if root.left: + helper(root.left, level + 1) + if root.right: + helper(root.right, level+1) + + helper(root, 0) + return levels diff --git a/Week 03/id_701/LeetCode_153_701.py b/Week 03/id_701/LeetCode_153_701.py new file mode 100644 index 000000000..839f778e5 --- /dev/null +++ b/Week 03/id_701/LeetCode_153_701.py @@ -0,0 +1,13 @@ +class Solution: + def findMin(self, nums: List[int]) -> int: + low, high = 0, len(nums) - 1 + while low <= high: + mid = low + (high - low) // 2 + if high - low <= 1: + return min(nums[high], nums[low]) + if nums[mid] < nums[mid - 1] and nums[mid] < nums[mid+1]: + return nums[mid] + if nums[mid] > nums[high]: + low = mid+1 + else: + high = mid-1 diff --git a/Week 03/id_701/LeetCode_200_701.cs b/Week 03/id_701/LeetCode_200_701.cs new file mode 100644 index 000000000..cda4a8f35 --- /dev/null +++ b/Week 03/id_701/LeetCode_200_701.cs @@ -0,0 +1,36 @@ +public class Solution +{ + public int NumIslands(char[][] grid) + { + int count = 0; + if (grid != null) + { + for (int i = 0; i < grid.Length; i++) + { + for (int j = 0; j < grid[i].Length; j++) + { + if (grid[i][j] == '1') + { + DFS(grid, i, j); + count += 1; + } + } + } + } + return count; + } + + private void DFS(char[][] grid, int x, int y) + { + if (x < 0 || x > grid.Length - 1 || y < 0 || y > grid[0].Length - 1 || grid[x][y] != '1') + { + return; + } + grid[x][y] = '#'; + + DFS(grid, x + 1, y); + DFS(grid, x - 1, y); + DFS(grid, x, y + 1); + DFS(grid, x, y - 1); + } +} \ No newline at end of file diff --git a/Week 03/id_701/LeetCode_200_701.py b/Week 03/id_701/LeetCode_200_701.py new file mode 100644 index 000000000..f1f1ce4b3 --- /dev/null +++ b/Week 03/id_701/LeetCode_200_701.py @@ -0,0 +1,20 @@ +class Solution: + def numIslands(self, grid: list) -> int: + def dfs(grid: list, i: int, j: int): + if i < 0 or j < 0 or i >= len(grid) or j >= len(grid[0]) or grid[i][j] != '1': + return + grid[i][j] = '#' + + dfs(grid, i-1, j) + dfs(grid, i+1, j) + dfs(grid, i, j-1) + dfs(grid, i, j+1) + + count = 0 + if grid: + for i in range(len(grid)): + for j in range(len(grid[i])): + if grid[i][j] == '1': + dfs(grid, i, j) + count += 1 + return count diff --git a/Week 03/id_701/NOTE.md b/Week 03/id_701/NOTE.md index a6321d6e2..000b99740 100644 --- a/Week 03/id_701/NOTE.md +++ b/Week 03/id_701/NOTE.md @@ -1,4 +1,104 @@ -# NOTE +# 【701-week3】第三周学习总结 - +## 深度优先搜索和广度优先搜索 +这两种搜索方式的时间复杂都都是 O(n),每个节点都要且仅仅访问一次,区别在于节点的访问顺序不一样。 + +树的遍历示例代码模板 + +```python +def dfs(node): + if node in visited: + return + + visited.add(node) + + if node.left: + dfs(node.left) + if node.right: + dfs(node.right) +``` + +DFS 代码示例模板: + +```python +# 递归方式 +visited = set() +def dfs(node, visited): + if node in visited: + return + + visited.add(node) + + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) + +# 非递归方式 +def dfs(self,tree): + if tree.root is None: + return [] + visited, stack = [], [tree.root] + + while stack: + node = stack.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + stack.push(nodes) +``` + +BFS 代码示例模板: + +```python +def bfs(graph, start, end): + queue = [] + queue.appned([start]) + visited.add(statrt) + + while queue: + node = queue.pop() + visited.add(node) + + # process(node) + + nodes = generate_related_nodes(node) + queue.push(nodes) +``` + +### 贪心算法 + +贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。 + +贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。 + +贪心法可以解决一些最优化问题,如:求图中的最小生成树、求哈夫曼编码等。然而对于工程和生活中的问题,贪心法一般不能得到我们所要求的答案。 + +一旦一个问题可以通过贪心法来解决,那么贪心法一般是解决这个问题的最好办法。由于贪心法的高效性以及其所求得的答案比较接近最优结果,贪心法也可以用作辅助算法或者直接解决一些要求结果不特别精确的问题。 + +适用场景:简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终 问题的最优解。这种子问题最优解称为最优子结构。 + + +### 二分查找 + +使用条件: + +- 目标函数单调性(单调递增或递减) +- 存在上下界 +- 能够通过索引访问 + +代码模板: + +```python +def binnary_search(array, target): + left, right = 0, len(array) - 1 + while left <= right: + mid = left + (right-left) // 2 + if array[mid] == target: + return array[mid] + elif array[mid] > target: + right = mid - 1 + else: + left = mid + 1 +``` From a7c91abf88eb0cfc96c6a81dc45988de1b0f4d02 Mon Sep 17 00:00:00 2001 From: tukaiqiang Date: Sun, 3 Nov 2019 14:22:04 +0800 Subject: [PATCH 083/740] 346-Week 03 --- Week 03/id_346/LeetCode_200_346.java | 37 +++++++++++++++++++++++ Week 03/id_346/LeetCode_529_346.java | 45 ++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 Week 03/id_346/LeetCode_200_346.java create mode 100644 Week 03/id_346/LeetCode_529_346.java diff --git a/Week 03/id_346/LeetCode_200_346.java b/Week 03/id_346/LeetCode_200_346.java new file mode 100644 index 000000000..0a946d5ae --- /dev/null +++ b/Week 03/id_346/LeetCode_200_346.java @@ -0,0 +1,37 @@ +/** + * @auther: TKQ + * @Title: LeetCode_200_346 + * @Copyright: Copyright (c) 2019 + * @Description: + * @Company: + * @Created: 2019-11-03 14:04 + */ +public class LeetCode_200_346 { + private int n; + private int m; + + public int numIslands(char[][] grid) { + int count = 0; + n = grid.length; + if (n == 0) {return 0;} + m = grid[0].length; + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + if (grid[i][j] == '1') { + DFSMarking(grid, i, j); + ++count; + } + } + } + return count; + } + + private void DFSMarking(char[][] grid, int i, int j) { + if (i < 0 || j < 0 || i >= n || j >= m || grid[i][j] != '1') {return;} + grid[i][j] = '0'; + DFSMarking(grid, i + 1, j); + DFSMarking(grid, i - 1, j); + DFSMarking(grid, i, j + 1); + DFSMarking(grid, i, j - 1); + } +} diff --git a/Week 03/id_346/LeetCode_529_346.java b/Week 03/id_346/LeetCode_529_346.java new file mode 100644 index 000000000..e3b1b065e --- /dev/null +++ b/Week 03/id_346/LeetCode_529_346.java @@ -0,0 +1,45 @@ +/** + * @auther: TKQ + * @Title: LeetCode_529_346 + * @Copyright: Copyright (c) 2019 + * @Description: + * @Company: + * @Created: 2019-11-03 14:20 + */ +public class LeetCode_529_346 { + public char[][] updateBoard(char[][] board, int[] click) { + int m = board.length, n = board[0].length; + int row = click[0], col = click[1]; + + if (board[row][col] == 'M') { // Mine + board[row][col] = 'X'; + } else { // Empty + // Get number of mines first. + int count = 0; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if (i == 0 && j == 0) continue; + int r = row + i, c = col + j; + if (r < 0 || r >= m || c < 0 || c < 0 || c >= n) continue; + if (board[r][c] == 'M' || board[r][c] == 'X') count++; + } + } + + if (count > 0) { // If it is not a 'B', stop further DFS. + board[row][col] = (char) (count + '0'); + } else { // Continue DFS to adjacent cells. + board[row][col] = 'B'; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if (i == 0 && j == 0) continue; + int r = row + i, c = col + j; + if (r < 0 || r >= m || c < 0 || c < 0 || c >= n) continue; + if (board[r][c] == 'E') updateBoard(board, new int[]{r, c}); + } + } + } + } + + return board; + } +} From 9892f853673cab31b1c0834ed1a208eec01f4c39 Mon Sep 17 00:00:00 2001 From: yihan-code-327 Date: Sun, 3 Nov 2019 01:23:21 -0500 Subject: [PATCH 084/740] Week 03 | id 101 --- ...[122]Best Time to Buy and Sell Stock II.py | 50 +++++++ Week 03/id_101/[126]Word Ladder II.py | 141 ++++++++++++++++++ ...53]Find Minimum in Rotated Sorted Array.py | 48 ++++++ Week 03/id_101/[200]Number of Islands.py | 60 ++++++++ .../[33]Search in Rotated Sorted Array.py | 54 +++++++ Week 03/id_101/[455]Assign Cookies.py | 57 +++++++ Week 03/id_101/[45]Jump Game II.py | 43 ++++++ Week 03/id_101/[529]Minesweeper.py | 127 ++++++++++++++++ Week 03/id_101/[55]Jump Game.py | 44 ++++++ Week 03/id_101/[74]Search a 2D Matrix.py | 67 +++++++++ Week 03/id_101/[860]Lemonade Change.py | 102 +++++++++++++ .../id_101/[874]Walking Robot Simulation.py | 103 +++++++++++++ 12 files changed, 896 insertions(+) create mode 100644 Week 03/id_101/[122]Best Time to Buy and Sell Stock II.py create mode 100644 Week 03/id_101/[126]Word Ladder II.py create mode 100644 Week 03/id_101/[153]Find Minimum in Rotated Sorted Array.py create mode 100644 Week 03/id_101/[200]Number of Islands.py create mode 100644 Week 03/id_101/[33]Search in Rotated Sorted Array.py create mode 100644 Week 03/id_101/[455]Assign Cookies.py create mode 100644 Week 03/id_101/[45]Jump Game II.py create mode 100644 Week 03/id_101/[529]Minesweeper.py create mode 100644 Week 03/id_101/[55]Jump Game.py create mode 100644 Week 03/id_101/[74]Search a 2D Matrix.py create mode 100644 Week 03/id_101/[860]Lemonade Change.py create mode 100644 Week 03/id_101/[874]Walking Robot Simulation.py diff --git a/Week 03/id_101/[122]Best Time to Buy and Sell Stock II.py b/Week 03/id_101/[122]Best Time to Buy and Sell Stock II.py new file mode 100644 index 000000000..0e5f17fca --- /dev/null +++ b/Week 03/id_101/[122]Best Time to Buy and Sell Stock II.py @@ -0,0 +1,50 @@ +#Say you have an array for which the ith element is the price of a given stock on day i. +# +# Design an algorithm to find the maximum profit. You may complete as many transactions as you like (i.e., buy one and sell one share of the stock multiple times). +# +# Note: You may not engage in multiple transactions at the same time (i.e., you must sell the stock before you buy again). +# +# Example 1: +# +# +#Input: [7,1,5,3,6,4] +#Output: 7 +#Explanation: Buy on day 2 (price = 1) and sell on day 3 (price = 5), profit = 5-1 = 4. +#  Then buy on day 4 (price = 3) and sell on day 5 (price = 6), profit = 6-3 = 3. +# +# +# Example 2: +# +# +#Input: [1,2,3,4,5] +#Output: 4 +#Explanation: Buy on day 1 (price = 1) and sell on day 5 (price = 5), profit = 5-1 = 4. +#  Note that you cannot buy on day 1, buy on day 2 and sell them later, as you are +#  engaging multiple transactions at the same time. You must sell before buying again. +# +# +# Example 3: +# +# +#Input: [7,6,4,3,1] +#Output: 0 +#Explanation: In this case, no transaction is done, i.e. max profit = 0. +# Related Topics Array Greedy + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def maxProfit(self, prices): + """ + :type prices: List[int] + :rtype: int + """ + max_profit = 0 + for i in range(1, len(prices)): + diff = prices[i] - prices[i-1] + if diff > 0: + max_profit += diff + return max_profit + +#leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_101/[126]Word Ladder II.py b/Week 03/id_101/[126]Word Ladder II.py new file mode 100644 index 000000000..1ef782874 --- /dev/null +++ b/Week 03/id_101/[126]Word Ladder II.py @@ -0,0 +1,141 @@ +#Given two words (beginWord and endWord), and a dictionary's word list, find all shortest transformation sequence(s) from beginWord to endWord, such that: +# +# +# Only one letter can be changed at a time +# Each transformed word must exist in the word list. Note that beginWord is not a transformed word. +# +# +# Note: +# +# +# Return an empty list if there is no such transformation sequence. +# All words have the same length. +# All words contain only lowercase alphabetic characters. +# You may assume no duplicates in the word list. +# You may assume beginWord and endWord are non-empty and are not the same. +# +# +# Example 1: +# +# +#Input: +#beginWord = "hit", +#endWord = "cog", +#wordList = ["hot","dot","dog","lot","log","cog"] +# +#Output: +#[ +# ["hit","hot","dot","dog","cog"], +#  ["hit","hot","lot","log","cog"] +#] +# +# +# Example 2: +# +# +#Input: +#beginWord = "hit" +#endWord = "cog" +#wordList = ["hot","dot","dog","lot","log"] +# +#Output: [] +# +#Explanation: The endWord "cog" is not in wordList, therefore no possible transformation. +# +# +# +# +# Related Topics Array String Backtracking Breadth-first Search + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + ''' + maintain a dict which has: + key -> word can be transformed from words in value + value -> set of curr words which can transform to + + example: 'cog' : set('dog', 'log') + both 'dog' and 'log' can be transformed to 'cog' + ''' + + def findLadders(self, beginWord, endWord, dic): + words = set(dic) + if endWord not in words: + return [] + parents = collections.defaultdict(set) + forward, backward = {beginWord}, {endWord} + direction = 1 + while forward and backward: + if len(forward) > len(backward): + forward, backward = backward, forward + direction *= -1 + + next_forward = set() + words -= forward + for word in forward: + self._build_next(next_forward, word, words, parents, direction) + forward = next_forward + if next_forward & backward: + res = [] + path = [endWord] + res = self.dfs(res, path, endWord, beginWord, parents) + return res + return [] + + def dfs(self, res, path, curr_word, dest_word, parents): + if curr_word == dest_word: + res.append(path[::-1]) + return res + for word in parents[curr_word]: + path.append(word) + self.dfs(res, path, word, dest_word, parents) + path.pop() + return res + + def _build_next(self, next_forward, word, words, parents, direction): + for i in range(len(word)): + left, right = word[:i], word[i + 1:] + for c in string.ascii_lowercase: + new_word = left + c + right + if new_word not in words: + continue + next_forward.add(new_word) + if direction == 1: + parents[new_word].add(word) + else: + parents[word].add(new_word) + + def findLaddersII(self, beginWord, endWord, wordList): + """ + :type beginWord: str + :type endWord: str + :type wordList: List[str] + :rtype: List[List[str]] + """ + dic = set(wordList) + if endWord not in dic: + return [] + fathers_dict = collections.defaultdict(set) + curr_from = {beginWord} # or {beginWord} + while curr_from and endWord not in fathers_dict: + derive_from = collections.defaultdict(set) + for word in curr_from: + self._build_children(derive_from, word, dic, fathers_dict) + curr_from = derive_from # move to next level + fathers_dict.update(derive_from) + res = [[endWord]] + # build result from end to begin, backward + while res and res[0][0] != beginWord: + res = [[p] + row for row in res for p in fathers_dict[row[0]]] + return res + + def _build_children(self, derive_from, word, word_dict, fathers_dict): + for i in range(len(word)): + for c in string.ascii_lowercase: + derive = word[:i] + c + word[i+1:] + if derive in word_dict and derive not in fathers_dict: + derive_from[derive].add(word) + +#leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_101/[153]Find Minimum in Rotated Sorted Array.py b/Week 03/id_101/[153]Find Minimum in Rotated Sorted Array.py new file mode 100644 index 000000000..02ee89792 --- /dev/null +++ b/Week 03/id_101/[153]Find Minimum in Rotated Sorted Array.py @@ -0,0 +1,48 @@ +#Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. +# +# (i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]). +# +# Find the minimum element. +# +# You may assume no duplicate exists in the array. +# +# Example 1: +# +# +#Input: [3,4,5,1,2] +#Output: 1 +# +# +# Example 2: +# +# +#Input: [4,5,6,7,0,1,2] +#Output: 0 +# +# Related Topics Array Binary Search + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def findMin(self, nums): + """ + :type nums: List[int] + :rtype: int + """ + ''' + The proof that the loop will exit: after each iteration either the 'end' decreases + or the 'start' increases, so the interval [start, end] will always shrink. + ''' + start, end = 0, len(nums) - 1 + while start < end: + mid = start + (end - start) // 2 + if nums[mid] < nums[end]: + # minimum in left part + end = mid + elif nums[mid] > nums[end]: + # minimum in right part + start = mid+1 + return nums[start] + +#leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_101/[200]Number of Islands.py b/Week 03/id_101/[200]Number of Islands.py new file mode 100644 index 000000000..7466f5ab2 --- /dev/null +++ b/Week 03/id_101/[200]Number of Islands.py @@ -0,0 +1,60 @@ +#Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water. +# +# Example 1: +# +# +#Input: +#11110 +#11010 +#11000 +#00000 +# +#Output: 1 +# +# +# Example 2: +# +# +#Input: +#11000 +#11000 +#00100 +#00011 +# +#Output: 3 +# Related Topics Depth-first Search Breadth-first Search Union Find + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + dx = [1, 0, -1, 0] + dy = [0, 1, 0, -1] + + def numIslands(self, grid): + m = len(grid) + if m == 0: + return 0 + n = len(grid[0]) + marked = [[False for _ in range(n)] for _ in range(m)] + count = 0 + for i in range(m): + for j in range(n): + if not marked[i][j] and grid[i][j] == '1': + count += 1 + self._dfs(grid, i, j, m, n, marked) + + return count + + def _dfs(self, grid, i, j, m, n, marked): + marked[i][j] = True + for k in range(4): + ni = i + self.dx[k] + nj = j + self.dy[k] + if 0 <= ni < m and 0 <= nj < n and not marked[ni][nj] and grid[ni][nj] == '1': + marked[ni][nj] = True + self._dfs(grid, ni, nj, m, n, marked) + + + +#leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_101/[33]Search in Rotated Sorted Array.py b/Week 03/id_101/[33]Search in Rotated Sorted Array.py new file mode 100644 index 000000000..394220916 --- /dev/null +++ b/Week 03/id_101/[33]Search in Rotated Sorted Array.py @@ -0,0 +1,54 @@ +#Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. +# +# (i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]). +# +# You are given a target value to search. If found in the array return its index, otherwise return -1. +# +# You may assume no duplicate exists in the array. +# +# Your algorithm's runtime complexity must be in the order of O(log n). +# +# Example 1: +# +# +#Input: nums = [4,5,6,7,0,1,2], target = 0 +#Output: 4 +# +# +# Example 2: +# +# +#Input: nums = [4,5,6,7,0,1,2], target = 3 +#Output: -1 +# Related Topics Array Binary Search + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def search(self, nums, target): + """ + :type nums: List[int] + :type target: int + :rtype: int + """ + start, end = 0, len(nums) - 1 + while start <= end: + mid = start + (end - start) // 2 + if nums[mid] == target: + return mid + elif nums[mid] >= nums[start]: + if nums[start] <= target < nums[mid]: + end = mid-1 + else: + start = mid+1 + else: + # exclude mid and include end + if nums[mid] < target <= nums[end]: + start = mid+1 + else: + end = mid-1 + return -1 + + +#leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_101/[455]Assign Cookies.py b/Week 03/id_101/[455]Assign Cookies.py new file mode 100644 index 000000000..826d6e5f9 --- /dev/null +++ b/Week 03/id_101/[455]Assign Cookies.py @@ -0,0 +1,57 @@ +# +#Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie. Each child i has a greed factor gi, which is the minimum size of a cookie that the child will be content with; and each cookie j has a size sj. If sj >= gi, we can assign the cookie j to the child i, and the child i will be content. Your goal is to maximize the number of your content children and output the maximum number. +# +# +# Note: +#You may assume the greed factor is always positive. +#You cannot assign more than one cookie to one child. +# +# +# Example 1: +# +#Input: [1,2,3], [1,1] +# +#Output: 1 +# +#Explanation: You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3. +#And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content. +#You need to output 1. +# +# +# +# Example 2: +# +#Input: [1,2], [1,2,3] +# +#Output: 2 +# +#Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2. +#You have 3 cookies and their sizes are big enough to gratify all of the children, +#You need to output 2. +# +# Related Topics Greedy + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def findContentChildren(self, g, s): + """ + :type g: List[int] + :type s: List[int] + :rtype: int + """ + # greedy algo + # sort grid and size array separately + # find right size cookie to child need small size cookie first + g.sort() + s.sort() + m, n = len(g), len(s) + i, j = 0, 0 + while i < m and j < n: + if g[i] <= s[j]: + i += 1 + j += 1 + return i + +#leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_101/[45]Jump Game II.py b/Week 03/id_101/[45]Jump Game II.py new file mode 100644 index 000000000..0d64a65d9 --- /dev/null +++ b/Week 03/id_101/[45]Jump Game II.py @@ -0,0 +1,43 @@ +#Given an array of non-negative integers, you are initially positioned at the first index of the array. +# +# Each element in the array represents your maximum jump length at that position. +# +# Your goal is to reach the last index in the minimum number of jumps. +# +# Example: +# +# +#Input: [2,3,1,1,4] +#Output: 2 +#Explanation: The minimum number of jumps to reach the last index is 2. +# Jump 1 step from index 0 to 1, then 3 steps to the last index. +# +# Note: +# +# You can assume that you can always reach the last index. +# Related Topics Array Greedy + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def jump(self, nums): + """ + :type nums: List[int] + :rtype: int + """ + + # so far jump max len + # track curr jump max len from each pos + # record previous jump max len + # only update step when curr pos == prev jump max len + # should not consider last item in array + step, jump_max, prev_jump_max = 0, 0, 0 + for i in range(len(nums)-1): + jump_max = max(jump_max, nums[i] + i) + if i == prev_jump_max: + prev_jump_max = jump_max + step += 1 + return step + +#leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_101/[529]Minesweeper.py b/Week 03/id_101/[529]Minesweeper.py new file mode 100644 index 000000000..fd618ff6b --- /dev/null +++ b/Week 03/id_101/[529]Minesweeper.py @@ -0,0 +1,127 @@ +#Let's play the minesweeper game (Wikipedia, online game)! +# +# You are given a 2D char matrix representing the game board. 'M' represents an unrevealed mine, 'E' represents an unrevealed empty square, 'B' represents a revealed blank square that has no adjacent (above, below, left, right, and all 4 diagonals) mines, digit ('1' to '8') represents how many mines are adjacent to this revealed square, and finally 'X' represents a revealed mine. +# +# Now given the next click position (row and column indices) among all the unrevealed squares ('M' or 'E'), return the board after revealing this position according to the following rules: +# +# +# If a mine ('M') is revealed, then the game is over - change it to 'X'. +# If an empty square ('E') with no adjacent mines is revealed, then change it to revealed blank ('B') and all of its adjacent unrevealed squares should be revealed recursively. +# If an empty square ('E') with at least one adjacent mine is revealed, then change it to a digit ('1' to '8') representing the number of adjacent mines. +# Return the board when no more squares will be revealed. +# +# +# +# +# Example 1: +# +# +#Input: +# +#[['E', 'E', 'E', 'E', 'E'], +# ['E', 'E', 'M', 'E', 'E'], +# ['E', 'E', 'E', 'E', 'E'], +# ['E', 'E', 'E', 'E', 'E']] +# +#Click : [3,0] +# +#Output: +# +#[['B', '1', 'E', '1', 'B'], +# ['B', '1', 'M', '1', 'B'], +# ['B', '1', '1', '1', 'B'], +# ['B', 'B', 'B', 'B', 'B']] +# +#Explanation: +# +# +# +# Example 2: +# +# +#Input: +# +#[['B', '1', 'E', '1', 'B'], +# ['B', '1', 'M', '1', 'B'], +# ['B', '1', '1', '1', 'B'], +# ['B', 'B', 'B', 'B', 'B']] +# +#Click : [1,2] +# +#Output: +# +#[['B', '1', 'E', '1', 'B'], +# ['B', '1', 'X', '1', 'B'], +# ['B', '1', '1', '1', 'B'], +# ['B', 'B', 'B', 'B', 'B']] +# +#Explanation: +# +# +# +# +# +# Note: +# +# +# The range of the input matrix's height and width is [1,50]. +# The click position will only be an unrevealed square ('M' or 'E'), which also means the input board contains at least one clickable square. +# The input board won't be a stage when game is over (some mines have been revealed). +# For simplicity, not mentioned rules should be ignored in this problem. For example, you don't need to reveal all the unrevealed mines when the game is over, consider any cases that you will win the game or flag any squares. +# +# Related Topics Depth-first Search Breadth-first Search + + + +#leetcode submit region begin(Prohibit modification and deletion) +import collections + +class Solution(object): + # total 8 directions including corners + + def updateBoard(self, board, click): + """ + :type board: List[List[str]] + :type click: List[int] + :rtype: List[List[str]] + """ + NUM = "B123456789" + dx = [1, 0, -1, 0, 1, 1, -1, -1] + dy = [0, 1, 0, -1, 1, -1, 1, -1] + queue = collections.deque([click]) + m, n = len(board), len(board[0]) + # symbols = set(["M", 'E']) + while queue: + i, j = queue.popleft() + if board[i][j] == "B": # if it is already revealed + continue + if board[i][j] == "M": # if click on mine + board[i][j] = "X" + break + mine_cnt = 0 + neighbors = [] + for k in range(8): + ni, nj = i + dx[k], j + dy[k] + if 0<=ni 0 and five > 0: + ten -= 1 + five -= 1 + elif five >= 3: # otherwise three fives + five -= 3 + else: + return False + return True + +#leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_101/[874]Walking Robot Simulation.py b/Week 03/id_101/[874]Walking Robot Simulation.py new file mode 100644 index 000000000..7e1b66fbb --- /dev/null +++ b/Week 03/id_101/[874]Walking Robot Simulation.py @@ -0,0 +1,103 @@ +#A robot on an infinite grid starts at point (0, 0) and faces north. The robot can receive one of three possible types of commands: +# +# +# -2: turn left 90 degrees +# -1: turn right 90 degrees +# 1 <= x <= 9: move forward x units +# +# +# Some of the grid squares are obstacles. +# +# The i-th obstacle is at grid point (obstacles[i][0], obstacles[i][1]) +# +# If the robot would try to move onto them, the robot stays on the previous grid square instead (but still continues following the rest of the route.) +# +# Return the square of the maximum Euclidean distance that the robot will be from the origin. +# +# +# +# Example 1: +# +# +#Input: commands = [4,-1,3], obstacles = [] +#Output: 25 +#Explanation: robot will go to (3, 4) +# +# +# +# Example 2: +# +# +#Input: commands = [4,-1,4,-2,4], obstacles = [[2,4]] +#Output: 65 +#Explanation: robot will be stuck at (1, 4) before turning left and going to (1, 8) +# +# +# +# +# +# Note: +# +# +# 0 <= commands.length <= 10000 +# 0 <= obstacles.length <= 10000 +# -30000 <= obstacle[i][0] <= 30000 +# -30000 <= obstacle[i][1] <= 30000 +# The answer is guaranteed to be less than 2 ^ 31. +# +# Related Topics Greedy + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def robotSim(self, commands, obstacles): + """ + :type commands: List[int] + :type obstacles: List[List[int]] + :rtype: int + """ + # facing north first + dx = [0, 1, 0, -1] + dy = [1, 0, -1, 0] + ''' + x,y+1 (1) + x-1,y (4)<- x,y -> x+1,y (2) + x,y-1 (3) + ''' + obstacles_set = set(map(tuple, obstacles)) + res = 0 + x, y, d = 0, 0, 0 + for cmd in commands: + if cmd == -2: # left is (idx-1) where idx is direction index + d = (d-1) % 4 + elif cmd == -1: # right is (idx+1) + d = (d+1) % 4 + else: + while cmd > 0 and (x+dx[d], y+dy[d]) not in obstacles_set: + x, y = x+dx[d], y+dy[d] + cmd -= 1 + res = max(res, x**2 + y**2) + return res + + + def robotSim(self, commands: List[int], obstacles: List[List[int]]) -> int: + x, y = 0, 0 # pos + dx, dy = 0, 1 # direction (north) + obstacles = set(map(tuple, obstacles)) + res = 0 + for cmd in commands: + if cmd == -2: + dx, dy = -dy, dx # left + elif cmd == -1: + dx, dy = dy, -dx # right + else: + for _ in range(cmd): + if (x+dx, y+dy) in obstacles: + break + x += dx + y += dy + res = max(res, x**2 + y**2) + return res + +#leetcode submit region end(Prohibit modification and deletion) From 5807dbbf1db5a9442d0dda03b3f9f39d68123259 Mon Sep 17 00:00:00 2001 From: Carlos/Desktop Date: Sun, 3 Nov 2019 14:54:13 +0800 Subject: [PATCH 085/740] Add Week 03 homework --- Week 03/id_126/LeetCode_127_126.py | 24 ++++++++++++++++++++++++ Week 03/id_126/LeetCode_33_126.py | 25 +++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 Week 03/id_126/LeetCode_127_126.py create mode 100644 Week 03/id_126/LeetCode_33_126.py diff --git a/Week 03/id_126/LeetCode_127_126.py b/Week 03/id_126/LeetCode_127_126.py new file mode 100644 index 000000000..edb05e31b --- /dev/null +++ b/Week 03/id_126/LeetCode_127_126.py @@ -0,0 +1,24 @@ +class Solution: + def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: + if endWord not in wordList: + return 0 + wordict = set(wordList) + s1 = {beginWord} + s2 = {endWord} + n = len(beginWord) + step = 0 + wordict.remove(endWord) + while s1 and s2: + step += 1 + if len(s1) > len(s2): s1, s2 = s2, s1 + s = set() + for word in s1: + nextword = [word[:i] + chr(j) + word[i + 1:] for j in range(97, 123) for i in range(n)] + for w in nextword: + if w in s2: + return step + 1 + if w not in wordict: continue + wordict.remove(w) + s.add(w) + s1 = s + return 0 \ No newline at end of file diff --git a/Week 03/id_126/LeetCode_33_126.py b/Week 03/id_126/LeetCode_33_126.py new file mode 100644 index 000000000..7208f04a2 --- /dev/null +++ b/Week 03/id_126/LeetCode_33_126.py @@ -0,0 +1,25 @@ +class Solution: + def search(self, nums: List[int], target: int) -> int: + if not nums:return -1 + n = len(nums) + left = 0 + right = len(nums) - 1 + while left < right: + mid = left + (right - left) //2 + if nums[mid] > nums[right]: + left = mid + 1 + else: + right = mid + t = left + left = 0 + right = len(nums) - 1 + while left <= right: + mid = (left + right) //2 + realmid = (mid + t) % n + if nums[realmid] == target: + return realmid + elif nums[realmid] > target: + right = mid - 1 + else: + left = mid + 1 + return -1 From e8635f1ed64f710c05dc16bbc2d1ab3af4646886 Mon Sep 17 00:00:00 2001 From: Ricardotang Date: Sun, 3 Nov 2019 15:26:11 +0800 Subject: [PATCH 086/740] homework --- Week 03/id_506/LeetCode_127_506.java | 102 +++++++++++++++++++++++++++ Week 03/id_506/LeetCode_455_506.java | 34 +++++++++ Week 03/id_506/LeetCode_860_506.java | 52 ++++++++++++++ 3 files changed, 188 insertions(+) create mode 100644 Week 03/id_506/LeetCode_127_506.java create mode 100644 Week 03/id_506/LeetCode_455_506.java create mode 100644 Week 03/id_506/LeetCode_860_506.java diff --git a/Week 03/id_506/LeetCode_127_506.java b/Week 03/id_506/LeetCode_127_506.java new file mode 100644 index 000000000..4f5cc9896 --- /dev/null +++ b/Week 03/id_506/LeetCode_127_506.java @@ -0,0 +1,102 @@ +class Solution { + + int count = 0; + + public int ladderLength(String beginWord, String endWord, List wordList) { + + + + if (beginWord.length() == 0 || endWord.length() == 0 || wordList.size() == 0){ + return 0; + } + + boolean result = false; + for (String s: wordList) { + + if (s.equals(endWord)){ + result = true; + } + } + + if (!result){ + return 0; + } + + + return bfs(beginWord, endWord, wordList); + + } + + public boolean isOne(String now, String next){ + + if (now.length() != next.length()){ + return false; + } + + char[] nowArray = now.toCharArray(); + char[] nextArray = next.toCharArray(); + int num = 0; + for (int i = 0; i < now.length(); i++){ + + if (nowArray[i] != nextArray[i]){ + num++; + } + } + if (num == 1){ + return true; + } + return false; + + } + + int bfs(String start, String end, List wordList){ + + List queue = new ArrayList<>(); + + Set visit = new HashSet<>(); + + queue.add(start); + visit.add(start); + + int step = 1; + while (!queue.isEmpty()){ + step ++; + + List now = new ArrayList<>(); + for (String s: queue) { + now.add(s); + } + queue.clear(); + for (String tmp: now + ) { + + + for (int i = 0; i < wordList.size(); i++) { + + if (!visit.contains(wordList.get(i))) { + + if (isOne(tmp, wordList.get(i))) { + + if (end.equals(wordList.get(i))) { + return step; + } + + queue.add(wordList.get(i)); + visit.add(wordList.get(i)); + + } + } + } + + } + + + } + + return 0; + + + } + + +} \ No newline at end of file diff --git a/Week 03/id_506/LeetCode_455_506.java b/Week 03/id_506/LeetCode_455_506.java new file mode 100644 index 000000000..da737ba13 --- /dev/null +++ b/Week 03/id_506/LeetCode_455_506.java @@ -0,0 +1,34 @@ +class Solution { + public int findContentChildren(int[] g, int[] s) { + + + if (s.length == 0 || g.length == 0){ + return 0; + } + Arrays.sort(g); + Arrays.sort(s); + + int count = 0; + + int gPos = g.length -1; + for (int j = s.length -1; j >= 0 && gPos >= 0; j--){ + + + while(s[j] < g[gPos]){ + + + gPos --; + if (gPos < 0){ + return count; + } + } + count ++; + gPos --; + + } + return count; + + + + } +} \ No newline at end of file diff --git a/Week 03/id_506/LeetCode_860_506.java b/Week 03/id_506/LeetCode_860_506.java new file mode 100644 index 000000000..07695503c --- /dev/null +++ b/Week 03/id_506/LeetCode_860_506.java @@ -0,0 +1,52 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + int fives = 0; + int tens = 0; + + for(int i : bills){ + + if (i == 5){ + fives++; + } + + if (i == 10){ + + if (fives < 1){ + return false; + } + + tens ++; + fives --; + + } + + if (i == 20){ + + if (tens == 0){ + if (fives < 3){ + return false; + } + } + if (tens > 0){ + if (fives < 1){ + return false; + } + } + + + if (tens > 0){ + tens --; + fives --; + + }else{ + fives -= 3; + } + + + } + + } + return true; + + } +} \ No newline at end of file From cb799257aaa029d621ddf6515ac5fbf4b8bddc1f Mon Sep 17 00:00:00 2001 From: chenshun <1026020332@qq.com> Date: Sun, 3 Nov 2019 15:41:56 +0800 Subject: [PATCH 087/740] =?UTF-8?q?feat:=20=E7=AC=AC=E4=B8=89=E5=91=A8?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_471/LeetCode_122_471.java | 19 ++++++++++ Week 03/id_471/LeetCode_127_471.java | 52 ++++++++++++++++++++++++++++ Week 03/id_471/LeetCode_200_471.java | 28 +++++++++++++++ Week 03/id_471/LeetCode_33_471.java | 39 +++++++++++++++++++++ Week 03/id_471/LeetCode_455_471.java | 15 ++++++++ Week 03/id_471/LeetCode_529_471.java | 48 +++++++++++++++++++++++++ Week 03/id_471/LeetCode_860_471.java | 28 +++++++++++++++ 7 files changed, 229 insertions(+) create mode 100644 Week 03/id_471/LeetCode_122_471.java create mode 100644 Week 03/id_471/LeetCode_127_471.java create mode 100644 Week 03/id_471/LeetCode_200_471.java create mode 100644 Week 03/id_471/LeetCode_33_471.java create mode 100644 Week 03/id_471/LeetCode_455_471.java create mode 100644 Week 03/id_471/LeetCode_529_471.java create mode 100644 Week 03/id_471/LeetCode_860_471.java diff --git a/Week 03/id_471/LeetCode_122_471.java b/Week 03/id_471/LeetCode_122_471.java new file mode 100644 index 000000000..d749c8f48 --- /dev/null +++ b/Week 03/id_471/LeetCode_122_471.java @@ -0,0 +1,19 @@ +class Solution { + public int maxProfit(int[] prices) { + + if (prices.length == 0) { + return 0; + } + + int sale = 0; + int hold = -prices[0]; + + for (int i = 1; i < prices.length; i++) { + int tempSale = sale; + sale = Math.max(sale, hold + prices[i]); + hold = Math.max(hold, tempSale - prices[i]); + } + + return sale; + } +} \ No newline at end of file diff --git a/Week 03/id_471/LeetCode_127_471.java b/Week 03/id_471/LeetCode_127_471.java new file mode 100644 index 000000000..2c0c5dc95 --- /dev/null +++ b/Week 03/id_471/LeetCode_127_471.java @@ -0,0 +1,52 @@ +class Solution { + public int ladderLength(String beginWord, String endWord, List wordList) { + Set beginSet = new HashSet<>(); + Set endSet = new HashSet<>(); + Set wordSet = new HashSet<>(); + Set visited = new HashSet<>(); + int level = 1; + + for (String word : wordList) { + wordSet.add(word); + } + + if (!wordSet.contains(endWord)) { + return 0; + } + beginSet.add(beginWord); + endSet.add(endWord); + + while (!beginSet.isEmpty() && !endSet.isEmpty()) { + if (beginSet.size() > endSet.size()) { + Set temp = beginSet; + beginSet = endSet; + endSet = temp; + } + Set tempSet = new HashSet<>(); + for (String word : beginSet) { + char[] wordArray = word.toCharArray(); + for (int i = 0; i < wordArray.length; i++) { + char oldChar = wordArray[i]; + for (int j = 0; j < 26; j++) { + wordArray[i] = (char)('a' + j); + String wordString = String.valueOf(wordArray); + if (endSet.contains(wordString)) { + return level + 1; + } + if (!visited.contains(wordString) && wordList.contains(wordString)) { + //System.out.println(wordString); + + visited.add(wordString); + tempSet.add(wordString); + } + } + wordArray[i] = oldChar; + } + } + beginSet = tempSet; + level++; + } + + return 0; + } +} \ No newline at end of file diff --git a/Week 03/id_471/LeetCode_200_471.java b/Week 03/id_471/LeetCode_200_471.java new file mode 100644 index 000000000..0fb5fb902 --- /dev/null +++ b/Week 03/id_471/LeetCode_200_471.java @@ -0,0 +1,28 @@ +class Solution { + public int numIslands(char[][] grid) { + int num = 0; + int path[][] = new int[][]{{0, -1}, {0,1}, {1,0}, {-1,0}}; + + for (int i = 0; i < grid.length; i++) { + for (int j = 0; j < grid[i].length; j++) { + if (grid[i][j] == '1') { + num++; + dfs(i, j, grid, path); + } + } + } + + return num; + } + + public void dfs(int x, int y, char[][] grid, int[][] path) { + //terminator + if (x < 0 || x >= grid.length || y < 0 || y >= grid[0].length || grid[x][y] == '0') { + return; + } + grid[x][y] = '0'; + for (int i = 0; i < path.length; i++){ + dfs(x + path[i][0], y + path[i][1], grid, path); + } + } +} \ No newline at end of file diff --git a/Week 03/id_471/LeetCode_33_471.java b/Week 03/id_471/LeetCode_33_471.java new file mode 100644 index 000000000..9a6d9a41c --- /dev/null +++ b/Week 03/id_471/LeetCode_33_471.java @@ -0,0 +1,39 @@ +class Solution { + public int search(int[] nums, int target) { + int left = 0, right = nums.length-1; + + while (left <= right) { + int mid = left + (right - left) / 2; + if (nums[left] <= nums[mid]) { + if (target >= nums[left] && target <= nums[mid]) { + return binarySearch(left, mid, nums, target); + } else { + left = mid + 1; + } + } else { + if (target >= nums[mid] && target <= nums[right]) { + return binarySearch(mid, right, nums, target); + } else { + right = mid - 1; + } + } + } + + return -1; + } + + public int binarySearch(int left, int right, int[] nums, int target) { + while (left <= right) { + int mid = left + (right - left) / 2; + if (nums[mid] == target) { + return mid; + } else if (nums[mid] > target) { + right = mid - 1; + } else { + left = mid + 1; + } + } + + return -1; + } +} \ No newline at end of file diff --git a/Week 03/id_471/LeetCode_455_471.java b/Week 03/id_471/LeetCode_455_471.java new file mode 100644 index 000000000..c751470fb --- /dev/null +++ b/Week 03/id_471/LeetCode_455_471.java @@ -0,0 +1,15 @@ +class Solution { + public int findContentChildren(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + + int i = 0, j = 0; + while (i < g.length && j < s.length) { + if (g[i] <= s[j++]) { + i++; + } + } + + return i; + } +} \ No newline at end of file diff --git a/Week 03/id_471/LeetCode_529_471.java b/Week 03/id_471/LeetCode_529_471.java new file mode 100644 index 000000000..78bceb3c1 --- /dev/null +++ b/Week 03/id_471/LeetCode_529_471.java @@ -0,0 +1,48 @@ +class Solution { + public char[][] updateBoard(char[][] board, int[] click) { + int x = click[0], y = click[1]; + if (board[x][y] == 'M') { + board[x][y] = 'X'; + return board; + } + + dfs(x, y, board); + + return board; + } + + public void dfs(int x, int y, char[][] board) { + if (x < 0 || x >= board.length || y < 0 || y >= board[x].length || board[x][y] != 'E') { + return; + } + + int num = findMines(x, y, board); + if (num != 0) { + board[x][y] = (char)('0'+num); + return; + + } + + board[x][y] = 'B'; + + int path[][] = new int[][]{{0, 1}, {0, -1}, {1, 0}, {-1, 0}, {1, 1}, {1, -1}, {-1, 1}, {-1, -1}}; + for (int i = 0; i < path.length; i++) { + dfs(x + path[i][0], y + path[i][1], board); + } + } + + public int findMines(int x, int y, char[][] board) { + int num = 0; + int tempx = x; + int tempy = y; + int path[][] = new int[][]{{0, 1}, {0, -1}, {1, 0}, {-1, 0}, {1, 1}, {1, -1}, {-1, 1}, {-1, -1}}; + for (int i = 0; i < path.length; i++) { + x = tempx + path[i][0]; + y = tempy + path[i][1]; + if (x >= 0 && x < board.length && y >= 0 && y < board[x].length && board[x][y] == 'M') { + num++; + } + } + return num; + } +} \ No newline at end of file diff --git a/Week 03/id_471/LeetCode_860_471.java b/Week 03/id_471/LeetCode_860_471.java new file mode 100644 index 000000000..167c6c512 --- /dev/null +++ b/Week 03/id_471/LeetCode_860_471.java @@ -0,0 +1,28 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0, ten = 0, twenty = 0; + + for (int i = 0; i < bills.length; i++) { + if (bills[i] == 20) { + if (ten > 0) { + ten--; + five--; + } else { + five -= 3; + } + + } else if (bills[i] == 10) { + five--; + ten++; + } else { + five++; + } + + if (five < 0) { + return false; + } + } + + return true; + } +} \ No newline at end of file From 1a0b0a6df261c3539597f69286d8c21434cc8a6b Mon Sep 17 00:00:00 2001 From: serendipity2019 Date: Sun, 3 Nov 2019 15:58:05 +0800 Subject: [PATCH 088/740] =?UTF-8?q?Add=20=E3=80=90011-Week=2003=E3=80=91ho?= =?UTF-8?q?mework?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_011/assign-cookies.go | 21 ++++++++++ .../best-time-to-buy-annd-sell-stock-ii.go | 11 +++++ .../best-time-to-buy-annd-sell-stock.go | 14 +++++++ .../binary-tree-level-order-traversal.go | 35 ++++++++++++++++ .../find-minimum-in-rotated-sorted-array.go | 18 +++++++++ Week 03/id_011/jump-game-ii.go | 17 ++++++++ Week 03/id_011/jump-game.go | 11 +++++ Week 03/id_011/lemonade-change.go | 26 ++++++++++++ Week 03/id_011/number-of-islands.go | 31 ++++++++++++++ .../id_011/search-in-rotated-sorted-array.go | 29 ++++++++++++++ Week 03/id_011/word-ladder.go | 40 +++++++++++++++++++ 11 files changed, 253 insertions(+) create mode 100644 Week 03/id_011/assign-cookies.go create mode 100644 Week 03/id_011/best-time-to-buy-annd-sell-stock-ii.go create mode 100644 Week 03/id_011/best-time-to-buy-annd-sell-stock.go create mode 100644 Week 03/id_011/binary-tree-level-order-traversal.go create mode 100644 Week 03/id_011/find-minimum-in-rotated-sorted-array.go create mode 100644 Week 03/id_011/jump-game-ii.go create mode 100644 Week 03/id_011/jump-game.go create mode 100644 Week 03/id_011/lemonade-change.go create mode 100644 Week 03/id_011/number-of-islands.go create mode 100644 Week 03/id_011/search-in-rotated-sorted-array.go create mode 100644 Week 03/id_011/word-ladder.go diff --git a/Week 03/id_011/assign-cookies.go b/Week 03/id_011/assign-cookies.go new file mode 100644 index 000000000..75d74c703 --- /dev/null +++ b/Week 03/id_011/assign-cookies.go @@ -0,0 +1,21 @@ +package algorithm00401 + +import "sort" + +func findContentChildren(g []int, s []int) int { + sort.Sort(sort.Reverse(sort.IntSlice(g))) + sort.Sort(sort.Reverse(sort.IntSlice(s))) + + var res int + gi, si := 0, 0 + for gi < len(g) && si < len(s) { + if s[si] >= g[gi] { + res++ + gi++ + si++ + } else { + gi++ + } + } + return res +} diff --git a/Week 03/id_011/best-time-to-buy-annd-sell-stock-ii.go b/Week 03/id_011/best-time-to-buy-annd-sell-stock-ii.go new file mode 100644 index 000000000..631489016 --- /dev/null +++ b/Week 03/id_011/best-time-to-buy-annd-sell-stock-ii.go @@ -0,0 +1,11 @@ +package algorithm00401 + +func maxProfit(prices []int) int { + profit := 0 + for i := 1; i < len(prices); i++ { + if prices[i] > prices[i-1] { + profit += prices[i] - prices[i-1] + } + } + return profit +} diff --git a/Week 03/id_011/best-time-to-buy-annd-sell-stock.go b/Week 03/id_011/best-time-to-buy-annd-sell-stock.go new file mode 100644 index 000000000..e3a72e59e --- /dev/null +++ b/Week 03/id_011/best-time-to-buy-annd-sell-stock.go @@ -0,0 +1,14 @@ +package algorithm00401 + +func maxProfit(prices []int) int { + minProfit := 1 << 31 + maxProfit := 0 + for i := 0; i < len(prices); i++ { + if prices[i] < minProfit { + minProfit = prices[i] + } else if prices[i]-minProfit > maxProfit { + maxProfit = prices[i] - minProfit + } + } + return maxProfit +} diff --git a/Week 03/id_011/binary-tree-level-order-traversal.go b/Week 03/id_011/binary-tree-level-order-traversal.go new file mode 100644 index 000000000..092e3b31d --- /dev/null +++ b/Week 03/id_011/binary-tree-level-order-traversal.go @@ -0,0 +1,35 @@ +package algorithm00401 + +/** + * Definition for a binary tree node. + * type TreeNode struct { + * Val int + * Left *TreeNode + * Right *TreeNode + * } + */ + +var ans [][]int + +func levelOrder(root *TreeNode) [][]int { + ans = make([][]int, 0) + dfs(root, 0) + return ans +} + +func dfs(root *TreeNode, level int) { + // recursion terminator + if root == nil { + retrun + } + + // process logic in current level + if level >= len(ans) { + ans = append(ans, make([]int, 0)) + } + ans[level] = append(ans[level], root.Val) + + // drill down + dfs(root.Left, level+1) + dfs(root.Right, level+1) +} diff --git a/Week 03/id_011/find-minimum-in-rotated-sorted-array.go b/Week 03/id_011/find-minimum-in-rotated-sorted-array.go new file mode 100644 index 000000000..42bfcc9c2 --- /dev/null +++ b/Week 03/id_011/find-minimum-in-rotated-sorted-array.go @@ -0,0 +1,18 @@ +package algorithm00401 + +func findMin(nums []int) int { + l, r := 0, len(nums)-1 + for l < r { + mid := l + (r-l)/2 + if nums[l] >= nums[mid] && nums[mid] >= nums[r] { + return nums[r] + } else if nums[mid] > nums[r] { + l = mid + 1 + } else if nums[l] > nums[mid] { + r = mid + } else { + return nums[l] + } + } + return nums[l] +} diff --git a/Week 03/id_011/jump-game-ii.go b/Week 03/id_011/jump-game-ii.go new file mode 100644 index 000000000..ecbd20923 --- /dev/null +++ b/Week 03/id_011/jump-game-ii.go @@ -0,0 +1,17 @@ +package algorithm00401 + +func jump(nums []int) int { + step := 0 + + position := len(nums) - 1 + for position != 0 { + for i := 0; i < position; i++ { + if nums[i] >= position-i { + position = i + step++ + break + } + } + } + return step +} diff --git a/Week 03/id_011/jump-game.go b/Week 03/id_011/jump-game.go new file mode 100644 index 000000000..1c70a7d8b --- /dev/null +++ b/Week 03/id_011/jump-game.go @@ -0,0 +1,11 @@ +package algorithm00401 + +func canJump(nums []int) bool { + last := len(nums) - 1 + for i := len(nums) - 1; i >= 0; i-- { + if i+nums[i] >= last { + last = i + } + } + return last == 0 +} diff --git a/Week 03/id_011/lemonade-change.go b/Week 03/id_011/lemonade-change.go new file mode 100644 index 000000000..28e44e8b6 --- /dev/null +++ b/Week 03/id_011/lemonade-change.go @@ -0,0 +1,26 @@ +package algorithm00401 + +func lemonadeChange(bills []int) bool { + five, ten := 0, 0 + for i := 0; i < len(bills); i++ { + if bills[i] == 5 { + five++ + } else if bills[i] == 10 { + if five == 0 { + return false + } + five-- + ten++ + } else { + if five > 0 && ten > 0 { + ten-- + five++ + } else if five > 3 { + five -= 3 + } else { + return false + } + } + } + return true +} diff --git a/Week 03/id_011/number-of-islands.go b/Week 03/id_011/number-of-islands.go new file mode 100644 index 000000000..482dd2763 --- /dev/null +++ b/Week 03/id_011/number-of-islands.go @@ -0,0 +1,31 @@ +package algorithm00401 + +func numIslands(grid [][]byte) int { + if len(grid) == 0 { + return 0 + } + res := 0 + + n := len(grid) + m := len(grid[0]) + for i := 0; i < n; i++ { + for j := 0; j < m; j++ { + if grid[i][j] == '1' { + res++ + inflect(grid, i, j, n, m) + } + } + } + return res +} + +func inflect(grid [][]byte, i, j, n, m int) { + if i < 0 || i >= n || j < 0 || j >= m || grid[i][j] != '1' { + return + } + grid[i][j] = '2' + inflect(grid, i+1, j, n, m) + inflect(grid, i-1, j, n, m) + inflect(grid, i, j+1, n, m) + inflect(grid, i, j-1, n, m) +} diff --git a/Week 03/id_011/search-in-rotated-sorted-array.go b/Week 03/id_011/search-in-rotated-sorted-array.go new file mode 100644 index 000000000..87a6cbc52 --- /dev/null +++ b/Week 03/id_011/search-in-rotated-sorted-array.go @@ -0,0 +1,29 @@ +package algorithm00401 + +func search(nums []int, target int) int { + l, r := 0, len(nums) + for l < r { + mid := l + (r-l)/2 + if nums[mid] == target { + return mid + } else if nums[l] == target { + return l + } else if nums[r-1] == target { + return r - 1 + } + if nums[l] < nums[mid] { + if target > nums[mid] || nums[l] > target { + l = mid + 1 + } else { + r = mid + } + } else { + if nums[mid] > target || target > nums[r-1] { + r = mid + } else { + l = mid + 1 + } + } + } + return -1 +} diff --git a/Week 03/id_011/word-ladder.go b/Week 03/id_011/word-ladder.go new file mode 100644 index 000000000..5f155c6ff --- /dev/null +++ b/Week 03/id_011/word-ladder.go @@ -0,0 +1,40 @@ +package algorithm00401 + +func ladderLength(beginWord string, endWord string, wordList []string) int { + dict := make(map[string]bool) + for _, word := range wordList { + dict[word] = true + } + if !dict[endWord] { + return 0 + } + step := 0 + q1 := map[string]bool{beginWord: true} + q2 := map[string]bool{endWord: true} + for len(q1) > 0 && len(q2) > 0 { + step++ + if len(q1) > len(q2) { + q1, q2 = q2, q1 + } + q := make(map[string]bool) + for w, _ := range q1 { + for i := 0; i < len(beginWord); i++ { + chars := []rune(w) + for j := 'a'; j <= 'z'; j++ { + chars[i] = j + newWord := string(chars) + if q2[newWord] { + return step + 1 + } + if !dict[newWord] { + continue + } + delete(dict, newWord) + q[newWord] = true + } + } + } + q1, q = q, q1 + } + return 0 +} From 08a458abe45848dc15d081e23311cca749c90e15 Mon Sep 17 00:00:00 2001 From: BaileyHB <1042915541@qq.com> Date: Sun, 3 Nov 2019 16:04:01 +0800 Subject: [PATCH 089/740] 691 week 03 --- .../id_691/691-Week 03/LeeCode_122_691.java | 31 +++++ .../id_691/691-Week 03/LeeCode_127_691.java | 108 ++++++++++++++++++ .../id_691/691-Week 03/LeeCode_200_691.java | 86 ++++++++++++++ .../id_691/691-Week 03/LeeCode_74_691.java | 24 ++++ .../id_691/691-Week 03/LeetCode_33_691.java | 30 +++++ .../id_691/691-Week 03/LeetCode_860_691.java | 48 ++++++++ 6 files changed, 327 insertions(+) create mode 100644 Week 03/id_691/691-Week 03/LeeCode_122_691.java create mode 100644 Week 03/id_691/691-Week 03/LeeCode_127_691.java create mode 100644 Week 03/id_691/691-Week 03/LeeCode_200_691.java create mode 100644 Week 03/id_691/691-Week 03/LeeCode_74_691.java create mode 100644 Week 03/id_691/691-Week 03/LeetCode_33_691.java create mode 100644 Week 03/id_691/691-Week 03/LeetCode_860_691.java diff --git a/Week 03/id_691/691-Week 03/LeeCode_122_691.java b/Week 03/id_691/691-Week 03/LeeCode_122_691.java new file mode 100644 index 000000000..8b4b12525 --- /dev/null +++ b/Week 03/id_691/691-Week 03/LeeCode_122_691.java @@ -0,0 +1,31 @@ +class Solution { + public int maxProfit(int[] prices) { + int i = 0; + int valley = prices[0]; + int peak = prices[0]; + int maxprofit = 0 ; + while(i < prices.length - 1){ + while(i < pricrs.length - 1 && prices[i] >= prices[ i + 1]) + i++; + valley = prices[i]; + while (i < prices.length - 1 && prices <= prices[i + 1]) + i++; + peak = prices[i]; + maxprofit += peak - valley; + } + return maxprofit; + } + + //贪心算法 + public int maxProfit(int[] prices){ + int res = 0; + for(int i = 0; i < prices.length; i++){ + int diff = prices[i + 1] - price[i]; + if(diff > 0){ + res += diff; + } + } + return res; + + } +} \ No newline at end of file diff --git a/Week 03/id_691/691-Week 03/LeeCode_127_691.java b/Week 03/id_691/691-Week 03/LeeCode_127_691.java new file mode 100644 index 000000000..da78dd971 --- /dev/null +++ b/Week 03/id_691/691-Week 03/LeeCode_127_691.java @@ -0,0 +1,108 @@ +class Solution { + public int ladderLength(String beginWord, String endWord, List wordList) { + //all words are of same length + int L = beginWord.length(); + + //Dictionary to hold combination of words that can be formed + HashMap> allComboDict = new HashMap>(); + + wordList.forEach( + word -> { + for (int i = 0; i < L; i++){ + //key is generic word + //value is a list of words + String newWord = word.substring(0,i) + "*" + word.substring(i + 1,L); + ArrayList transformations = allComboDict.getOrDefault(newWord, newArrayList()); + //为什么这里要用List呀 + //一个newWord可能有多个word + transformations.add(word); + allComboDict.put(newWord,transformations); + } + } + ); + + //Queue for BFS + Queue> Q = new LinkedList>(); + Q.add(new Pair(beginWord,1)); + + //Visted to make sure we don't repeat processing same word + HashMap visited = new HashMap(); + visited.put(beginWord, true); + + while( !Q.isEmpty()) { + Pair node = Q.remove(); + String word = node.getKey(); + int level = node.getValue(); + + for(int i = 0; i < L; i++) { + + //Intermediate words for current word + String newWord = word.substring(0, i) + '*' + word.substring(i + 1, L); + + //next states are all the words which share the same intermediate state + for (String adjacentWord: allComboDict.getOrDefault(newWord, new ArrayList())) { + //if at any point if we find what we are looking for + //i.e the end word - we can return with the answer + if (adjacentWord.equals(endWord)){ + return level + 1; + } + + //otherwise,add it to the BFS Queue,Also male it visited + if (!visited.containsKey(adjacentWord)) { + visited.put(adjacentWord, true); + Q.add(new Pair(adjacentWord, level + 1)); + } + } + } + } + + return 0 ; + } + + //双端BFS + public int ladderLength(String beginWord, String endWord, Set wordList) { + Set beginSet = new HashSet(); + Set endSet = new HashSet(); + + int len = 1; + int strLen = beginWord.length(); + HashSet visited = new HashSet(); + + beginSet.add(beginWord); + endSet.add(endWord); + + while( !beginSet.isEmpty() && !endSet.isEmpty()) { + if (beginSet.size() > endSet.size()) { + Set set = beginSet; + beginSet = endSet; + endSet = set; + } + + Set temp = new HashSet(); + for (String word: beginSet) { + char[] chs = word.toCharArray(); + for (int i = 0; i < chs.length; i++){ + for (char c = 'a'; c <= 'z'; c++) { + char old = chs[i]; + chs[i] = c; + String target = String.valueOf(chs); + + if(endSet.contains(target)){ + return len + 1; + } + + if( !visited.contains(target) && wordlist.contains(target)) { + temp.add(target); + visited.add(target); + } + + chs[i] = old; + } + } + } + + beginSet = temp; + len++'' + } + return 0; + } diff --git a/Week 03/id_691/691-Week 03/LeeCode_200_691.java b/Week 03/id_691/691-Week 03/LeeCode_200_691.java new file mode 100644 index 000000000..931d4252a --- /dev/null +++ b/Week 03/id_691/691-Week 03/LeeCode_200_691.java @@ -0,0 +1,86 @@ +class Solution { + public int numIslands(char[][] grid) { + //深度优先 + if (grid == null || grid.length == 0) { + return 0; + } + + int nr = grid.length; + int nc = grid[0].length; + int num_islands = 0; + for(int r = 0; r < nr; ++r){ + for(int c = 0; c < nc; ++c) { + if (grid[r][c] == '1'){ + ++num_islands; + dfs(grid, r, c); + } + } + } + return num_islands; + } + + void dfs(char[][] grid, int r, int c){ + int nr = grid.length; + int nc = grid[0].length; + + if( r < 0 || c < 0 || r >= nr || grid[r][c] == + '0') { + return; + } + + grid[r][c] = '0'; + dfs(grid, r - 1, c); + dfs(grid, r + 1, c); + dfs(grid, r ,c - 1); + dfs(grid, r, c + 1); + } + + + //广度首先 + public int numIsland(char[][] grid) { + if (grid == null || grid.length == 0) { + return 0; + } + + int nr = grid.length; + int nc = grid[0].length; + int num_island = 0; + + for(int r = 0; r < nr; ++r){ + for(int c = 0; c < nc;++c){ + if(grid[r][c] == '1'){ + ++nums_islands; + grid[r][c] = '0' //mark as visited + Queue neignbors = new LinkedList<>(); + neignbors.add(r * nc + c); + while(!neignbors.isEmpty()){ + int id = neignbors.remove(); + int row = id/nc; + int col = id % nc; + + if( row - 1 >= 0 && grid[row -1][col] == '1'){ + neignbors.add((row - 1) * nc + col); + grid[row - 1][col] = '0'; + } + + if (row + 1 < nr && grid[row + 1][col] == '1'){ + neignbors.add((row + 1)* nc + col); + grid[row + 1][col] = '0'; + } + + if( col - 1 >= 0 && grid[row][col -1] == '1'){ + neignbors.add(row * nc + col - 1); + grid[row][col - 1] = '0'; + } + + if( col + 1 < nc && grid[row][col + 1] == '1') { + neignbos.add(row * nc + col + 1); + grid[row][col + 1] = '0' + } + } + } + } + } + } + +} diff --git a/Week 03/id_691/691-Week 03/LeeCode_74_691.java b/Week 03/id_691/691-Week 03/LeeCode_74_691.java new file mode 100644 index 000000000..e9b74131f --- /dev/null +++ b/Week 03/id_691/691-Week 03/LeeCode_74_691.java @@ -0,0 +1,24 @@ +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + int row_num = matrix.length; + int col_num = matrix[0].length; + + int begin = 0; + int end = row_num * col_num - 1; + + while(begin <= end){ + int mid = (begin + end) / 2; + int mid_value = matrix[mid/col_num][mid%col_num]; + + if(mid_value == target){ + retunr true; + }else if(mid_value < target){ + begin = mid + 1; + }else{ + end = mid - 1; + } + + } + return false; + } +} \ No newline at end of file diff --git a/Week 03/id_691/691-Week 03/LeetCode_33_691.java b/Week 03/id_691/691-Week 03/LeetCode_33_691.java new file mode 100644 index 000000000..7893403a3 --- /dev/null +++ b/Week 03/id_691/691-Week 03/LeetCode_33_691.java @@ -0,0 +1,30 @@ +class Solution { + public int search(int[] nums, int target) { + int start = 0; + int end = nums.length - 1; + while(start <= end){ + int mid = (start + end) / 2; + if (nums[mid] == target){ + return mid; + } + + if(nums[start] <= nums[mid]){ + if(target < nums[mid] && target >= nums[start]){ + end = mid - 1; + }else { + start = mid + 1; + } + } + + if(nums[mid] <= nums[end]){ + if (target > nums[mid] && target <= nums[end]){ + start = mid + 1; + }else{ + end = mid - 1; + } + } + + return -1; + } + } +} diff --git a/Week 03/id_691/691-Week 03/LeetCode_860_691.java b/Week 03/id_691/691-Week 03/LeetCode_860_691.java new file mode 100644 index 000000000..b5fcb9753 --- /dev/null +++ b/Week 03/id_691/691-Week 03/LeetCode_860_691.java @@ -0,0 +1,48 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + if (bills == null || bills.length < 1){ + return true; + } + + if(bills[0] != 5){ + return false; + } + + int money[0] = new int[3]; //5 10 15 + money[0]++; + + for(int i = 1; i < bills.length; i++){ + switch (bills[i]){ + case 5: + money[0]++; + break; + + case 10: + money[1]++; + money[0]--; + + if(money[0] < 0){ + return false; + } + break; + + case 20: + money[2]++; + if(money[1] > 0){ + money[1]--; + }else{ + money[0] -= 2; + } + + money[0]--; + + if(money[0] < 0){ + return false; + } + + break; + } + return true; + } + } +} \ No newline at end of file From 59f0368aee22252aec91d65e1a14dd45a8e1cbf8 Mon Sep 17 00:00:00 2001 From: ifls Date: Sun, 3 Nov 2019 16:27:03 +0800 Subject: [PATCH 090/740] =?UTF-8?q?Week=2003=20=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_631/LeetCode_127_631.go | 45 ++++++++++++++++++++++++++++++ Week 03/id_631/LeetCode_153_631.go | 21 ++++++++++++++ Week 03/id_631/LeetCode_860_631.go | 31 ++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 Week 03/id_631/LeetCode_127_631.go create mode 100644 Week 03/id_631/LeetCode_153_631.go create mode 100644 Week 03/id_631/LeetCode_860_631.go diff --git a/Week 03/id_631/LeetCode_127_631.go b/Week 03/id_631/LeetCode_127_631.go new file mode 100644 index 000000000..c9f501a9e --- /dev/null +++ b/Week 03/id_631/LeetCode_127_631.go @@ -0,0 +1,45 @@ +//once 20191103 14:43 +// BFS +// 50.59%, 100% +func ladderLength3(beginWord string, endWord string, wordList []string) int { + length := len(wordList) + + queue := append([]string{}, beginWord) + steps := 0 + + for len(queue) > 0 { + steps++ + + for i := len(queue); i > 0; i-- { + s := queue[0] // pop front + queue = queue[1:] + + if s == endWord { + return steps + } + + if steps >= length && len(wordList) == 0 { + return 0 + } + + for i := len(wordList) - 1; i >= 0; i-- { + if isMatch(wordList[i], s) { + queue = append(queue, wordList[i]) + wordList = append(wordList[0:i], wordList[i+1:]...) + } + } + } + } + + return 0 +} + +func isMatch(from, to string) bool { + counter := 0 + for i := 0; i < len(to); i++ { + if from[i] != to[i] { + counter++ + } + } + return counter == 1 +} \ No newline at end of file diff --git a/Week 03/id_631/LeetCode_153_631.go b/Week 03/id_631/LeetCode_153_631.go new file mode 100644 index 000000000..daa88ebb7 --- /dev/null +++ b/Week 03/id_631/LeetCode_153_631.go @@ -0,0 +1,21 @@ +//二分查找 +// 75.89% 68.18% +func findMin(nums []int) int { + if len(nums) == 0 { + return 0 + } + + l, r := 0, len(nums) - 1 + for l + 1 < r { + mid := l + (r - l) / 2 + if nums[mid] <= nums[r] { + r = mid + } else { + l = mid + } + } + if nums[l] > nums[r] { + return nums[r] + } + return nums[l] +} \ No newline at end of file diff --git a/Week 03/id_631/LeetCode_860_631.go b/Week 03/id_631/LeetCode_860_631.go new file mode 100644 index 000000000..04063d483 --- /dev/null +++ b/Week 03/id_631/LeetCode_860_631.go @@ -0,0 +1,31 @@ +//因为 20 可以用10 和 5 换, 10 可以 用5 换 +// 贪心策略需要尽可能地多留 5元在手上,防止10元的顾客无法找零。 +// 85.25%, 100% +func lemonadeChange(bills []int) bool { + five := 0 + ten := 0 + for _, bill := range bills { + if bill == 5 { + five++ + } else if bill == 10 { + if five >= 1 { + five-- + ten++ + } else { + return false + } + } else if bill == 20 { + if ten >= 1 && five >= 1 { + five-- + ten-- + } else if five >= 3 { + five = five - 3 + } else { + return false + } + } else { + return false + } + } + return true +} \ No newline at end of file From dbc5934bf9e328b8b5aac8fbd8c190d72b2694c4 Mon Sep 17 00:00:00 2001 From: feng003 <411152544@qq.com> Date: Sun, 3 Nov 2019 17:01:44 +0800 Subject: [PATCH 091/740] 071-week 03 --- Week 03/id_071/NOTE.md | 136 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 2 deletions(-) diff --git a/Week 03/id_071/NOTE.md b/Week 03/id_071/NOTE.md index a6321d6e2..5183f2519 100644 --- a/Week 03/id_071/NOTE.md +++ b/Week 03/id_071/NOTE.md @@ -1,4 +1,136 @@ -# NOTE +> 深度优先搜索(dfs) 广度优先搜索(bfs) - + +##### dfs 深度优先遍历 + + //递归、栈的方式 + func dfs(node []int) { + visited := []int{} + //node in visited + if _, ok := visited[]; ok { + return + } + visited = append(visited,node) + + dfs(node[left]) + dfs(node[right]) + } + + // + visited := []int{} + func dfs(node []int{}, visted []int){ + visited = append(visited,node) + for k, v := range node['children'] { + //next_node in visited + if _, ok :range visited[next_node]; ok { + dfs(next_node, visited) + } + } + } + +##### bfs 广度优先遍历(层级遍历) + + //对列 queue + func bfs(graph []int, start in, end int){ + visited := []int{} + queue := []int{} + queue = append(queue,graph[start]) + visited = append(visited,start) + for len(queue) > 0 { + + } + + } + + +*** + + +> 贪心算法 + +##### 贪心算法 每一步选择中都采取当前状态下最好或最优的选择,从而希望导致结果是全局最好或最优的算法 + + 常用语 哈夫曼编码、最小生成树 + 1、贪心 得到全局最优解 + 2、贪心的角度 从前往后 或 从后往前 + +##### 步骤 + + 1、定义了期望值 和 限制值 + 2、尝试看下贪心算法能否解决问题 每次选择当前情况下,在对限制值同等贡献量的情况下,对期望值贡献最大的数据 + 3、举例看下贪心算法啊产生的结果是否是最优解 + +##### 贪心、回溯、动态规划 + + 贪心 寻找局部最优解 + 回溯 + 动态规划 + + +*** + + +> 二分查找 + +##### 简单的二分查找 就是 有序数组中不存在重复元素 + + 1. 循环退出条件 left <= right + + 2. mid 的取值 left+(right-left)/2 or left+((right-left)>>1) + + 3. left 和 right 的更新 left = mid + 1 or right = mid - 1 + +##### 变体的二分查找 + + 变体一:查找第一个值等于给定值的元素 + 变体二:查找最后一个值等于给定值的元素 + 变体三:查找第一个大于等于给定值的元素 + 变体四:查找最后一个小于等于给定值的元素 + +##### 条件 + + 单调性 有序 + 上下界 有边界 (bounded) + 索引访问 数组 (index accessible) + + 连续内存空间 + + 对比 二叉搜索树 + +##### 代码模板 + + //循环 + left,right := 0, len(nums) + for left <= right { + mid := (left+right)/2 + + if target == nums[mid] { + return mid + }else if target > nums[mid]{ + left = mid + 1 + }else{ + right = mid - 1 + } + } + + + //递归 + func binary (nums []int, val int ) int { + l := len(nums) + return binarysearch(nums, val, 0, l) + } + + func binarySearch(nums []int, val int, low int, high int){ + if low > high { + return -1 + } + mid := low+((high-low)>>1) + if val == nums[mid] { + return mid + } else val > nums[mid] { + return binarySearch(nums, val, mid + 1, high) + }else{ + return bunarySearch(nums, val, low, mid + 1) + } + } From 2cf170792affa79d3f696d347733326d1036c3fb Mon Sep 17 00:00:00 2001 From: feng003 <411152544@qq.com> Date: Sun, 3 Nov 2019 17:02:11 +0800 Subject: [PATCH 092/740] 071-week 03 --- Week 03/id_071/LeetCode_122_071.go | 39 ++++++++++++++++ Week 03/id_071/LeetCode_127_071.go | 66 ++++++++++++++++++++++++++ Week 03/id_071/LeetCode_153_071.go | 32 +++++++++++++ Week 03/id_071/LeetCode_200_071.go | 74 ++++++++++++++++++++++++++++++ Week 03/id_071/LeetCode_860_071.go | 32 +++++++++++++ Week 03/id_071/leetCode_033_071.go | 30 ++++++++++++ Week 03/id_071/week03_test.go | 37 +++++++++++++++ 7 files changed, 310 insertions(+) create mode 100644 Week 03/id_071/LeetCode_122_071.go create mode 100644 Week 03/id_071/LeetCode_127_071.go create mode 100644 Week 03/id_071/LeetCode_153_071.go create mode 100644 Week 03/id_071/LeetCode_200_071.go create mode 100644 Week 03/id_071/LeetCode_860_071.go create mode 100644 Week 03/id_071/leetCode_033_071.go create mode 100644 Week 03/id_071/week03_test.go diff --git a/Week 03/id_071/LeetCode_122_071.go b/Week 03/id_071/LeetCode_122_071.go new file mode 100644 index 000000000..0094f57c0 --- /dev/null +++ b/Week 03/id_071/LeetCode_122_071.go @@ -0,0 +1,39 @@ +package week03 + +//2.2 https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ +func maxProfit1s(prices []int) int { + max := 0 + for i := 0; i < len(prices)-1; i++ { + for j := i; j < len(prices); j++ { + profit := prices[j] - prices[i] + if profit > max { + max = profit + } + } + } + return max +} + +func maxProfit1(prices []int) int { + max, min := 0, 126 + for i := 0; i < len(prices); i++ { + if prices[i] < min { + min = prices[i] + }else if prices[i] - min > max { + max = prices[i] - min + } + } + return max +} + +// https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/ +func maxProfit2(prices []int) int { + max := 0 + for i := 1; i < len(prices); i++ { + if prices[i] > prices[i - 1]{ + max += prices[i]-prices[i - 1] + } + } + + return max +} \ No newline at end of file diff --git a/Week 03/id_071/LeetCode_127_071.go b/Week 03/id_071/LeetCode_127_071.go new file mode 100644 index 000000000..63ae146b0 --- /dev/null +++ b/Week 03/id_071/LeetCode_127_071.go @@ -0,0 +1,66 @@ +package week03 + +//1.1 https://leetcode-cn.com/problems/word-ladder/ +func ladderLength(beginWord string, endWord string, wordList []string) int { + wordMap := getWordMap(wordList, beginWord) + que := []string{beginWord} + depth := 0 + for len(que) > 0 { + depth++ + + qlen := len(que) + for i := 0; i < qlen; i++ { + word := que[0] + que = que[1:] + + candidates := getCandidates(word) + for _, candidate := range candidates { + if _, ok := wordMap[candidate]; ok { + if candidate == endWord { + return depth + 1 + } + + delete(wordMap, candidate) + que = append(que, candidate) + } + } + } + } + return 0 +} + +func getWordMap (wordList []string, beginWord string) map[string]int{ + + wordMap := make(map[string]int) + for i, word := range wordList { + if _, ok := wordMap[word]; !ok { + if word != beginWord { + wordMap[word] = i + } + } + } + + return wordMap +} + +func getCandidates(word string) []string { + + var res []string + for i := 0; i < 26; i++ { + for j := 0; j < len(word); j++ { + if word[j] != byte(int('a')+i) { + res = append(res, word[ :j] + string(int('a') + i) + word[j+1: ]) + } + } + } + + return res +} + + + + +// 529 https://leetcode-cn.com/problems/minesweeper/description/ +// func updateBoard(board [][]byte, click []int) [][]byte { + +// } \ No newline at end of file diff --git a/Week 03/id_071/LeetCode_153_071.go b/Week 03/id_071/LeetCode_153_071.go new file mode 100644 index 000000000..35c7d0b6d --- /dev/null +++ b/Week 03/id_071/LeetCode_153_071.go @@ -0,0 +1,32 @@ +package week03 + +// 3.3 https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ +func findMin(nums []int) int { + + if len(nums) == 1 { + return nums[0] + } + + low, high := 0,len(nums)-1 + + if nums[high] > nums[0]{ + return nums[0] + } + + for low <= high { + mid := low + (high-low)/2 + if nums[mid] > nums[mid + 1] { + return nums[mid + 1] + } + if nums[mid] < nums[mid - 1]{ + return nums[mid] + } + + if nums[mid] > nums[0] { + low = mid + 1 + }else{ + high = mid - 1 + } + } + return -1 +} \ No newline at end of file diff --git a/Week 03/id_071/LeetCode_200_071.go b/Week 03/id_071/LeetCode_200_071.go new file mode 100644 index 000000000..85968b983 --- /dev/null +++ b/Week 03/id_071/LeetCode_200_071.go @@ -0,0 +1,74 @@ +package week03 + +import ( + "container/list" +) + +//1.2 https://leetcode-cn.com/problems/number-of-islands/ +func numIslands(grid [][]byte) int { + + if grid == nil || len(grid) == 0 { + return 0 + } + + dx := len(grid) + dy := len(grid[0]) + num := 0 + for i := 0; i < dx; i++ { + for j := 0; j < dy; j++ { + if grid[i][j] == '1' { + num++ + dfs(grid, i, j) + } + } + } + + return num +} + +func dfs(grid [][]byte, i int, j int) { + dx := len(grid) + dy := len(grid[0]) + if i < 0 || j < 0 || i >= dx || j >= dy || grid[i][j] == '0' { + return + } + + grid[i][j] = '0' + + dfs(grid, i - 1, j) + dfs(grid, i + 1, j) + dfs(grid, i, j - 1) + dfs(grid, i, j + 1) +} + +//queue +func numIslandes (grid [][]byte) int { + if grid == nil || len(grid) == 0 { + return 0 + } + + dx := len(grid) + dy := len(grid[0]) + num := 0 + for i := 0; i < dx; i++ { + for j := 0; i < dy; j++ { + if grid[i][j] == '1' { + num++ + bfs(grid, i, j) + } + } + } + + return num +} + +func bfs(grid [][]byte, i int, j int){ + grid[i][j] = '0' + dx := len(grid) + dy := len(grid[0]) + q := list.New() + + for q.Len() { + + } +} \ No newline at end of file diff --git a/Week 03/id_071/LeetCode_860_071.go b/Week 03/id_071/LeetCode_860_071.go new file mode 100644 index 000000000..094c23b36 --- /dev/null +++ b/Week 03/id_071/LeetCode_860_071.go @@ -0,0 +1,32 @@ +package week03 + +// 2.1 https://leetcode-cn.com/problems/lemonade-change/description/ +func lemonadeChange(bills []int) bool { + + var ( + five, ten int = 0, 0 + ) + for _, v := range bills { + if v == 5 { + five++ + }else if v == 10 { + if five > 0 { + five-- + ten++ + }else{ + return false + } + }else{ + if five > 0 && ten > 0 { + five-- + ten-- + }else if five >= 3 { + five = five - 3 + }else{ + return false + } + } + } + + return true +} \ No newline at end of file diff --git a/Week 03/id_071/leetCode_033_071.go b/Week 03/id_071/leetCode_033_071.go new file mode 100644 index 000000000..d5b7c5006 --- /dev/null +++ b/Week 03/id_071/leetCode_033_071.go @@ -0,0 +1,30 @@ +package week03 + +import "fmt" + +// 3.1 https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ +func search(nums []int, target int) int { + low, high := 0, len(nums) - 1 + for low <= high { + mid := low + (high - low)/2 + fmt.Print(mid, "\n") + if nums[0] > target || nums[0] > nums[mid] || target > nums[mid] { + low = mid + 1 + } else { + high = mid + } + fmt.Print(low, high, "\n") + } + + if low == high && nums[low] == target { + return low + } + + return -1 +} + +// 3.2 https://leetcode-cn.com/problems/search-a-2d-matrix/ +func searchMatrix(matrix [][]int, target int) bool { + + return false +} \ No newline at end of file diff --git a/Week 03/id_071/week03_test.go b/Week 03/id_071/week03_test.go new file mode 100644 index 000000000..965914764 --- /dev/null +++ b/Week 03/id_071/week03_test.go @@ -0,0 +1,37 @@ +package week03 + +import "testing" + +func TestMySqrt(t *testing.T) { + s := mySqrt(25) + t.Log(s) +} + +func TestIsPerfectSquare(t *testing.T) { + s := isPerfectSquare(15) + t.Log(s) +} + +func TestSearch(t *testing.T) { + arr := []int{4, 5, 6, 7, 0, 1, 2} + s := search(arr, 6) + t.Log(s) +} + +func TestFindMin(t *testing.T) { + arr := []int{4, 5, 6, 7, 8, 2, 3} + s := findMin(arr) + t.Log(s) +} + +func TestLemonadeChange(t *testing.T) { + arr := []int{5, 10, 5, 10, 20} + s := lemonadeChange(arr) + t.Log(s) +} + +func TestMaxProfit(t *testing.T) { + arr := []int{7, 1, 5, 3, 6, 4} + s := maxProfit1(arr) + t.Log(s) +} From 7cbed34e3cf377fb9aabff100fedd3a404e24af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=B3=B0?= <55610465+barryxt@users.noreply.github.com> Date: Sun, 3 Nov 2019 17:14:02 +0800 Subject: [PATCH 093/740] leetcode_367,69,704 --- Week 03/id_536/leetcode_367_536.cpp | 41 +++++++++ Week 03/id_536/leetcode_69_536.cpp | 90 ++++++++++++++++++++ Week 03/id_536/leetcode_704_536.cpp | 125 ++++++++++++++++++++++++++++ 3 files changed, 256 insertions(+) create mode 100644 Week 03/id_536/leetcode_367_536.cpp create mode 100644 Week 03/id_536/leetcode_69_536.cpp create mode 100644 Week 03/id_536/leetcode_704_536.cpp diff --git a/Week 03/id_536/leetcode_367_536.cpp b/Week 03/id_536/leetcode_367_536.cpp new file mode 100644 index 000000000..d256c31c2 --- /dev/null +++ b/Week 03/id_536/leetcode_367_536.cpp @@ -0,0 +1,41 @@ +#include + +using namespace std; + +class Solution { +public: + /***** + ⷨ1ַͨ + ʱ临ӶȣO(logn),nΪnumֵ + ռ临ӶȣO(1) + *****/ + bool helper1(int num) { + long long left = 0; + long long right = num; + while(left <= right) + { + long long mid = left + (right - left)/2; + long long temp = mid*mid; + if(temp == num) + return true; + else if(temp < num) + left = mid + 1; + else + right = mid - 1; + } + return false; + } + bool isPerfectSquare(int num) { + return helper1(num); + } +}; + +int main() +{ + Solution s; + if(s.isPerfectSquare(13)) + cout << "True" << endl; + else + cout << "False" << endl; + return 0; +} diff --git a/Week 03/id_536/leetcode_69_536.cpp b/Week 03/id_536/leetcode_69_536.cpp new file mode 100644 index 000000000..a2a5d6378 --- /dev/null +++ b/Week 03/id_536/leetcode_69_536.cpp @@ -0,0 +1,90 @@ +#include + +using namespace std; + +class Solution { +public: + //ͨ + int binarySearch1(int x) + { + if(x == 0 || x ==1) + return x; + long left,right,mid,temp; + left = 0; + right = x; + while(left <= right) + { + mid = left + (right - left)/2; + temp = mid * mid; + if(temp == x) + return mid; + else if(temp < x) + left = mid + 1; + else + right = mid - 1; + } + return left-1;//ͨģ巵-1 + } + + //߽ + int binarySearch2(int x) { + if(x == 0 || x ==1) + return x; + long left,right,mid,temp; + left = 0; + right = x; + while(left < right) + { + mid = left + (right - left)/2; + temp = mid * mid; + if(temp == x) + right = mid; + else if(temp < x) + left = mid + 1; + else + right = mid; + } + if(left*left == x) + return left; + else + return left - 1;//ͨģ巵-1 + } + + //Ҳ߽ + int binarySearch3(int x) { + if(x == 0 || x ==1) + return x; + long left,right,mid,temp; + left = 0; + right = x; + while(left < right) + { + mid = left + (right - left)/2; + temp = mid * mid; + if(temp == x) + left = mid + 1; + else if(temp < x) + left = mid + 1; + else + right = mid; + } + return left-1; + } + + int mySqrt(int x) { + int res; + res = binarySearch1(x); + //res = binarySearch2(x); + //res = binarySearch3(x); + return res; + } +}; + +//ΪԴ +int main() +{ + Solution s; + cout << s.mySqrt(8) << endl; + cout << s.binarySearch4(8) << endl; + return 0; +} diff --git a/Week 03/id_536/leetcode_704_536.cpp b/Week 03/id_536/leetcode_704_536.cpp new file mode 100644 index 000000000..23a5b3af4 --- /dev/null +++ b/Week 03/id_536/leetcode_704_536.cpp @@ -0,0 +1,125 @@ +/*** + ֲģ壺 +int binarySearch(vector &num,int target) + int left = 0; + int right = ...; + while(...) + { + int mid = (left + right)/2; + if(nums[mid] == target) + ... + else if(nums[mid] < target); + ... + else if(nums[mid] > target); + ... + } + return ...; +***/ +#include +#include + +using namespace std; + +class Solution { +public: + /****** + ⷨ1ͨ + ʱ临Ӷ:O(n) + ռ临Ӷ:O(1) + *****/ + int binarySearch1(vector& nums, int target) + { + int left = 0; + int right = nums.size() - 1; + while( left <= right ) + { + int mid = left + (right - left)/2; + if(nums[mid] == target) + return mid; + else if(nums[mid] < target) + left = mid + 1; + else if(nums[mid] > target) + right = mid - 1; + } + return -1; + } + + /****** + ⷨ2߽ + ʱ临Ӷ:O(n) + ռ临Ӷ:O(1) + *****/ + int binarySearch2(vector& nums, int target) + { + int left = 0; + int right = nums.size(); + while(left < right) + { + int mid = left + (right - left)/2; + if(nums[mid] == target) + right = mid; + else if(nums[mid] < target) + left = mid + 1; + else if(nums[mid] > target) + right = mid; + } + if(left == nums.size()) + return -1; + if(nums[left] == target) + return left; + else + return -1; + } + + /****** + ⷨ3Ҳ߽ + ʱ临Ӷ:O(n) + ռ临Ӷ:O(1) + *****/ + int binarySearch3(vector& nums, int target) + { + int left = 0; + int right = nums.size(); + while(left < right) + { + int mid = left + (right - left)/2; + if(nums[mid] == target) + left = mid + 1; + else if(nums[mid] < target) + left = mid + 1; + else if(nums[mid] > target) + right = mid; + } + if(left == 0) + return -1; + if(nums[left-1] == target) + return left-1; + else + return -1; + } + + int search(vector& nums, int target) { + int res; + res = binarySearch1(nums,target);//ͨ + //res = binarySearch2(nums,target);//߽ + //res = binarySearch3(nums,target);//Ҳ߽ + return res; + } +}; + +int main() +{ + Solution s; + vector nums; + int target = 9; + int res; + nums.push_back(-1); + nums.push_back(0); + nums.push_back(3); + nums.push_back(5); + nums.push_back(9); + nums.push_back(12); + res = s.search(nums,target); + cout < Date: Sun, 3 Nov 2019 17:16:36 +0800 Subject: [PATCH 094/740] week-03 leetocde-74 --- Week 03/id_156/74_java.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Week 03/id_156/74_java.java diff --git a/Week 03/id_156/74_java.java b/Week 03/id_156/74_java.java new file mode 100644 index 000000000..1a99a0f48 --- /dev/null +++ b/Week 03/id_156/74_java.java @@ -0,0 +1,24 @@ + public static boolean searchMatrix(int[][] matrix, int target) { + int m = matrix.length; + if (m == 0) {return false;} + int n = matrix[0].length; + + /*二分查找*/ + int left = 0; + int right = m * n -1; + int midIndex; + int midValue; + + while(left <= right) { + midIndex = (left + right) / 2; + midValue = matrix[midIndex / n][midIndex % n]; + if (midValue == target) { + return true; + } else if (midValue < target) { + left = midIndex + 1; + } else { + right = midIndex - 1; + } + } + return false; + } From 4ad41fbde1654a60c3fdf39127d46f2b85bad1fc Mon Sep 17 00:00:00 2001 From: ifls Date: Sun, 3 Nov 2019 17:29:53 +0800 Subject: [PATCH 095/740] =?UTF-8?q?week=2003=20=E5=AD=A6=E4=B9=A0=E6=80=BB?= =?UTF-8?q?=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_631/NOTE.md | 114 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/Week 03/id_631/NOTE.md b/Week 03/id_631/NOTE.md index a6321d6e2..867af7984 100644 --- a/Week 03/id_631/NOTE.md +++ b/Week 03/id_631/NOTE.md @@ -1,4 +1,116 @@ # NOTE - +## BFS && DFS + * 遍历 = 暴力搜索 + * 树/图 每个节点只被访问一次 + * 深度优先、广度优先、优先级优先(启发式搜索算法, 推荐算法) + +```python +def dfs(node): + if node in visited: + return + visited.add(node) + + #process current node + + dfs(node.left) + dfs(node.right) + +visited = set(); +def dfs(node, visited): + # terminator + if node in visited: + # already visited + return + + visited.add(node) + + # process current node here. + ... + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) + +def DFS(node): + visited, stack = [], [node] + + for len(stack) > 0 { + node = stack.pop() + visited.add(node) + + process_cur(node) + nodes = generate_related_nodes(node) + stack.push(nodes) + } + + #other process work +``` + +```python +def BFS(graph, start, end): + queue = [] + queue.append([start]) + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + + # other processing work + ... + +``` + +## 贪心算法 + +* 贪心算法: 当下做出局部最优判断,不能回退, 适合最优子结构性质的问题 +* 回溯算法: 能够回退 +* 动态规划: 最优判断+ 回退, 会保存之前的结果, 根据结果选择回退,常常适用于有重叠子问题和最优子结构性质的问题 + +场景: + + 1. 图的最小生成树 + 2. 哈夫曼编码 + +特点: + + 1. 高效 + 2. 适合接近最优解的情况 + 3. 可作为辅助算法 + +## 二分查找 + +条件: + + 1. 有序 + 2. 上下界 + 3. 索引访问 + +```python +left, right = 0, len(array) - 1 +while left <= right: + mid = (left + right) / 2 + if array[mid] == target: + # find the target!! + break or return result + elif array[mid] < target: + left = mid + 1 + else: + right = mid - 1 +``` + +```c +//牛顿迭代法 +float InvSqrt (float x){ + float xhalf = 0.5f*x; + int i = *(int*)&x; + i = 0x5f3759df - (i>>1); + x = *(float*)&i; + x = x*(1.5f - xhalf*x*x); + return x; +} +``` From bcd96f6906c5101408e3d813995d56771c348b25 Mon Sep 17 00:00:00 2001 From: cola <405276160@qq.com> Date: Sun, 3 Nov 2019 17:45:25 +0800 Subject: [PATCH 096/740] 401_Week 03 --- .../26.remove-duplicates-from-sorted-array.js | 18 ++++++------- .../122.best-time-to-buy-and-sell-stock-ii.js | 23 ++++++++++++++++ Week 03/id_401/860.lemonade-change.js | 26 +++++++++++++++++++ 3 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 Week 03/id_401/122.best-time-to-buy-and-sell-stock-ii.js create mode 100644 Week 03/id_401/860.lemonade-change.js diff --git a/Week 01/id_401/26.remove-duplicates-from-sorted-array.js b/Week 01/id_401/26.remove-duplicates-from-sorted-array.js index fb954aaa5..1a37f5ec7 100644 --- a/Week 01/id_401/26.remove-duplicates-from-sorted-array.js +++ b/Week 01/id_401/26.remove-duplicates-from-sorted-array.js @@ -2,16 +2,16 @@ * @param {number[]} nums * @return {number} */ -var removeDuplicates = function(nums) { - if(!nums || nums.length<=1) return nums.length; - let temp=nums[0]; - let i=1; - while(i prices[i+1]){ + i++; + } + valley = prices[i]; + while(i < lenNeed && prices[i] <= prices[i+1]){ + i++; + } + peak = prices[i]; + maxProfit += peak - valley; + } + return maxProfit; +}; \ No newline at end of file diff --git a/Week 03/id_401/860.lemonade-change.js b/Week 03/id_401/860.lemonade-change.js new file mode 100644 index 000000000..80d0fff03 --- /dev/null +++ b/Week 03/id_401/860.lemonade-change.js @@ -0,0 +1,26 @@ +var lemonadeChange = function(bills) { + var five = 0; + var ten = 0; + var len = bills.length; + for(var i = 0;i 0 && five > 0){ + ten--; + five--; + }else if(five >= 3){ + five -= 3; + }else{ + return false; + } + } + } + return true; +}; From c4aa71699becf99cf3a96a10ff0d057a14d6db57 Mon Sep 17 00:00:00 2001 From: jie96169 Date: Sun, 3 Nov 2019 17:52:34 +0800 Subject: [PATCH 097/740] 611-Week 03 --- Week 03/id_611/LeetCode_102_611.java | 66 +++++++++++++++++++ Week 03/id_611/LeetCode_122_611.java | 20 ++++++ Week 03/id_611/LeetCode_127_611.java | 62 ++++++++++++++++++ Week 03/id_611/LeetCode_153_611.java | 22 +++++++ Week 03/id_611/LeetCode_200_611.java | 97 ++++++++++++++++++++++++++++ Week 03/id_611/LeetCode_33_611.java | 36 +++++++++++ Week 03/id_611/LeetCode_433_611.java | 62 ++++++++++++++++++ Week 03/id_611/LeetCode_455_611.java | 25 +++++++ Week 03/id_611/LeetCode_45_611.java | 24 +++++++ Week 03/id_611/LeetCode_515_611.java | 57 ++++++++++++++++ Week 03/id_611/LeetCode_529_611.java | 95 +++++++++++++++++++++++++++ Week 03/id_611/LeetCode_55_611.java | 19 ++++++ Week 03/id_611/LeetCode_69_611.java | 38 +++++++++++ Week 03/id_611/LeetCode_74_611.java | 30 +++++++++ Week 03/id_611/LeetCode_860_611.java | 33 ++++++++++ Week 03/id_611/LeetCode_874_611.java | 35 ++++++++++ 16 files changed, 721 insertions(+) create mode 100644 Week 03/id_611/LeetCode_102_611.java create mode 100644 Week 03/id_611/LeetCode_122_611.java create mode 100644 Week 03/id_611/LeetCode_127_611.java create mode 100644 Week 03/id_611/LeetCode_153_611.java create mode 100644 Week 03/id_611/LeetCode_200_611.java create mode 100644 Week 03/id_611/LeetCode_33_611.java create mode 100644 Week 03/id_611/LeetCode_433_611.java create mode 100644 Week 03/id_611/LeetCode_455_611.java create mode 100644 Week 03/id_611/LeetCode_45_611.java create mode 100644 Week 03/id_611/LeetCode_515_611.java create mode 100644 Week 03/id_611/LeetCode_529_611.java create mode 100644 Week 03/id_611/LeetCode_55_611.java create mode 100644 Week 03/id_611/LeetCode_69_611.java create mode 100644 Week 03/id_611/LeetCode_74_611.java create mode 100644 Week 03/id_611/LeetCode_860_611.java create mode 100644 Week 03/id_611/LeetCode_874_611.java diff --git a/Week 03/id_611/LeetCode_102_611.java b/Week 03/id_611/LeetCode_102_611.java new file mode 100644 index 000000000..71119817d --- /dev/null +++ b/Week 03/id_611/LeetCode_102_611.java @@ -0,0 +1,66 @@ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +import javax.swing.tree.TreeNode; + +/* + * @lc app=leetcode.cn id=102 lang=java + * + * [102] 二叉树的层次遍历 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ +class Solution { + + public void helper(TreeNode node,int level,List> res){ + if(res.size() == level) res.add(new ArrayList<>()); + res.get(level).add(node.val); + if(node.left != null) helper(node.left, level + 1, res); + if(node.right != null) helper(node.right, level + 1, res); + + } + + public List> levelOrder(TreeNode root) { + //边界条件 + List> res = new ArrayList<>(); + if(root == null) return res; + helper(root, 0, res); + return res; + } + + // public List> levelOrder(TreeNode root) { + // //边界条件 + // List> res = new ArrayList<>(); + // if(root == null) return res; + // //迭代方式 + // //使用队列的方式进行层级访问 + // Queue queue = new LinkedList<>(); + // queue.offer(root); + + // while(!queue.isEmpty()){ + // int level = queue.size(); + // List subList = new ArrayList<>(); + // for(int i = 0; i < level; i++){ + // TreeNode node = queue.remove(); + // if(node.left != null) queue.add(node.left); + // if(node.right != null) queue.add(node.right); + // subList.add(node.val); + // } + // res.add(subList); + // } + // return res; + // } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_122_611.java b/Week 03/id_611/LeetCode_122_611.java new file mode 100644 index 000000000..182239f5b --- /dev/null +++ b/Week 03/id_611/LeetCode_122_611.java @@ -0,0 +1,20 @@ +/* + * @lc app=leetcode.cn id=122 lang=java + * + * [122] 买卖股票的最佳时机 II + */ + +// @lc code=start +class Solution { + public int maxProfit(int[] prices) { + int max = 0; + for(int i = 1; i < prices.length; i++){ + if(prices[i] > prices[i-1]){ + max += prices[i] -prices[i-1]; + } + } + return max; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_127_611.java b/Week 03/id_611/LeetCode_127_611.java new file mode 100644 index 000000000..efe9a3078 --- /dev/null +++ b/Week 03/id_611/LeetCode_127_611.java @@ -0,0 +1,62 @@ +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +import javafx.util.Pair; + +/* + * @lc app=leetcode.cn id=127 lang=java + * + * [127] 单词接龙 + */ +// @lc code=start +class Solution { + //直接bfs + public int ladderLength(String beginWord, String endWord, List wordList) { + int L = beginWord.length(); + //预处理数据 + HashMap> dict = new HashMap<>(); + wordList.forEach(word->{ + for(int i = 0; i < L; i++){ + String newWord = word.substring(0,i) + "*" + word.substring(i+1,L); + ArrayList dicts = dict.getOrDefault(newWord, new ArrayList<>()); + dicts.add(word); + dict.put(newWord, dicts); + } + }); + + //BFS使用的queue + // Queue> Q = new LinkedList>(); + Queue> q = new LinkedList>(); + q.add(new Pair<>(beginWord, 1)); + //visited,访问过数据 + HashMap visited = new HashMap<>(); + visited.put(beginWord, true); + + //开始bfs遍历 + while(!q.isEmpty()){ + Pair p = q.poll(); + String word = p.getKey(); + Integer level = p.getValue(); + + for(int i = 0; i < L; i++){ + String newWord = word.substring(0,i) + "*" + word.substring(i+1, L); + //如果找到,跟上一级单词差距为1 + for(String item : dict.getOrDefault(newWord,new ArrayList<>())){ + if(item.equals(endWord)){ + return level + 1; + } + if(!visited.containsKey(item)){ + visited.put(item, true); + q.offer(new Pair<>(item,level +1)); + } + } + } + } + return 0; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_153_611.java b/Week 03/id_611/LeetCode_153_611.java new file mode 100644 index 000000000..6b640f3cd --- /dev/null +++ b/Week 03/id_611/LeetCode_153_611.java @@ -0,0 +1,22 @@ +/* + * @lc app=leetcode.cn id=153 lang=java + * + * [153] 寻找旋转排序数组中的最小值 + */ + +// @lc code=start +class Solution { + public int findMin(int[] nums) { + if(nums.length==0) return 0; + int left =0; + int right = nums.length -1; + while(left < right){ + int mid = (right + left) /2; + if(nums[mid] > nums[right]) left = mid +1; + else right = mid; + } + return nums[left]; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_200_611.java b/Week 03/id_611/LeetCode_200_611.java new file mode 100644 index 000000000..f3d0638fe --- /dev/null +++ b/Week 03/id_611/LeetCode_200_611.java @@ -0,0 +1,97 @@ +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Queue; +import java.util.Set; + +import javafx.util.Pair; +import sun.net.www.content.image.gif; + +/* + * @lc app=leetcode.cn id=200 lang=java + * + * [200] 岛屿数量 + */ + +// @lc code=start +class Solution { + + //bfs解法 + public int numIslands(char[][] grid) { + if(grid == null || grid.length ==0){ + return 0; + } + int nr = grid.length; + int nc = grid[0].length; + int num_length = 0; + for(int r = 0; r < nr; r++){ + for(int c = 0; c < nc; c++){ + if(grid[r][c] == '1'){ + num_length++; + grid[r][c] = '0'; + Queue> q = new LinkedList<>(); + q.add(new Pair<>(r,c)); + while(!q.isEmpty()){ + Pair pair = q.poll(); + int row = pair.getKey(); + int col = pair.getValue(); + + if(row - 1 > 0 && grid[row-1][col]=='1'){ + q.add(new Pair(row-1,col)); + grid[row-1][col] = '0'; + } + if(row + 1 > 0 && grid[row+1][col]=='1'){ + q.add(new Pair(row+1,col)); + grid[row+1][col] = '0'; + } + if(col - 1 > 0 && grid[row][col-1]=='1'){ + q.add(new Pair(row,col-1)); + grid[row][col-1] = '0'; + } + if(col + 1 > 0 && grid[row][col + 1] == '1'){ + q.add(new Pair(row,col +1)); + grid[row][col+1] = '0'; + } + } + } + } + return num_length; + } + } + + //dfs解法 + public int numIslands2(char[][] grid) { + if(grid == null || grid.length==0) return 0; + + int nr = grid.length; + int nc = grid[0].length; + int num_islands = 0; + //纵向遍历 + for(int r = 0; r < nr; r++){ + //横向遍历 + for(int x = 0; x = nr || y >= nc || grid[r][y] =='0'){ + return; + } + grid[r][y] = '0'; + dfs(grid, r -1, y); + dfs(grid, r +1, y); + dfs(grid, r, y -1); + dfs(grid, r, y +1); + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_33_611.java b/Week 03/id_611/LeetCode_33_611.java new file mode 100644 index 000000000..ef1775703 --- /dev/null +++ b/Week 03/id_611/LeetCode_33_611.java @@ -0,0 +1,36 @@ +/* + * @lc app=leetcode.cn id=33 lang=java + * + * [33] 搜索旋转排序数组 + */ + +// @lc code=start +class Solution { + public int search(int[] nums, int target) { + int minIdx = findMinidx(nums); + if(target == nums[minIdx]) return minIdx; + int m = nums.length -1; + int start = (target <= nums[m]) ? minIdx : 0; + int end = (target > nums[m]) ? minIdx : m; + + while(start <= end){ + int mid = (start+(end - start)) >>>1; + if(nums[mid] == target) return mid; + else if(target > nums[mid]) start = mid +1; + else end = mid -1; + } + return -1; + } + + public int findMinidx(int[] nums){ + int start = 0 , end = nums.length -1; + while(start < end){ + int mid = (start + ( end - start)) >>>1; + if (nums[mid] > nums[end]) start = mid + 1; + else end = mid; + } + return start; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_433_611.java b/Week 03/id_611/LeetCode_433_611.java new file mode 100644 index 000000000..cfb5a7398 --- /dev/null +++ b/Week 03/id_611/LeetCode_433_611.java @@ -0,0 +1,62 @@ +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Queue; +import java.util.Set; + +/* + * @lc app=leetcode.cn id=433 lang=java + * + * [433] 最小基因变化 + */ + +// @lc code=start +class Solution { + + public static void main(String[] args) { + String start = "AACCGGTT"; + String end = "AACCGGTA"; + String[] bank = new String[]{"AACCGGTA","AACCGGTC"}; + minMutation(start, end, bank); + + + } + + public static int minMutation(String start, String end, String[] bank) { + if(start.equals(end)) return 0; + Set bankSet = new HashSet<>(); + for(String b :bank) bankSet.add(b); + + char[] chars = new char[]{'A','C','G','T'}; + int level = 0; + Set visited = new HashSet<>(); + Queue queue = new LinkedList<>(); + visited.add(start); + queue.offer(start); + + while(!queue.isEmpty()){ + int size = queue.size(); + while(size-- > 0){ + String cur = queue.poll(); + if(cur.equals(end)) return level; + + char[] charArr = cur.toCharArray(); + for(int i = 0; i < charArr.length; i++){ + char old = charArr[i]; + for(int c =0; c < chars.length; c++){ + charArr[i] = chars[c]; + String next = new String(charArr); + if(!visited.contains(next) && bankSet.contains(next)){ + visited.add(next); + queue.offer(next); + } + } + charArr[i] = old; + } + } + level++; + } + return -1; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_455_611.java b/Week 03/id_611/LeetCode_455_611.java new file mode 100644 index 000000000..131bcee09 --- /dev/null +++ b/Week 03/id_611/LeetCode_455_611.java @@ -0,0 +1,25 @@ +import java.util.Arrays; + +/* + * @lc app=leetcode.cn id=455 lang=java + * + * [455] 分发饼干 + */ + +// @lc code=start +class Solution { + public int findContentChildren(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + int scount = 0,gcount = 0; + while(scount < s.length && gcount < g.length){ + if(g[gcount] <= s[scount]){ + gcount++; + } + scount++; + } + return gcount; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_45_611.java b/Week 03/id_611/LeetCode_45_611.java new file mode 100644 index 000000000..7a471a9dd --- /dev/null +++ b/Week 03/id_611/LeetCode_45_611.java @@ -0,0 +1,24 @@ +/* + * @lc app=leetcode.cn id=45 lang=java + * + * [45] 跳跃游戏 II + */ + +// @lc code=start +class Solution { + public int jump(int[] nums) { + int end = 0; + int maxPostion = 0; + int step = 0; + for(int i = 0; i < nums.length-1; i++){ + maxPostion = Math.max(maxPostion, nums[i] + i); + if(i == end){ + end = maxPostion ; + step++; + } + } + return step; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_515_611.java b/Week 03/id_611/LeetCode_515_611.java new file mode 100644 index 000000000..b4c0d7cee --- /dev/null +++ b/Week 03/id_611/LeetCode_515_611.java @@ -0,0 +1,57 @@ +import java.util.ArrayList; +import java.util.LinkedList; + +/* + * @lc app=leetcode.cn id=515 lang=java + * + * [515] 在每个树行中找最大值 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ +import java.util.List; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.Queue; +import java.util.Set; + +import javax.swing.tree.TreeNode; + +class Solution { + public List largestValues(TreeNode root) { + List data = new ArrayList<>(); + if(root == null) return data; + bfsFunc(data,root); + return data; + } + + public void bfsFunc(List data,TreeNode node){ + Queue queue = new LinkedList<>(); + + queue.offer(node); + while(!queue.isEmpty()){ + int max = Integer.MIN_VALUE; + int size = queue.size(); + while(size-- > 0){ + TreeNode tmpNode = queue.poll(); + if(tmpNode.left != null) queue.offer(tmpNode.left); + if(tmpNode.right != null) queue.offer(tmpNode.right); + + max = max < tmpNode.val ? tmpNode.val : max; + } + data.add(max); + } + + + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_529_611.java b/Week 03/id_611/LeetCode_529_611.java new file mode 100644 index 000000000..350de19e8 --- /dev/null +++ b/Week 03/id_611/LeetCode_529_611.java @@ -0,0 +1,95 @@ +import java.util.LinkedList; +import java.util.Queue; + +/* + * @lc app=leetcode.cn id=529 lang=java + * + * [529] 扫雷游戏 + */ + +// @lc code=start +class Solution { + + //bfs解法 + public char[][] updateBoard(char[][] board, int[] click) { + int m = board.length, n = board[0].length; + Queue queue = new LinkedList<>(); + queue.add(click); + + while(!queue.isEmpty()){ + int[] cell = queue.poll(); + int row = cell[0],col = cell[1]; + if(board[row][col]=='M'){ + board[row][col] = 'X'; + }else{ + int count = 0; + for(int i = -1; i < 2; i++){ + for(int j = -1; j <2; j++){ + if(i==0 && j==0)continue; + int r = row + i,c = col + j; + if(r < 0 || r >= m || c < 0 || c >= n)continue; + if(board[r][c]=='M' || board[r][c]=='X') count++; + } + } + + if(count>0){ + board[row][col]=(char)(count + '0'); + }else{ + //一定要给当前值赋值 + board[row][col] = 'B'; + for(int i = -1; i < 2; i++){ + for(int j = -1; j < 2; j++){ + if(i==0 && j==0)continue; + int r = row + i,c = col + j; + if(r < 0 || r>= m || c < 0 || c >=n )continue; + if(board[r][c]=='E'){ + queue.add(new int[]{r,c}); + board[r][c]='B'; + } + } + } + } + } + + } + return board; + } + + //dfs解法 + public char[][] updateBoard1(char[][] board, int[] click) { + int m = board.length, n = board[0].length; + int row = click[0],col = click[1]; + + if(board[row][col] =='M'){ + board[row][col] ='X'; + } else { + //计算附近地雷数量 + int count = 0; + for(int i = -1; i < 2; i++){ + for(int j = -1; j < 2; j++){ + if(j==0 && i==0)continue; + int r = row + i, c = col + j; + if(r < 0 || r >= m || c < 0 || c >= n) continue; + if(board[r][c] == 'M' || board[r][c] == 'X' ) count++; + } + } + //填充数量 + if(count>0){ + board[row][col] = (char)(count + '0'); + }else{ + board[row][col] = 'B'; + for(int i = -1; i < 2; i++){ + for(int j = -1; j < 2; j++){ + if(i==0 && j==0) continue; + int r = row + i,c = col + j; + if(r<0 || r >= m || c <0 || c >= n)continue; + if(board[r][c] == 'E') updateBoard(board, new int[]{r,c}); + } + } + } + } + return board; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_55_611.java b/Week 03/id_611/LeetCode_55_611.java new file mode 100644 index 000000000..1f99dec09 --- /dev/null +++ b/Week 03/id_611/LeetCode_55_611.java @@ -0,0 +1,19 @@ +/* + * @lc app=leetcode.cn id=55 lang=java + * + * [55] 跳跃游戏 + */ + +// @lc code=start +class Solution { + public boolean canJump(int[] nums) { + int lastPos = nums.length - 1; + for(int i = nums.length-1; i >= 0; i--){ + if(i + nums[i] >= lastPos) + lastPos = i; + } + return lastPos == 0; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_69_611.java b/Week 03/id_611/LeetCode_69_611.java new file mode 100644 index 000000000..b105870e5 --- /dev/null +++ b/Week 03/id_611/LeetCode_69_611.java @@ -0,0 +1,38 @@ +/* + * @lc app=leetcode.cn id=69 lang=java + * + * [69] x 的平方根 + */ + +// @lc code=start +class Solution { + + public int mySqrt(int x){ + long n = x; + while(n *n > x){ + n = (n + x/n)/2; + } + return (int)n; + } + + //???? + public int mySqrt1(int x) { + if (x == 0) { + return 0; + } + long left = 1; + long right = x/2 +1; + while(left < right){ + long mid = (left + right + 1) >>> 1; + long sq = mid * mid; + if(sq > x){ + right = mid -1; + }else{ + left = mid; + } + } + return (int)left; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_74_611.java b/Week 03/id_611/LeetCode_74_611.java new file mode 100644 index 000000000..416e25570 --- /dev/null +++ b/Week 03/id_611/LeetCode_74_611.java @@ -0,0 +1,30 @@ +/* + * @lc app=leetcode.cn id=74 lang=java + * + * [74] 搜索二维矩阵 + */ + +// @lc code=start +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + int m = matrix.length; + if(m == 0) return false; + int n = matrix[0].length; + + int left = 0, right = n*m -1; + int pivotIdx , pivotElement; + while(left <= right){ + pivotIdx = (left + right)/2; + //privotIdx / n = 得到第几行 ,pivotIdx % n = 得到第几列 + pivotElement = matrix[pivotIdx / n][pivotIdx % n]; + if(target == pivotElement) return true; + else{ + if(target < pivotElement) right = pivotIdx -1; + else left = pivotIdx + 1; + } + } + return false; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_860_611.java b/Week 03/id_611/LeetCode_860_611.java new file mode 100644 index 000000000..1a8b67023 --- /dev/null +++ b/Week 03/id_611/LeetCode_860_611.java @@ -0,0 +1,33 @@ +/* + * @lc app=leetcode.cn id=860 lang=java + * + * [860] 柠檬水找零 + */ + +// @lc code=start +class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0,ten = 0; + for(int i = 0; i < bills.length; i++){ + if(bills[i]== 5){ + five++; + }else if(bills[i] == 10){ + if(five == 0) return false; + five--; + ten++; + } else { + if(five > 0 && ten >0){ + five--; + ten--; + } else if(five >= 3){ + five -= 3; + } else { + return false; + } + } + } + return true; + } +} +// @lc code=end + diff --git a/Week 03/id_611/LeetCode_874_611.java b/Week 03/id_611/LeetCode_874_611.java new file mode 100644 index 000000000..bb6c82bb1 --- /dev/null +++ b/Week 03/id_611/LeetCode_874_611.java @@ -0,0 +1,35 @@ +import java.util.Set; + +/* + * @lc app=leetcode.cn id=874 lang=java + * + * [874] 模拟行走机器人 + */ + +// @lc code=start +class Solution { + public int robotSim(int[] commands, int[][] obstacles) { + Set set = new HashSet(); + for(int[] o : obstacles) + set.add(o[0] + " " + o[1]); + int max =0, x = 0,y = 0,dir = 0,dirs[][] = {{0,1},{1,0},{0,-1},{-1,0}}; + for(int c :commands){ + if(c == -2) + dir = dir == 0 ? 3 : dir - 1; + else if(c == -1) + dir = dir == 3 ? 0 : dir + 1; + else{ + int[] xy = dirs[dir]; + while(c-- > 0 && !set.contains((x + xy[0]) + " " + (y + xy[1]))){ + x += xy[0];y += xy[1]; + } + } + max = Math.max(max, x *x + y * y); + } + + return max; + } + +} +// @lc code=end + From a2d5f3a438f036d3a9d8e5595b8085138b9e17c7 Mon Sep 17 00:00:00 2001 From: Symbolk Date: Sun, 3 Nov 2019 17:55:09 +0800 Subject: [PATCH 098/740] Get done homework for week-03. --- Week 03/id_556/LeetCode_33_556.java | 66 +++++++++++ Week 03/id_556/LeetCode_874_556.java | 39 +++++++ Week 03/id_556/NOTE.md | 167 ++++++++++++++++++++++++++- 3 files changed, 270 insertions(+), 2 deletions(-) create mode 100644 Week 03/id_556/LeetCode_33_556.java create mode 100644 Week 03/id_556/LeetCode_874_556.java diff --git a/Week 03/id_556/LeetCode_33_556.java b/Week 03/id_556/LeetCode_33_556.java new file mode 100644 index 000000000..53a03086f --- /dev/null +++ b/Week 03/id_556/LeetCode_33_556.java @@ -0,0 +1,66 @@ +class Solution { + public int search(int[] nums, int target) { + // check boundary here!!! + if (nums.length == 0) { + return -1; + } + if (nums.length == 1) { + return nums[0] == target ? 0 : -1; + } + // find rotateindex first, and then binary search in ordered part + int index = findRotateIndex(nums); + int l, r; + if (index == 0) { + l = 0; + r = nums.length - 1; + } else { + if (target >= nums[0]) { + // in the left(unrotated) part + l = 0; + r = index; + } else { + // in the right(rotated) part + l = index; + r = nums.length - 1; + } + } + return binarySearch(nums, l, r, target); + } + + public int binarySearch(int[] nums, int l, int r, int target) { + while (l <= r) { + int m = l + (r - l) / 2; + if (nums[m] == target) { + return m; + } else { + if (nums[m] < target) { + l = m + 1; + } else { + r = m - 1; + } + } + } + return -1; + } + + public int findRotateIndex(int[] a) { + if (a[0] < a[a.length - 1]) { + return 0; + } + int l = 0, r = a.length - 1; + int m = l + (r - l) / 2; + while (l <= r) { + m = l + (r - l) / 2; + if (a[m] > a[m + 1]) { + return m + 1; + } else { + if (a[m] < a[l]) { + r = m - 1; + } else { + l = m + 1; + } + } + } + return m; + } +} \ No newline at end of file diff --git a/Week 03/id_556/LeetCode_874_556.java b/Week 03/id_556/LeetCode_874_556.java new file mode 100644 index 000000000..7601702d5 --- /dev/null +++ b/Week 03/id_556/LeetCode_874_556.java @@ -0,0 +1,39 @@ +class Solution { + public int robotSim(int[] commands, int[][] obstacles) { + // clockwise: up, right, down, left + int[][] offset = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; + int x = 0, y = 0; + int max = 0; + // index of the offset towards dir + int dir = 0; + Set obs = new HashSet<>(); + for (int i = 0; i < obstacles.length; ++i) { + obs.add(obstacles[i][0] + "," + obstacles[i][1]); + } + // let's move + for (int i = 0; i < commands.length; ++i) { + if (commands[i] == -1) { + // turn right + dir = (dir + 1) % 4; + } else if (commands[i] == -2) { + // turn left + dir = (dir + 3) % 4; + } else if (commands[i] > 0) { + for (int j = 0; j < commands[i]; ++j) { + int nextX = x + offset[dir][0]; + int nextY = y + offset[dir][1]; + if (obs.contains(nextX + "," + nextY)) { + // stop and stay + break; + } else { + x = nextX; + y = nextY; + max = Math.max(max, x * x + y * y); + } + } + } + } + return max; + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_556/NOTE.md b/Week 03/id_556/NOTE.md index a6321d6e2..918fd1ac4 100644 --- a/Week 03/id_556/NOTE.md +++ b/Week 03/id_556/NOTE.md @@ -1,4 +1,167 @@ -# NOTE +# 二分查找寻找半有序数组无序点 - +约定旋转点为被旋转部分第一个元素的下标,如[4, 5, 6, 7, 8, 0, 1, 2]中0的下标 +若数组无旋转应当为单调递增,找旋转点即为寻找第一次减小(也是唯一一次)的地方,直观的想法为依次比较a[i]与a[i+1],复杂度为O(n)。而使用二分法,一步步缩小旋转点存在的区间范围来找到旋转点,复杂度为O(logn)。 + +- 初始化:l=0, r=a.length-1, m=l+(r-l)/2 +- 思路1: 比较a[m]与前一个数,如果a[m]a[r],则说明旋转点在m到r之间,令l=m+1;否则,说明旋转点在l到m之间,令r=m-1; + +代码: +```java +public static int findIndex(int[] a) { + if (a[0] < a[a.length - 1]) { + return 0; + } + int l = 0, r = a.length - 1; + int m = l + (r - l) / 2; + while (l <= r) { + m = l + (r - l) / 2; + if (a[m] < a[m - 1]) { + return m; + } else { + if (a[m] > a[r]) { + l = m + 1; + } else { + r = m - 1; + } + } + } + return m; +} +``` +以上代码其实是存在bug的,比如数组长度为2且降序时(如[3,1]),m=0,m-1=-1会造成数组下标越界。 + +- 思路2: 比较a[m]与后一个数,如果a[m]>a[m+1],则找到,返回m+1;否则,比较a[m]与左端,如果a[m] a[m + 1]) { + return m+1; + } else { + if (a[m] < a[l]) { + r = m - 1; + } else { + l = m + 1; + } + } + } + return m; + } +``` + +# Week3-9-深度广度优先遍历 +搜索很多时候就需要遍历,算法可以根据数据结构特征进行提升;DFS和BFS复杂度都是O(n),区别在于顺序不同。 + +## DFS +### 递归写法: +```python +def dfs(node): + if node in visited: + return + visited.add(node) + # process current node + ... + dfs(node.left) + dfs(node.right) +``` +```python +def dfs(node, visited): + visited.add(node) + # process current node + ... + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) +``` +```python +def dfs(node, visited): + if node in visited: # terminator + return + visited.add(node) + # process current node + ... + for next_node in node.children(): + if not next_node in visited: # check again + dfs(next_node, visited) +``` +非递归写法:(其实是用栈手动模拟递归过程) +```python +def dfs(self, tree): + if tree.root is None: + return [] + visited, stack = [], [tree.root] + while stack: + node = stack.pop() + visited.add(node) + process(node) + nodes = get_related_nodes(node) + stack.push(nodes) +``` +## BFS +```python +def bfs(node): + queue = [] + queue.append([start]) + visited.add(start) + while queue: + node = queue.pop() + visited.add(node) + process(node) + nodes = get_related_nodes(node) + queue.push(nodes) +``` + +## PFS(启发式搜索) + +# Week3-10-贪心算法 + + 贪心算法:在每一步选择中都选取当前状态下最优的选,希望结果得到全局最优,因此主要解决最优化问题(如最小生成树,霍夫曼编码等) + +> Greedy与DP的不同:DP可以保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能 +(带最优判断的回溯) + +> 贪心法一般不能得到实际问题的最优解,但高效且结果接近最优解,因此可以用作辅助算法。 + +> 一旦一个问题可以用贪心法解决,那么贪心法一般是解决这个问题的最好和自然方法。但这种情况很少。 + + +适合贪心法的情况: + +- 问题能分解成子问题,而子问题的最优解能递推到最终问题的最优解(最优子结构) + +> 贪心法难的在于证明和转换角度(有时需要从前往后/从后往前/局部切入进行贪心) + +# Week3-11-二分查找 + +适合二分查找的条件: +1. 目标函数单调性(有序) +2. 存在上下界 +3. 能够通过索引访问 + +代码模板 +```python +left, right=0, len(array)-1 +while left <= right: + mid = (left + right) / 2 + if array[mid] == target: + # find the target + return result + elif array[mid] < target: + left = mid + 1 + else: + right = mid - 1 +``` + +四步切题 +1. 与面试官确认题目细节,边界条件,输入输出,以及corner case; +2. 思考自己能想到的所有解法,分析时间空间复杂度; +3. 与面试官探讨自己想到的最优解法,得到确认或提示; +4. 开始写代码,给出test case(正常,边界,错误,变态)。 From a96840c8051511f7e0b618fe3886b44df49fa5d4 Mon Sep 17 00:00:00 2001 From: Jacob Wang Date: Sun, 3 Nov 2019 18:11:46 +0800 Subject: [PATCH 099/740] Add Week 03 homework --- .../102-binary-tree-level-order-traversal.c | 86 ++ .../122-best-time-to-buy-and-sell-stock-ii.cc | 11 + Week 03/id_586/126-word-ladder-ii.cc | 66 + Week 03/id_586/127-word-ladder.cc | 42 + Week 03/id_586/200-number-of-islands.cc | 39 + Week 03/id_586/22-generate-parentheses.cc | 41 + Week 03/id_586/322-coin-change.cc | 23 + .../33-search-in-rotated-sorted-array.cc | 43 + .../id_586/434-minimum-genetic-mutation.cc | 87 ++ Week 03/id_586/455-assign-cookies.cc | 25 + ...515-find-largest-value-in-each-tree-row.cc | 33 + Week 03/id_586/529-minesweeper.cc | 45 + Week 03/id_586/55-jump-game.cc | 17 + Week 03/id_586/69-sqrtx.cc | 26 + Week 03/id_586/860-lemonade-change.cc | 14 + Week 03/id_586/NOTE.md | 121 +- Week 03/id_586/summary.md | 1139 +++++++++++++++++ 17 files changed, 1857 insertions(+), 1 deletion(-) create mode 100755 Week 03/id_586/102-binary-tree-level-order-traversal.c create mode 100755 Week 03/id_586/122-best-time-to-buy-and-sell-stock-ii.cc create mode 100755 Week 03/id_586/126-word-ladder-ii.cc create mode 100755 Week 03/id_586/127-word-ladder.cc create mode 100755 Week 03/id_586/200-number-of-islands.cc create mode 100755 Week 03/id_586/22-generate-parentheses.cc create mode 100755 Week 03/id_586/322-coin-change.cc create mode 100755 Week 03/id_586/33-search-in-rotated-sorted-array.cc create mode 100755 Week 03/id_586/434-minimum-genetic-mutation.cc create mode 100755 Week 03/id_586/455-assign-cookies.cc create mode 100755 Week 03/id_586/515-find-largest-value-in-each-tree-row.cc create mode 100755 Week 03/id_586/529-minesweeper.cc create mode 100755 Week 03/id_586/55-jump-game.cc create mode 100755 Week 03/id_586/69-sqrtx.cc create mode 100755 Week 03/id_586/860-lemonade-change.cc create mode 100755 Week 03/id_586/summary.md diff --git a/Week 03/id_586/102-binary-tree-level-order-traversal.c b/Week 03/id_586/102-binary-tree-level-order-traversal.c new file mode 100755 index 000000000..539f5394b --- /dev/null +++ b/Week 03/id_586/102-binary-tree-level-order-traversal.c @@ -0,0 +1,86 @@ +/* +# 102 二叉树的层次遍历 + +给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 + +例如: 给定二叉树: [3,9,20,null,null,15,7], + 3 + / \ + 9 20 + / \ + 15 7 + +返回其层次遍历结果: + + [ + [3], + [9,20], + [15,7] + ] + +*/ +/** + * Definition for a binary tree node. + * struct TreeNode { + * int val; + * TreeNode *left; + * TreeNode *right; + * TreeNode(int x) : val(x), left(NULL), right(NULL) {} + * }; + */ +class Solution1 { +public: + vector> levelOrder(TreeNode* root) { + vector> ret; + + if (!root) return ret; + + queue q; + TreeNode *curr; + + q.push(root); + + while(q.empty() == 0) { + vector level; + int len = q.size(); + for (int i = 0; i < len; i++) { + curr = q.front(); + level.push_back(curr->val); + q.pop(); + if (curr->left) q.push(curr->left); + if (curr->right) q.push(curr->right); + } + ret.push_back(level); + } + + return ret; + } +}; + +/* + * 方法2: 使用递归的方法 + * */ +class Solution2 { +public: + vector> ret; + + void buildVector(TreeNode *root, int depth) + { + if(root == NULL) return; + /* start the current level */ + if(ret.size() == depth) + ret.push_back(vector()); + + /* fulfil the current level */ + ret[depth].push_back(root->val); + + /* process child nodes for the next level */ + buildVector(root->left, depth + 1); + buildVector(root->right, depth + 1); + } + + vector > levelOrder(TreeNode *root) { + buildVector(root, 0); + return ret; + } +}; diff --git a/Week 03/id_586/122-best-time-to-buy-and-sell-stock-ii.cc b/Week 03/id_586/122-best-time-to-buy-and-sell-stock-ii.cc new file mode 100755 index 000000000..fbccc4a3f --- /dev/null +++ b/Week 03/id_586/122-best-time-to-buy-and-sell-stock-ii.cc @@ -0,0 +1,11 @@ +class Solution { +public: + int maxProfit(vector& prices) { + int maxprofit = 0; + for (int i = 1; i < prices.size(); i++) { + if (prices[i] > prices[i - 1]) + maxprofit += prices[i] - prices[i - 1]; + } + return maxprofit; + } +}; \ No newline at end of file diff --git a/Week 03/id_586/126-word-ladder-ii.cc b/Week 03/id_586/126-word-ladder-ii.cc new file mode 100755 index 000000000..df097cb43 --- /dev/null +++ b/Week 03/id_586/126-word-ladder-ii.cc @@ -0,0 +1,66 @@ +class Solution { +public: + vector> findLadders(string beginWord, string endWord, vector& wordList) { + unordered_set dict(wordList.begin(), wordList.end()), head, tail; + if (dict.find(endWord) == dict.end()) { + return {}; + } + head.insert(beginWord); + tail.insert(endWord); + unordered_map> children; + vector> ladders; + vector ladder; + ladder.push_back(beginWord); + if (searchLadders(head, tail, dict, children, false)) { + genLadders(beginWord, endWord, children, ladder, ladders); + } + return ladders; + } +private: + bool searchLadders(unordered_set& head, unordered_set& tail, unordered_set& dict, unordered_map>& children, bool flip) { + if (head.empty()) { + return false; + } + if (head.size() > tail.size()) { + return searchLadders(tail, head, dict, children, !flip); + } + for (string word : head) { + dict.erase(word); + } + for (string word : tail) { + dict.erase(word); + } + unordered_set intermediate; + bool done = false; + for (string word : head) { + string temp = word; + for (int i = 0; i < word.size(); i++) { + char t = word[i]; + for (int j = 0; j < 26; j++) { + word[i] = 'a' + j; + if (tail.find(word) != tail.end()) { + done = true; + flip ? children[word].push_back(temp) : children[temp].push_back(word); + } else if (!done && dict.find(word) != dict.end()) { + intermediate.insert(word); + flip ? children[word].push_back(temp) : children[temp].push_back(word); + } + } + word[i] = t; + } + } + return done || searchLadders(tail, intermediate, dict, children, !flip); + } + + void genLadders(string beginWord, string endWord, unordered_map>& children, vector& ladder, vector>& ladders) { + if (beginWord == endWord) { + ladders.push_back(ladder); + } else { + for (string child : children[beginWord]) { + ladder.push_back(child); + genLadders(child, endWord, children, ladder, ladders); + ladder.pop_back(); + } + } + } +}; \ No newline at end of file diff --git a/Week 03/id_586/127-word-ladder.cc b/Week 03/id_586/127-word-ladder.cc new file mode 100755 index 000000000..2c0b79d1b --- /dev/null +++ b/Week 03/id_586/127-word-ladder.cc @@ -0,0 +1,42 @@ +class Solution { +public: + int ladderLength(string beginWord, string endWord, vector& wordList) { + unordered_set dict(wordList.begin(), wordList.end()), head, tail, *phead, *ptail; + if (dict.find(endWord) == dict.end()) { + return 0; + } + head.insert(beginWord); + tail.insert(endWord); + int ladder = 2; + while (!head.empty() && !tail.empty()) { + if (head.size() < tail.size()) { + phead = &head; + ptail = &tail; + } else { + phead = &tail; + ptail = &head; + } + unordered_set temp; + for (auto it = phead -> begin(); it != phead -> end(); it++) { + string word = *it; + for (int i = 0; i < word.size(); i++) { + char t = word[i]; + for (int j = 0; j < 26; j++) { + word[i] = 'a' + j; + if (ptail -> find(word) != ptail -> end()) { + return ladder; + } + if (dict.find(word) != dict.end()) { + temp.insert(word); + dict.erase(word); + } + } + word[i] = t; + } + } + ladder++; + phead -> swap(temp); + } + return 0; + } +}; \ No newline at end of file diff --git a/Week 03/id_586/200-number-of-islands.cc b/Week 03/id_586/200-number-of-islands.cc new file mode 100755 index 000000000..00d3396fa --- /dev/null +++ b/Week 03/id_586/200-number-of-islands.cc @@ -0,0 +1,39 @@ +class Solution { +public: + int numIslands(vector>& grid) { + int nr = grid.size(); + if (!nr) return 0; + int nc = grid[0].size(); + + int num_islands = 0; + for (int r = 0; r < nr; ++r) { + for (int c = 0; c < nc; ++c) { + if (grid[r][c] == '1') { + ++num_islands; + grid[r][c] = '0'; // mark as visited + queue> neiors; + neiors.push({r, c}); + while (!neiors.empty()) { + auto rc = neiors.front(); + neiors.pop(); + int row = rc.first, col = rc.second; + if (row - 1 >= 0 && grid[row-1][col] == '1') { + neiors.push({row-1, col}); grid[row-1][col] = '0'; + } + if (row + 1 < nr && grid[row+1][col] == '1') { + neiors.push({row+1, col}); grid[row+1][col] = '0'; + } + if (col - 1 >= 0 && grid[row][col-1] == '1') { + neiors.push({row, col-1}); grid[row][col-1] = '0'; + } + if (col + 1 < nc && grid[row][col+1] == '1') { + neiors.push({row, col+1}); grid[row][col+1] = '0'; + } + } + } + } + } + + return num_islands; + } +}; \ No newline at end of file diff --git a/Week 03/id_586/22-generate-parentheses.cc b/Week 03/id_586/22-generate-parentheses.cc new file mode 100755 index 000000000..2d93ec98b --- /dev/null +++ b/Week 03/id_586/22-generate-parentheses.cc @@ -0,0 +1,41 @@ +class Solution { +public: + + #if 1 + vector generateParenthesis(int n) { + vector ret; + generate(ret, "", 0, 0, n); + return ret; + } + + void generate(vector &ans, string cur, int open, int close, int n) { + if (cur.length() == n * 2) { + ans.push_back(cur); + return; + } + + if (open < n) + generate(ans, cur + "(", open + 1, close, n); + if (close < open) + generate(ans, cur + ")", open, close + 1, n); + } + #else + vector generateParenthesis(int n) { + vector ret; + generate(ret, "", n, n); + return ret; + } + + void generate(vector &ans, string cur, int left, int right) { + if (left == 0 && right == 0) { + ans.push_back(cur); + return; + } + + if (left > 0) + generate(ans, cur + "(", left - 1, right); + if (right > left) + generate(ans, cur + ")", left, right - 1); + } + #endif +}; \ No newline at end of file diff --git a/Week 03/id_586/322-coin-change.cc b/Week 03/id_586/322-coin-change.cc new file mode 100755 index 000000000..8bcc1896c --- /dev/null +++ b/Week 03/id_586/322-coin-change.cc @@ -0,0 +1,23 @@ +class Solution { +public: + int coinChange(vector& coins, int amount) { + // int Max = amount + 1; + // vector dp(amount + 1, Max); + // dp[0] = 0; + // for (int i = 1; i <= amount; i++) { + // for (int j = 0; j < coins.size(); j++) { + // if (coins[j] <= i) { + // dp[i] = min(dp[i], dp[i - coins[j]] + 1); + // } + // } + // } + // return dp[amount] > amount ? -1 : dp[amount]; + + vector need(amount+1, amount+1); + need[0] = 0; + for (int c : coins) + for (int a=c; a<=amount; a++) + need[a] = min(need[a], need[a-c] + 1); + return need.back() > amount ? -1 : need.back(); + } +}; \ No newline at end of file diff --git a/Week 03/id_586/33-search-in-rotated-sorted-array.cc b/Week 03/id_586/33-search-in-rotated-sorted-array.cc new file mode 100755 index 000000000..87b538ce3 --- /dev/null +++ b/Week 03/id_586/33-search-in-rotated-sorted-array.cc @@ -0,0 +1,43 @@ +class Solution { +public: + int search(vector& nums, int target) { +// int lo = 0, hi = nums.size(); +// while (lo < hi) { +// int mid = (lo + hi) / 2; + +// double num = (nums[mid] < nums[0]) == (target < nums[0]) +// ? nums[mid] +// : target < nums[0] ? -INFINITY : INFINITY; + +// if (num < target) +// lo = mid + 1; +// else if (num > target) +// hi = mid; +// else +// return mid; +// } +// return -1; + + int lo=0,hi=nums.size()-1; + // find the index of the smallest value using binary search. + // Loop will terminate since mid < hi, and lo or hi will shrink by at least 1. + // Proof by contradiction that mid < hi: if mid==hi, then lo==hi and loop would have been terminated. + while(lonums[hi]) lo=mid+1; + else hi=mid; + } + // lo==hi is the index of the smallest value and also the number of places rotated. + int rot=lo; + lo=0;hi=nums.size()-1; + // The usual binary search and accounting for rotation. + while(lo<=hi){ + int mid=(lo+hi)/2; + int realmid=(mid+rot)%nums.size(); + if(nums[realmid]==target)return realmid; + if(nums[realmid]& bank) { + //1: 判读极端情况 + if(start.empty() || end.empty() || bank.empty()) return -1; + + if(find(bank.begin(), bank.end(), end) == bank.end()) + return -1; //目标基因不在基因库中 + + //2: bfs的初始化工作: 初始化步长,初始化queue,将start入队列,用vecotr来标记已经访问过的点。 + vector visit(bank.size(),0); + int step=0; + queue q; + q.push(start); + + //3: 进行bfs : 先将步长+1,然后确定每次bfs的长度size,寻找目标基因,然后出栈入栈等操作 + while (!q.empty()) { + step++; + int n = q.size();//确定每次bfs的宽度 + for (int i = 0; i < n; ++i) { + string &temp = q.front(); q.pop();//获得队头元素 + for (int j = 0; j < bank.size(); ++j) {//遍历整个基因库,访问未标记的基因;找到某个字符变异的基因添加标记,并进入队列即可 + if (visit[j] == 0) { + int diff = 0; + for (int k = 0; k < temp.size(); ++k) + if (temp[k] != bank[j][k]) diff++; + + if (diff == 1) { //找到某个字符编译的基因 + if (bank[j] == end) return step;//若该下标j代表的基因为目标基因,则直接返回步长 + visit[j] = 1;//标记下标为j的基因已访问 + q.push(bank[j]); + } + } + } + } + } + return -1; + } +}; + +/* + * - 由于单向bfs类似金字塔,越到底层,塔基越大(而众多塔基中只有一点end满足条件),而且其回溯路径也少。 + * 所以我们采用双向bfs,即既从begin->end遍历,又从end->begin遍历,当然每次我们都选用较短队列进行遍历,这样可减少用时。 + * - 循环结束的条件是两个bfs碰头。每个单词遍历的方向,1由前向后遍历,2由后向前遍历,3两个bfs碰头。 + * 公式:0|1=1、0|2=2、1|2=3和i&i=i、i&0=0 + * */ +class Solution2 { +public: + //解法2:双向bfs + int minMutation(string start, string end, vector& bank) { + //1:建立hashmap表,顺便去掉重复元素 + unordered_map mp; + for (const auto& b : bank) mp[b] = 0; + + //2:排除极端情况,end不在基因库中 + if (mp.count(end) == 0) return -1; + + //3:bfs的初始化工作 + queue q1({start}), q2({end});//前向队列,后向队列 + int step=0; + const char table[4]={'A','C','G','T'};//基因的字符 + //或1表示前向队列由前往后遍历,或2表示后向队列由后向前遍历,每次我们选用较小的队列进行遍历 + for (mp[start] |= 1,mp[end] |= 2; q1.size() && q2.size(); ++step) {//每遍历完一次,步长+1 + bool first = q1.size() < q2.size(); + queue &q = first ? q1 : q2;//选择较小的队列进行遍历节约时间 + int flag = first ? 1 : 2;//此次遍历的方式 + + for (int n = q.size(); n--; q.pop()) { + string& temp = q.front(); + if (mp[temp] == 3) return step; //两个队列碰头,返回步长 + for (int i = 0; i < temp.size(); ++i) { + for (int j = 0; j < 4; ++j) { + string s = temp; + if (s[i] == table[j]) continue; //重复字符,跳出循环,寻找下一个字符 + s[i] = table[j]; + //该单词不在map中或该单词已经被遍历过了,跳出循环,寻找下一个单词 + if (mp.count(s) == 0 || mp[s] & flag) continue; + mp[s] |= flag;//标记该单词已经被遍历过了 + q.push(s); + } + } + } + } + return -1; + } +}; diff --git a/Week 03/id_586/455-assign-cookies.cc b/Week 03/id_586/455-assign-cookies.cc new file mode 100755 index 000000000..10bb155b0 --- /dev/null +++ b/Week 03/id_586/455-assign-cookies.cc @@ -0,0 +1,25 @@ +class Solution { +public: + int findContentChildren(vector& g, vector& s) { + sort(g.begin(), g.end()); + sort(s.begin(), s.end()); + int g_length = g.size(); + int s_length = s.size(); + + int i = 0; + int j = 0; + int res = 0; + + while (i < g_length && j < s_length) { + if (g[i] <= s[j]) { + //可以满足胃口,把小饼干喂给小朋友 + res += 1; + i += 1; + j += 1; + } else + //不满足胃口,查看下一块小饼干 + j += 1; + } + return res; + } +}; \ No newline at end of file diff --git a/Week 03/id_586/515-find-largest-value-in-each-tree-row.cc b/Week 03/id_586/515-find-largest-value-in-each-tree-row.cc new file mode 100755 index 000000000..563e4342d --- /dev/null +++ b/Week 03/id_586/515-find-largest-value-in-each-tree-row.cc @@ -0,0 +1,33 @@ +/** + * Definition for a binary tree node. + * struct TreeNode { + * int val; + * TreeNode *left; + * TreeNode *right; + * TreeNode(int x) : val(x), left(NULL), right(NULL) {} + * }; + */ +class Solution { +public: + /* DFS solution */ + vector solution; + void helper(TreeNode* node, int cl) { + if (node == NULL) return; + + if (solution.size() < cl + 1) + solution.push_back(node->val); + else { + if (solution[cl] < node->val) + solution[cl] = node->val; + } + helper(node->left, cl+1); + helper(node->right, cl+1); + } + + vector largestValues(TreeNode* root) { + if(root == NULL) return solution; + + helper(root, 0); + return solution; + } +}; \ No newline at end of file diff --git a/Week 03/id_586/529-minesweeper.cc b/Week 03/id_586/529-minesweeper.cc new file mode 100755 index 000000000..6fe531a03 --- /dev/null +++ b/Week 03/id_586/529-minesweeper.cc @@ -0,0 +1,45 @@ +class Solution { +public: + vector> updateBoard(vector>& board, vector& click) { + if(board[click[0]][click[1]] == 'M'){ + board[click[0]][click[1]] = 'X'; + return board; + } + reveal(board,click[0],click[1]); + return board; + } + + bool inboard(const vector>& board, int x, int y){ + return ( x>=0 && x=0 && y>& board, int x, int y){ + if(!inboard(board,x,y)) return; + if(board[x][y] == 'E'){ + //search 8 adjacent squares + int count = 0; + if(inboard(board,x-1,y-1) && board[x-1][y-1] == 'M') count++; + if(inboard(board,x-1,y ) && board[x-1][y ] == 'M') count++; + if(inboard(board,x-1,y+1) && board[x-1][y+1] == 'M') count++; + if(inboard(board,x ,y-1) && board[x ][y-1] == 'M') count++; + if(inboard(board,x ,y+1) && board[x ][y+1] == 'M') count++; + if(inboard(board,x+1,y-1) && board[x+1][y-1] == 'M') count++; + if(inboard(board,x+1,y ) && board[x+1][y ] == 'M') count++; + if(inboard(board,x+1,y+1) && board[x+1][y+1] == 'M') count++; + + if(count>0) + board[x][y] = '0'+count; + else{ + board[x][y] = 'B'; + reveal(board,x-1,y-1); + reveal(board,x-1,y ); + reveal(board,x-1,y+1); + reveal(board,x ,y-1); + reveal(board,x ,y+1); + reveal(board,x+1,y-1); + reveal(board,x+1,y ); + reveal(board,x+1,y+1); + } + } + } +}; \ No newline at end of file diff --git a/Week 03/id_586/55-jump-game.cc b/Week 03/id_586/55-jump-game.cc new file mode 100755 index 000000000..de3ce03d6 --- /dev/null +++ b/Week 03/id_586/55-jump-game.cc @@ -0,0 +1,17 @@ +class Solution { +public: + bool canJump(vector& nums) { + // int i = 0; + // for (int reach = 0; i < nums.size() && i <= reach; ++i) + // reach = max(i + nums[i], reach); + // return i == nums.size(); + + if (nums.size() == 0) return false; + int len = nums.size() - 1; + for (int i = nums.size() - 1; i >= 0; i--) { + if (nums[i] + i >= len) + len = i; + } + return len == 0; + } +}; \ No newline at end of file diff --git a/Week 03/id_586/69-sqrtx.cc b/Week 03/id_586/69-sqrtx.cc new file mode 100755 index 000000000..64892e7c2 --- /dev/null +++ b/Week 03/id_586/69-sqrtx.cc @@ -0,0 +1,26 @@ +class Solution { +public: + int mySqrt(int x) { + // 注意:针对特殊测试用例,例如 2147395599 + // 要把搜索的范围设置成长整型 + // 为了照顾到 0 把左边界设置为 0 + if (x == 0 || x == 1) return x; + + long left = 0; + // # 为了照顾到 1 把右边界设置为 x // 2 + 1 + long right = x / 2 + 1; + + while (left < right) { + // 注意:这里一定取右中位数,如果取左中位数,代码会进入死循环 + // long mid = left + (right - left + 1) / 2; + long mid = (left + right + 1) >> 1; + if (mid * mid > x) { + right = mid - 1; + } else { + left = mid; + } + } + // 因为一定存在,因此无需后处理 + return (int) left; + } +}; \ No newline at end of file diff --git a/Week 03/id_586/860-lemonade-change.cc b/Week 03/id_586/860-lemonade-change.cc new file mode 100755 index 000000000..2b70b8209 --- /dev/null +++ b/Week 03/id_586/860-lemonade-change.cc @@ -0,0 +1,14 @@ +class Solution { +public: + bool lemonadeChange(vector& bills) { + int five = 0, ten = 0; + for (int i : bills) { + if (i == 5) five++; + else if (i == 10) five--, ten++; + else if (ten > 0) ten--, five--; + else five -= 3; + if (five < 0) return false; + } + return true; + } +}; \ No newline at end of file diff --git a/Week 03/id_586/NOTE.md b/Week 03/id_586/NOTE.md index a6321d6e2..29a579c60 100644 --- a/Week 03/id_586/NOTE.md +++ b/Week 03/id_586/NOTE.md @@ -1,4 +1,123 @@ # NOTE - +[DFS 代码模板(递归写法、非递归写法)](https://shimo.im/docs/ddgwCccJQKxkrcTq/read) +递归写法 + +```python +visited = set() + +def dfs(node, visited): + if node in visited: # terminator + # already visited + return + + visited.add(node) + + # process current node here. + # ... + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) +``` + +非递归写法 + +```python +def DFS(self, tree): + + if tree.root is None: + return [] + + visited, stack = [], [tree.root] + + while stack: + node = stack.pop() + visited.add(node) + + process (node) + nodes = generate_related_nodes(node) + stack.push(nodes) + + # other processing work + # ... +``` + +[BFS 代码模板](https://shimo.im/docs/P8TqKHGKt3ytkYYd/read) + +```python +def BFS(graph, start, end): + + queue = [] + queue.append([start]) + visited.add(start) + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + + # other processing work + # ... +``` + +实战题目 + + https://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description + https://leetcode-cn.com/problems/minimum-genetic-mutation/#/description + https://leetcode-cn.com/problems/generate-parentheses/#/description + https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/#/description + +课后作业 + + https://leetcode-cn.com/problems/word-ladder/description/ + https://leetcode-cn.com/problems/word-ladder-ii/description/ + https://leetcode-cn.com/problems/number-of-islands/ + https://leetcode-cn.com/problems/minesweeper/description/ + +参考链接 + + [coin change 题目](https://leetcode-cn.com/problems/coin-change/) + [动态规划定义](https://zh.wikipedia.org/wiki/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92) + +课后作业 + + https://leetcode-cn.com/problems/lemonade-change/description/ + https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/ + https://leetcode-cn.com/problems/assign-cookies/description/ + https://leetcode-cn.com/problems/walking-robot-simulation/description/ + https://leetcode-cn.com/problems/jump-game/ 、 https://leetcode-cn.com/problems/jump-game-ii/ + +参考链接 + +[二分查找代码模板](https://shimo.im/docs/hjQqRQkGgwd9g36J/read) +[Fast InvSqrt() 扩展阅读](https://www.beyond3d.com/content/articles/8/) + +```python +left, right = 0, len(array) - 1 +while left <= right: + mid = (left + right) / 2 + if array[mid] == target: + # find the target!! + break or return result + elif array[mid] < target: + left = mid + 1 + else: + right = mid - 1 +``` + +实战题目 + + https://leetcode-cn.com/problems/sqrtx/ + https://leetcode.com-cn/problems/valid-perfect-square/ + +课后作业 + + https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ + https://leetcode-cn.com/problems/search-a-2d-matrix/ + https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ + 使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 + 说明:同学们可以将自己的思路、代码写在第 3 周的学习总结中 \ No newline at end of file diff --git a/Week 03/id_586/summary.md b/Week 03/id_586/summary.md new file mode 100755 index 000000000..4b3e10fe7 --- /dev/null +++ b/Week 03/id_586/summary.md @@ -0,0 +1,1139 @@ +# DFS, BFS and Binary Search + +- 深度优先搜索(DFS) + +在这个策略中,我们采用深度作为优先级,以便从跟开始一直到达某个确定的叶子,然后再返回根到达另一个分支。 + +深度优先搜索策略又可以根据根节点、左孩子和右孩子的相对顺序被细分为先序遍历,中序遍历和后序遍历。 + +- 宽度优先搜索(BFS) + +我们按照高度顺序一层一层的访问整棵树,高层次的节点将会比低层次的节点先被访问到 + +```python +# DFS 代码模板 +# 递归写法 +visited = set() + +def dfs(node, visited): + if node in visited: # terminator + # already visited + return + + visited.add(node) + + # process current node here. + + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) + +# 非递归写法 +def DFS(self, tree): + + if tree.root is None: + return [] + + visited, stack = [], [tree.root] + + while stack: + node = stack.pop() + visited.add(node) + + process (node) + nodes = generate_related_nodes(node) + stack.push(nodes) + + # other processing work + +#BFS 代码模板 +def BFS(graph, start, end): + + queue = [] + queue.append([start]) + visited.add(start) + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + + # other processing work + +# 二分查找代码模板 +def bs(array, target): + left, right = 0, len(array) - 1 + while left <= right: + # mid = left + (right - left) / 2 + mid = (left + right) / 2 + if array[mid] == target: + # find the target!! + break or return result + elif array[mid] < target: + left = mid + 1 + else: + right = mid - 1 +``` + +## 102 二叉树的层次遍历 + +给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 + +例如: 给定二叉树: [3,9,20,null,null,15,7] + + 3 + / \ + 9 20 + / \ + 15 7 + +返回其层次遍历结果: + + [ + [3], + [9,20], + [15,7] + ] + +```CPP +/* + * 方法1 : 使用迭代法,使遍历的元素借用一个队列更方便 + * / +/** + * Definition for a binary tree node. + * struct TreeNode { + * int val; + * TreeNode *left; + * TreeNode *right; + * TreeNode(int x) : val(x), left(NULL), right(NULL) {} + * }; + */ +class Solution { +public: + vector> levelOrder(TreeNode* root) { + vector> ret; + + if (!root) return ret; + + queue q; + TreeNode *curr; + + q.push(root); + + while(q.empty() == 0) { + vector level; + int len = q.size(); + for (int i = 0; i < len; i++) { + curr = q.front(); + level.push_back(curr->val); + q.pop(); + if (curr->left) q.push(curr->left); + if (curr->right) q.push(curr->right); + } + ret.push_back(level); + } + + return ret; + } +}; + +/* + * 方法2: 使用递归的方法 + * */ +class Solution { +public: + vector> ret; + + void buildVector(TreeNode *root, int depth) + { + if(root == NULL) return; + /* start the current level */ + if(ret.size() == depth) + ret.push_back(vector()); + + /* fulfil the current level */ + ret[depth].push_back(root->val); + + /* process child nodes for the next level */ + buildVector(root->left, depth + 1); + buildVector(root->right, depth + 1); + } + + vector > levelOrder(TreeNode *root) { + buildVector(root, 0); + return ret; + } +}; +``` + +## 433. 最小基因变化 + +一条基因序列由一个带有8个字符的字符串表示,其中每个字符都属于 "A", "C", "G", "T"中的任意一个。 +假设我们要调查一个基因序列的变化。一次基因变化意味着这个基因序列中的一个字符发生了变化。 +例如,基因序列由"AACCGGTT" 变化至 "AACCGGTA" 即发生了一次基因变化。 +与此同时,每一次基因变化的结果,都需要是一个合法的基因串,即该结果属于一个基因库。 +现在给定3个参数 — start, end, bank,分别代表起始基因序列,目标基因序列及基因库,请找出能够使起始基因序列变化为目标基因序列所需的最少变化次数。如果无法实现目标变化,请返回 -1。 + +注意: + + 起始基因序列默认是合法的,但是它并不一定会出现在基因库中。 + 所有的目标基因序列必须是合法的。 + 假定起始基因序列与目标基因序列是不一样的。 + +示例 1: + + start: "AACCGGTT" + end: "AACCGGTA" + bank: ["AACCGGTA"] + 返回值: 1 + +示例 2: + + start: "AACCGGTT" + end: "AAACGGTA" + bank: ["AACCGGTA", "AACCGCTA", "AAACGGTA"] + 返回值: 2 + +示例 3: + + start: "AAAAACCC" + end: "AACCCCCC" + bank: ["AAAACCCC", "AAACCCCC", "AACCCCCC"] + 返回值: 3 + +```cpp +class Solution1 { +public: + //解法1:单向bfs + int minMutation(string start, string end, vector& bank) { + //1: 判读极端情况 + if(start.empty() || end.empty() || bank.empty()) return -1; + + if(find(bank.begin(), bank.end(), end) == bank.end()) + return -1; //目标基因不在基因库中 + + //2: bfs的初始化工作: 初始化步长,初始化queue,将start入队列,用vecotr来标记已经访问过的点。 + vector visit(bank.size(),0); + int step=0; + queue q; + q.push(start); + + //3: 进行bfs : 先将步长+1,然后确定每次bfs的长度size,寻找目标基因,然后出栈入栈等操作 + while (!q.empty()) { + step++; + int n = q.size();//确定每次bfs的宽度 + for (int i = 0; i < n; ++i) { + string &temp = q.front(); q.pop();//获得队头元素 + for (int j = 0; j < bank.size(); ++j) {//遍历整个基因库,访问未标记的基因;找到某个字符变异的基因添加标记,并进入队列即可 + if (visit[j] == 0) { + int diff = 0; + for (int k = 0; k < temp.size(); ++k) + if (temp[k] != bank[j][k]) diff++; + + if (diff == 1) { //找到某个字符编译的基因 + if (bank[j] == end) return step;//若该下标j代表的基因为目标基因,则直接返回步长 + visit[j] = 1;//标记下标为j的基因已访问 + q.push(bank[j]); + } + } + } + } + } + return -1; + } +}; + +/* + * - 由于单向bfs类似金字塔,越到底层,塔基越大(而众多塔基中只有一点end满足条件),而且其回溯路径也少。 + * 所以我们采用双向bfs,即既从begin->end遍历,又从end->begin遍历,当然每次我们都选用较短队列进行遍历,这样可减少用时。 + * - 循环结束的条件是两个bfs碰头。每个单词遍历的方向,1由前向后遍历,2由后向前遍历,3两个bfs碰头。 + * 公式:0|1=1、0|2=2、1|2=3和i&i=i、i&0=0 + * */ +class Solution2 { +public: + //解法2:双向bfs + int minMutation(string start, string end, vector& bank) { + //1:建立hashmap表,顺便去掉重复元素 + unordered_map mp; + for (const auto& b : bank) mp[b] = 0; + + //2:排除极端情况,end不在基因库中 + if (mp.count(end) == 0) return -1; + + //3:bfs的初始化工作 + queue q1({start}), q2({end});//前向队列,后向队列 + int step=0; + const char table[4]={'A','C','G','T'};//基因的字符 + //或1表示前向队列由前往后遍历,或2表示后向队列由后向前遍历,每次我们选用较小的队列进行遍历 + for (mp[start] |= 1,mp[end] |= 2; q1.size() && q2.size(); ++step) {//每遍历完一次,步长+1 + bool first = q1.size() < q2.size(); + queue &q = first ? q1 : q2;//选择较小的队列进行遍历节约时间 + int flag = first ? 1 : 2;//此次遍历的方式 + + for (int n = q.size(); n--; q.pop()) { + string& temp = q.front(); + if (mp[temp] == 3) return step; //两个队列碰头,返回步长 + for (int i = 0; i < temp.size(); ++i) { + for (int j = 0; j < 4; ++j) { + string s = temp; + if (s[i] == table[j]) continue; //重复字符,跳出循环,寻找下一个字符 + s[i] = table[j]; + //该单词不在map中或该单词已经被遍历过了,跳出循环,寻找下一个单词 + if (mp.count(s) == 0 || mp[s] & flag) continue; + mp[s] |= flag;//标记该单词已经被遍历过了 + q.push(s); + } + } + } + } + return -1; + } +}; +``` + +## 22 generate-parentheses + +给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 +例如,给出 n = 3,生成结果为: + + [ + "((()))", + "(()())", + "(())()", + "()(())", + "()()()" + ] + +```cpp +class Solution { +public: + + #if 1 + vector generateParenthesis(int n) { + vector ret; + generate(ret, "", 0, 0, n); + return ret; + } + + void generate(vector &ans, string cur, int open, int close, int n) { + if (cur.length() == n * 2) { + ans.push_back(cur); + return; + } + + if (open < n) + generate(ans, cur + "(", open + 1, close, n); + if (close < open) + generate(ans, cur + ")", open, close + 1, n); + } + #else + vector generateParenthesis(int n) { + vector ret; + generate(ret, "", n, n); + return ret; + } + + void generate(vector &ans, string cur, int left, int right) { + if (left == 0 && right == 0) { + ans.push_back(cur); + return; + } + + if (left > 0) + generate(ans, cur + "(", left - 1, right); + if (right > left) + generate(ans, cur + ")", left, right - 1); + } + #endif +}; +``` + +## 515. 在每个树行中找最大值 + +您需要在二叉树的每一行中找到最大的值。 + +输入: + + 1 + / \ + 3 2 + / \ \ + 5 3 9 +输出: [1, 3, 9] + +```cpp +/** + * Definition for a binary tree node. + * struct TreeNode { + * int val; + * TreeNode *left; + * TreeNode *right; + * TreeNode(int x) : val(x), left(NULL), right(NULL) {} + * }; + */ +class Solution { +public: + /* DFS solution */ + vector solution; + void helper(TreeNode* node, int cl) { + if (node == NULL) return; + + if (solution.size() < cl + 1) + solution.push_back(node->val); + else { + if (solution[cl] < node->val) + solution[cl] = node->val; + } + helper(node->left, cl+1); + helper(node->right, cl+1); + } + + vector largestValues(TreeNode* root) { + if(root == NULL) return solution; + + helper(root, 0); + return solution; + } +}; +``` + +## 126. 单词接龙 II + +```cpp +class Solution { +public: + vector> findLadders(string beginWord, string endWord, vector& wordList) { + unordered_set dict(wordList.begin(), wordList.end()), head, tail; + if (dict.find(endWord) == dict.end()) { + return {}; + } + head.insert(beginWord); + tail.insert(endWord); + unordered_map> children; + vector> ladders; + vector ladder; + ladder.push_back(beginWord); + if (searchLadders(head, tail, dict, children, false)) { + genLadders(beginWord, endWord, children, ladder, ladders); + } + return ladders; + } +private: + bool searchLadders(unordered_set& head, unordered_set& tail, unordered_set& dict, unordered_map>& children, bool flip) { + if (head.empty()) { + return false; + } + if (head.size() > tail.size()) { + return searchLadders(tail, head, dict, children, !flip); + } + for (string word : head) { + dict.erase(word); + } + for (string word : tail) { + dict.erase(word); + } + unordered_set intermediate; + bool done = false; + for (string word : head) { + string temp = word; + for (int i = 0; i < word.size(); i++) { + char t = word[i]; + for (int j = 0; j < 26; j++) { + word[i] = 'a' + j; + if (tail.find(word) != tail.end()) { + done = true; + flip ? children[word].push_back(temp) : children[temp].push_back(word); + } else if (!done && dict.find(word) != dict.end()) { + intermediate.insert(word); + flip ? children[word].push_back(temp) : children[temp].push_back(word); + } + } + word[i] = t; + } + } + return done || searchLadders(tail, intermediate, dict, children, !flip); + } + + void genLadders(string beginWord, string endWord, unordered_map>& children, vector& ladder, vector>& ladders) { + if (beginWord == endWord) { + ladders.push_back(ladder); + } else { + for (string child : children[beginWord]) { + ladder.push_back(child); + genLadders(child, endWord, children, ladder, ladders); + ladder.pop_back(); + } + } + } +}; +``` +## 127. 单词接龙 + +给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: + +- 每次转换只能改变一个字母。 +- 转换过程中的中间单词必须是字典中的单词。 + +说明: + + 如果不存在这样的转换序列,返回 0。 + 所有单词具有相同的长度。 + 所有单词只由小写字母组成。 + 字典中不存在重复的单词。 + 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 + +示例 1: + + 输入: + beginWord = "hit", + endWord = "cog", + wordList = ["hot","dot","dog","lot","log","cog"] + + 输出: 5 + + 解释: 一个最短转换序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog", + 返回它的长度 5。 + +示例 2: + + 输入: + beginWord = "hit" + endWord = "cog" + wordList = ["hot","dot","dog","lot","log"] + + 输出: 0 + + 解释: endWord "cog" 不在字典中,所以无法进行转换。 + +算法中最重要的步骤是找出相邻的节点,也就是只差一个字母的两个单词 + +This problem has a nice BFS structure. Let's illustrate this using the example in the problem statement. + + beginWord = "hit", + endWord = "cog", + wordList = ["hot","dot","dog","lot","log","cog"] + +Since only one letter can be changed at a time, if we start from "hit", we can only change to those words which have exactly one letter different from it (in this case, "hot"). Putting in graph-theoretic terms, "hot" is a neighbor of "hit". The idea is simpy to start from the beginWord, then visit its neighbors, then the non-visited neighbors of its neighbors until we arrive at the endWord. This is a typical BFS structure. + +```cpp +class Solution { +public: + int ladderLength(string beginWord, string endWord, vector& wordList) { + unordered_set dict(wordList.begin(), wordList.end()); + queue todo; + todo.push(beginWord); + int ladder = 1; + while (!todo.empty()) { + int n = todo.size(); + for (int i = 0; i < n; i++) { + string word = todo.front(); + todo.pop(); + if (word == endWord) { + return ladder; + } + dict.erase(word); + for (int j = 0; j < word.size(); j++) { + char c = word[j]; + for (int k = 0; k < 26; k++) { + word[j] = 'a' + k; + if (dict.find(word) != dict.end()) { + todo.push(word); + } + } + word[j] = c; + } + } + ladder++; + } + return 0; + } +}; +``` + +The above code starts from a single end beginWord. We may also start from the endWord simultaneously. Once we meet the same word, we are done. This link provides such a two-end search solution. I rewrite the code below for better readability. This solution uses two pointers phead and ptail to switch to the smaller set at each step to save time. + +```cpp +class Solution { +public: + int ladderLength(string beginWord, string endWord, vector& wordList) { + unordered_set dict(wordList.begin(), wordList.end()), head, tail, *phead, *ptail; + if (dict.find(endWord) == dict.end()) { + return 0; + } + head.insert(beginWord); + tail.insert(endWord); + int ladder = 2; + while (!head.empty() && !tail.empty()) { + if (head.size() < tail.size()) { + phead = &head; + ptail = &tail; + } else { + phead = &tail; + ptail = &head; + } + unordered_set temp; + for (auto it = phead -> begin(); it != phead -> end(); it++) { + string word = *it; + for (int i = 0; i < word.size(); i++) { + char t = word[i]; + for (int j = 0; j < 26; j++) { + word[i] = 'a' + j; + if (ptail -> find(word) != ptail -> end()) { + return ladder; + } + if (dict.find(word) != dict.end()) { + temp.insert(word); + dict.erase(word); + } + } + word[i] = t; + } + } + ladder++; + phead -> swap(temp); + } + return 0; + } +}; +``` + +## 529. 扫雷游戏 + +给定一个代表游戏板的二维字符矩阵。 'M' 代表一个未挖出的地雷,'E' 代表一个未挖出的空方块,'B' 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已挖出的方块相邻,'X' 则表示一个已挖出的地雷。 +现在给出在所有未挖出的方块中('M'或者'E')的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板: + + 如果一个地雷('M')被挖出,游戏就结束了- 把它改为 'X'。 + 如果一个没有相邻地雷的空方块('E')被挖出,修改它为('B'),并且所有和其相邻的方块都应该被递归地揭露。 + 如果一个至少与一个地雷相邻的空方块('E')被挖出,修改它为数字('1'到'8'),表示相邻地雷的数量。 + 如果在此次点击中,若无更多方块可被揭露,则返回面板。 + +示例 1: + + 输入: + + [['E', 'E', 'E', 'E', 'E'], + ['E', 'E', 'M', 'E', 'E'], + ['E', 'E', 'E', 'E', 'E'], + ['E', 'E', 'E', 'E', 'E']] + + Click : [3,0] + + 输出: + + [['B', '1', 'E', '1', 'B'], + ['B', '1', 'M', '1', 'B'], + ['B', '1', '1', '1', 'B'], + ['B', 'B', 'B', 'B', 'B']] + + +```CPP +class Solution { +public: + vector> updateBoard(vector>& board, vector& click) { + if(board[click[0]][click[1]] == 'M'){ + board[click[0]][click[1]] = 'X'; + return board; + } + reveal(board,click[0],click[1]); + return board; + } + + bool inboard(const vector>& board, int x, int y){ + return ( x>=0 && x=0 && y>& board, int x, int y){ + if(!inboard(board,x,y)) return; + if(board[x][y] == 'E'){ + //search 8 adjacent squares + int count = 0; + if(inboard(board,x-1,y-1) && board[x-1][y-1] == 'M') count++; + if(inboard(board,x-1,y ) && board[x-1][y ] == 'M') count++; + if(inboard(board,x-1,y+1) && board[x-1][y+1] == 'M') count++; + if(inboard(board,x ,y-1) && board[x ][y-1] == 'M') count++; + if(inboard(board,x ,y+1) && board[x ][y+1] == 'M') count++; + if(inboard(board,x+1,y-1) && board[x+1][y-1] == 'M') count++; + if(inboard(board,x+1,y ) && board[x+1][y ] == 'M') count++; + if(inboard(board,x+1,y+1) && board[x+1][y+1] == 'M') count++; + + if(count>0) + board[x][y] = '0'+count; + else{ + board[x][y] = 'B'; + reveal(board,x-1,y-1); + reveal(board,x-1,y ); + reveal(board,x-1,y+1); + reveal(board,x ,y-1); + reveal(board,x ,y+1); + reveal(board,x+1,y-1); + reveal(board,x+1,y ); + reveal(board,x+1,y+1); + } + } + } +}; +``` + +## 200. 岛屿数量 + +给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 + +示例 1: + + 输入: + 11110 + 11010 + 11000 + 00000 + + 输出: 1 + +示例 2: + + 输入: + 11000 + 11000 + 00100 + 00011 + + 输出: 3 + +```cpp +/* 方法一:深度优先搜索 + * 线性扫描整个二维网格,如果一个结点包含 1,则以其为根结点启动深度优先搜索。 + * 在深度优先搜索过程中,每个访问过的结点被标记为 0。计数启动深度优先搜索的根结点的数量, + * 即为岛屿的数量。 + */ +class Solution1 { +private: + void dfs(vector>& grid, int r, int c) { + int nr = grid.size(); + int nc = grid[0].size(); + + grid[r][c] = '0'; + if (r - 1 >= 0 && grid[r-1][c] == '1') dfs(grid, r - 1, c); + if (r + 1 < nr && grid[r+1][c] == '1') dfs(grid, r + 1, c); + if (c - 1 >= 0 && grid[r][c-1] == '1') dfs(grid, r, c - 1); + if (c + 1 < nc && grid[r][c+1] == '1') dfs(grid, r, c + 1); + } + +public: + int numIslands(vector>& grid) { + int nr = grid.size(); + if (!nr) return 0; + int nc = grid[0].size(); + + int num_islands = 0; + for (int r = 0; r < nr; ++r) { + for (int c = 0; c < nc; ++c) { + if (grid[r][c] == '1') { + ++num_islands; + dfs(grid, r, c); + } + } + } + + return num_islands; + } +}; + +/* + * 方法二: 广度优先搜索 + * 线性扫描整个二维网格,如果一个结点包含 1,则以其为根结点启动广度优先搜索。 + * 将其放入队列中,并将值设为 0 以标记访问过该结点。迭代地搜索队列中的每个结点, + * 直到队列为空。 + * */ +class Solution2 { +public: + int numIslands(vector>& grid) { + int nr = grid.size(); + if (!nr) return 0; + int nc = grid[0].size(); + + int num_islands = 0; + for (int r = 0; r < nr; ++r) { + for (int c = 0; c < nc; ++c) { + if (grid[r][c] == '1') { + ++num_islands; + grid[r][c] = '0'; // mark as visited + queue> nei***ors; + nei***ors.push({r, c}); + while (!nei***ors.empty()) { + auto rc = nei***ors.front(); + nei***ors.pop(); + int row = rc.first, col = rc.second; + if (row - 1 >= 0 && grid[row-1][col] == '1') { + nei***ors.push({row-1, col}); grid[row-1][col] = '0'; + } + if (row + 1 < nr && grid[row+1][col] == '1') { + nei***ors.push({row+1, col}); grid[row+1][col] = '0'; + } + if (col - 1 >= 0 && grid[row][col-1] == '1') { + nei***ors.push({row, col-1}); grid[row][col-1] = '0'; + } + if (col + 1 < nc && grid[row][col+1] == '1') { + nei***ors.push({row, col+1}); grid[row][col+1] = '0'; + } + } + } + } + } + + return num_islands; + } +}; +``` + +## 322. 零钱兑换 + +给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 + +示例 1: + + 输入: coins = [1, 2, 5], amount = 11 + 输出: 3 + 解释: 11 = 5 + 5 + 1 + +示例 2: + + 输入: coins = [2], amount = 3 + 输出: -1 + +说明: 你可以认为每种硬币的数量是无限的。 + +```cpp +class Solution { +public: + int coinChange(vector& coins, int amount) { + // int Max = amount + 1; + // vector dp(amount + 1, Max); + // dp[0] = 0; + // for (int i = 1; i <= amount; i++) { + // for (int j = 0; j < coins.size(); j++) { + // if (coins[j] <= i) { + // dp[i] = min(dp[i], dp[i - coins[j]] + 1); + // } + // } + // } + // return dp[amount] > amount ? -1 : dp[amount]; + + vector need(amount+1, amount+1); + need[0] = 0; + for (int c : coins) + for (int a = c; a <= amount; a++) + need[a] = min(need[a], need[a-c] + 1); + return need.back() > amount ? -1 : need.back(); + } +}; +``` + +## 455. 分发饼干 + +假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 + +注意: + + 你可以假设胃口值为正。 + 一个小朋友最多只能拥有一块饼干。 + +示例 1: + + 输入: [1,2,3], [1,1] + + 输出: 1 + +解释: + 你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。 + 虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。 + 所以你应该输出1。 + +示例 2: + + 输入: [1,2], [1,2,3] + + 输出: 2 + +解释: + 你有两个孩子和三块小饼干,2个孩子的胃口值分别是1,2。 + 你拥有的饼干数量和尺寸都足以让所有孩子满足。 + 所以你应该输出2. + +```CPP +/*贪心问题。优先满足胃口小的小朋友的需求。 + 1. 对 g 和 s 升序排序 + 2. 初始化两个指针 i 和 j 分别指向 g 和 s 初始位置 + 3. 对比 g[i] 和 s[j] + g[i] <= s[j]:饼干满足胃口,把能满足的孩子数量加 1,并移动指针 i = i + 1,j = j + 1 + g[i] > s[j]:无法满足胃口,j 右移,继续查看下一块饼干是否可以满足胃口 +*/ +class Solution { +public: + int findContentChildren(vector& g, vector& s) { + sort(g.begin(), g.end()); + sort(s.begin(), s.end()); + int g_length = g.size(); + int s_length = s.size(); + + int i = 0; + int j = 0; + int res = 0; + + while (i < g_length && j < s_length) { + if (g[i] <= s[j]) { + //可以满足胃口,把小饼干喂给小朋友 + res += 1; + i += 1; + j += 1; + } else + //不满足胃口,查看下一块小饼干 + j += 1; + } + return res; + } +}; +``` + +## 122. 买卖股票的最佳时机 II + +给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 +设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 +注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 + +示例 1: + + 输入: [7,1,5,3,6,4] + 输出: 7 + 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 + 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 + +```CPP +class Solution { +public: + int maxProfit(vector& prices) { + int maxprofit = 0; + for (int i = 1; i < prices.size(); i++) { + if (prices[i] > prices[i - 1]) + maxprofit += prices[i] - prices[i - 1]; + } + return maxprofit; + } +}; +``` + +## 55. 跳跃游戏 + +给定一个非负整数数组,你最初位于数组的第一个位置。 +数组中的每个元素代表你在该位置可以跳跃的最大长度。 +判断你是否能够到达最后一个位置。 + +示例 1: + + 输入: [2,3,1,1,4] + 输出: true + 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 + +示例 2: + + 输入: [3,2,1,0,4] + 输出: false + 解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。 + +```cpp +class Solution { +public: + bool canJump(vector& nums) { + // int i = 0; + // for (int reach = 0; i < nums.size() && i <= reach; ++i) + // reach = max(i + nums[i], reach); + // return i == nums.size(); + + if (nums.size() == 0) return false; + int len = nums.size() - 1; + for (int i = nums.size() - 1; i >= 0; i--) + if (nums[i] + i >= len) len = i; + return len == 0; + } +}; +``` + +## 860. 柠檬水找零 + +在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 +顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 +每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 +注意,一开始你手头没有任何零钱。 +如果你能给每位顾客正确找零,返回 true ,否则返回 false 。 + +示例 1: + + 输入:[5,5,5,10,20] + 输出:true + 解释: + 前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。 + 第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。 + 第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。 + 由于所有客户都得到了正确的找零,所以我们输出 true。 + +示例 2: + + 输入:[5,5,10] + 输出:true + +示例 3: + + 输入:[10,10] + 输出:false + +示例 4: + + 输入:[5,5,10,10,20] + 输出:false + 解释: + 前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。 + 对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。 + 对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。 + 由于不是每位顾客都得到了正确的找零,所以答案是 false。 + +提示: + + 0 <= bills.length <= 10000 + bills[i] 不是 5 就是 10 或是 20 + +```cpp +/* +Count the number of $5 and $10 in hand. +if (customer pays with $5) five++; +if (customer pays with $10) ten++, five--; +if (customer pays with $20) ten--, five-- or five -= 3; +*/ +class Solution { +public: + bool lemonadeChange(vector& bills) { + int five = 0, ten = 0; + for (int i : bills) { + if (i == 5) five++; + else if (i == 10) five--, ten++; + else if (ten > 0) ten--, five--; + else five -= 3; + if (five < 0) return false; + } + return true; + } +}; +``` + +## 69. x 的平方根 + +实现 int sqrt(int x) 函数。 +计算并返回 x 的平方根,其中 x 是非负整数。 +由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 + +示例 1: + + 输入: 4 + 输出: 2 + +示例 2: + + 输入: 8 + 输出: 2 + 说明: 8 的平方根是 2.82842..., + 由于返回类型是整数,小数部分将被舍去。 + +```cpp +class Solution { +public: + int mySqrt(int x) { + // 注意:针对特殊测试用例,例如 2147395599 + // 要把搜索的范围设置成长整型 + // 为了照顾到 0 把左边界设置为 0 + if (x == 0 || x == 1) return x; + + long left = 0; + // # 为了照顾到 1 把右边界设置为 x // 2 + 1 + long right = x / 2 + 1; + + while (left < right) { + // 注意:这里一定取右中位数,如果取左中位数,代码会进入死循环 + long mid = left + (right - left + 1) / 2; + //long mid = (left + right + 1) >> 1; + if (mid * mid > x) { + right = mid - 1; + } else { + left = mid; + } + } + // 因为一定存在,因此无需后处理 + return (int) left; + } +}; +``` + +## 33. 搜索旋转排序数组 + +假设按照升序排序的数组在预先未知的某个点上进行了旋转。 +( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 +搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 +你可以假设数组中不存在重复的元素。 +你的算法时间复杂度必须是 O(log n) 级别。 + +示例 1: + + 输入: nums = [4,5,6,7,0,1,2], target = 0 + 输出: 4 + +示例 2: + + 输入: nums = [4,5,6,7,0,1,2], target = 3 + 输出: -1 + +```cpp +class Solution { +public: + int search(vector& nums, int target) { +#ifdef OK + int lo = 0, hi = nums.size(); + while (lo < hi) { + int mid = (lo + hi) / 2; + + double num = (nums[mid] < nums[0]) == (target < nums[0]) + ? nums[mid] + : target < nums[0] ? -INFINITY : INFINITY; + + if (num < target) + lo = mid + 1; + else if (num > target) + hi = mid; + else + return mid; + } + return -1; +#else + int lo=0,hi=nums.size()-1; + // find the index of the smallest value using binary search. + // Loop will terminate since mid < hi, and lo or hi will shrink by at least 1. + // Proof by contradiction that mid < hi: if mid==hi, then lo==hi and loop would have been terminated. + while(lonums[hi]) lo=mid+1; + else hi=mid; + } + // lo==hi is the index of the smallest value and also the number of places rotated. + int rot=lo; + lo=0;hi=nums.size()-1; + // The usual binary search and accounting for rotation. + while(lo<=hi){ + int mid=(lo+hi)/2; + int realmid=(mid+rot)%nums.size(); + if(nums[realmid]==target)return realmid; + if(nums[realmid] Date: Sun, 3 Nov 2019 21:13:09 +1100 Subject: [PATCH 100/740] 296-Week 03 --- Week 03/id_296/LeetCode_33_296.java | 39 +++++++++++++++++++++++++ Week 03/id_296/LeetCode_74_296.java | 43 ++++++++++++++++++++++++++++ Week 03/id_296/LeetCode_860_296.java | 36 +++++++++++++++++++++++ 3 files changed, 118 insertions(+) create mode 100644 Week 03/id_296/LeetCode_33_296.java create mode 100644 Week 03/id_296/LeetCode_74_296.java create mode 100644 Week 03/id_296/LeetCode_860_296.java diff --git a/Week 03/id_296/LeetCode_33_296.java b/Week 03/id_296/LeetCode_33_296.java new file mode 100644 index 000000000..681ee3710 --- /dev/null +++ b/Week 03/id_296/LeetCode_33_296.java @@ -0,0 +1,39 @@ +/* + * @lc app=leetcode.cn id=33 lang=java + * + * [33] 搜索旋转排序数组 + */ + +// @lc code=start +class Solution { + public int search(int[] nums, int target) { + int start = 0; + int end = nums.length - 1; + while (start <= end) { + int mid = (start + end) / 2; + if (target == nums[mid]) { + return mid; + } + //左半段是有序的 + if (nums[start] <= nums[mid]) { + // 如果target在这段里,那么就继续在这找,不然丢弃 + if (target >= nums[start] && target < nums[mid]) { + end = mid - 1; + } else { + start = mid + 1; + } + //右半段是有序的 + } else { + //如果target在这段里,那么就继续在这找,不然丢弃 + if (target > nums[mid] && target <= nums[end]) { + start = mid + 1; + } else { + end = mid - 1; + } + } + } + return -1; + } +} +// @lc code=end + diff --git a/Week 03/id_296/LeetCode_74_296.java b/Week 03/id_296/LeetCode_74_296.java new file mode 100644 index 000000000..468557a65 --- /dev/null +++ b/Week 03/id_296/LeetCode_74_296.java @@ -0,0 +1,43 @@ +/* + * @lc app=leetcode.cn id=74 lang=java + * + * [74] 搜索二维矩阵 + */ + +// @lc code=start +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + if(matrix == null || matrix.length == 0) + return false; + + int row = 0, col = matrix[0].length - 1; + while (row < matrix.length && col >= 0) { + if (target == matrix[row][col]) + return true; + else if (target > matrix[row][col]) + row++; + else { + // col--; + //这道题是参照了其中一个题解,通过每行最右边一个元素来查找,如果发现在这一行里就一个一个继续滚动 + //我突然觉得在最后这里可以再插入一个二分查找 + //结果是可以的,而且打败了100%的提交者,开心 + //不过这里也占用了一些内存,相当于用空间换时间了 + int left = 0, right = matrix[0].length - 2, mid = 0; + while (left <= right) { + mid = (left + right) / 2; + if (target == matrix[row][mid]) + return true; + else if (target > matrix[row][mid]){ + left = mid + 1; + } else { + right = mid - 1; + } + } + return false; + } + } + return false; + } +} +// @lc code=end + diff --git a/Week 03/id_296/LeetCode_860_296.java b/Week 03/id_296/LeetCode_860_296.java new file mode 100644 index 000000000..cb5c61082 --- /dev/null +++ b/Week 03/id_296/LeetCode_860_296.java @@ -0,0 +1,36 @@ +/* + * @lc app=leetcode.cn id=860 lang=java + * + * [860] 柠檬水找零 + */ + +// @lc code=start +class Solution { + public boolean lemonadeChange(int[] bills) { + int c5=0; + int c10=0; + for(int bill:bills){ + if(bill==5){ + c5 += 5; + }else if(bill==10){ + if(c5!=0){ + c5-=5; + c10+=10; + }else + return false; + }else if(c10!=0){ + if(c5!=0){ + c5-=5; + c10-=10; + }else + return false; + }else if(c5>=15){ + c5 -= 15; + }else + return false; + } + return true; + } +} +// @lc code=end + From 35a4fce67b8c51699ac81b1e5e6901163483ddef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=B3=B0?= <55610465+barryxt@users.noreply.github.com> Date: Sun, 3 Nov 2019 18:23:20 +0800 Subject: [PATCH 101/740] Update NOTE.md --- Week 03/id_536/NOTE.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/Week 03/id_536/NOTE.md b/Week 03/id_536/NOTE.md index a6321d6e2..51e24736d 100644 --- a/Week 03/id_536/NOTE.md +++ b/Week 03/id_536/NOTE.md @@ -1,4 +1,36 @@ -# NOTE +第三周学习总结,将一些易忘的摘下。 +1.学习深度优先搜索、广度优先搜索算法。 + + 深度优先搜索:查找节点到节点,一条路径到终止节点之后再返回上一层继续查找其他分支,直至找到目标节点。回溯思想,比较多用递归实现。 + 广度优先搜索算法:地毯式逐层搜索,遍历得到的路径是起始点到终止节点的最短路径。借助队列实现。 +2.学习了贪心算法。 + + 贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部最优解。每一步只考虑一个数据,他的选取应该满足局部优化的条件。若下一个数据和部分最优解连在一起不再是可行解时,就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加算法停止 +3.学习了二分查找算法。 + + (1)二分查找的核心三点 + 第一,右边界的确定 + 第二,循环的中止条件 + 第三,中位数在什么条件下等于结束或继续 + (2)二分查找模板: + int binarySearch(vector &num,int target) + int left = 0; + int right = ...;//右边界的确定 + while(...)//循环的中止条件 + { + int mid = (left + right)/2; + if(nums[mid] == target)//中位数在什么条件下等于结束或继续 + ... + else if(nums[mid] < target); + ... + else if(nums[mid] > target); + ... + } + return ...; + + +4、本周感想 + 参照代码模板多练习。 From ddbed08ce75f06d9cbcef179419508fabf8efb9c Mon Sep 17 00:00:00 2001 From: huyong007 <1341696804@qq.com> Date: Sun, 3 Nov 2019 18:24:48 +0800 Subject: [PATCH 102/740] 646-Week 03 --- ...14\347\273\264\347\237\251\351\230\265.md" | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 "Week 03/id_646/\346\220\234\347\264\242\344\272\214\347\273\264\347\237\251\351\230\265.md" diff --git "a/Week 03/id_646/\346\220\234\347\264\242\344\272\214\347\273\264\347\237\251\351\230\265.md" "b/Week 03/id_646/\346\220\234\347\264\242\344\272\214\347\273\264\347\237\251\351\230\265.md" new file mode 100644 index 000000000..6f88f0ab2 --- /dev/null +++ "b/Week 03/id_646/\346\220\234\347\264\242\344\272\214\347\273\264\347\237\251\351\230\265.md" @@ -0,0 +1,43 @@ +> 方法一:数组方法: + +> 复杂度分析:时间复杂度为O(n),空间复杂度为O(1) +```js +var searchMatrix = function (matrix, target) { + return matrix.some(item =>{ + return item.includes(target) + } ); +}; +``` + + + +> 方法二:二分查找 + +> 复杂度分析:时间复杂度O(m+logn),空间复杂度O(1) +```js +var searchMatrix = function (matrix, target) { + if (matrix.length === 0) return false; + let n = matrix[0].length; + let m = matrix.length; + + let left = 0; + let right = n - 1; + while (matrix[m - 1][0] > target && m > 1) { + m -= 1; + } + while (left <= right) { + let mid = Math.floor(left + (right - left) / 2); + let tmp = matrix[(m - 1)][mid]; + if (tmp === target) { + return true; + } else { + if (tmp < target) { + left = mid + 1; + } else { + right = mid - 1; + } + } + } + return false; +}; +``` \ No newline at end of file From 2b782fcbfde1c00f3e64a3862bf74fd92fefebfc Mon Sep 17 00:00:00 2001 From: qianshaobo Date: Sun, 3 Nov 2019 18:30:27 +0800 Subject: [PATCH 103/740] week three --- Week 03/id_371/Leetcode_102_371.java | 84 ++++++++++++++ Week 03/id_371/Leetcode_122_371.java | 64 +++++++++++ Week 03/id_371/Leetcode_126_371.java | 120 ++++++++++++++++++++ Week 03/id_371/Leetcode_127_371.java | 160 +++++++++++++++++++++++++++ Week 03/id_371/Leetcode_153_371.java | 40 +++++++ Week 03/id_371/Leetcode_200_371.java | 55 +++++++++ Week 03/id_371/Leetcode_322_371.java | 97 ++++++++++++++++ Week 03/id_371/Leetcode_33_371.java | 53 +++++++++ Week 03/id_371/Leetcode_367_371.java | 50 +++++++++ Week 03/id_371/Leetcode_433_371.java | 75 +++++++++++++ Week 03/id_371/Leetcode_455_371.java | 44 ++++++++ Week 03/id_371/Leetcode_45_371.java | 35 ++++++ Week 03/id_371/Leetcode_515_371.java | 94 ++++++++++++++++ Week 03/id_371/Leetcode_529_371.java | 61 ++++++++++ Week 03/id_371/Leetcode_55_371.java | 38 +++++++ Week 03/id_371/Leetcode_69_371.java | 56 ++++++++++ Week 03/id_371/Leetcode_74_371.java | 56 ++++++++++ Week 03/id_371/Leetcode_860_371.java | 83 ++++++++++++++ Week 03/id_371/Leetcode_874_371.java | 129 +++++++++++++++++++++ 19 files changed, 1394 insertions(+) create mode 100644 Week 03/id_371/Leetcode_102_371.java create mode 100644 Week 03/id_371/Leetcode_122_371.java create mode 100644 Week 03/id_371/Leetcode_126_371.java create mode 100644 Week 03/id_371/Leetcode_127_371.java create mode 100644 Week 03/id_371/Leetcode_153_371.java create mode 100644 Week 03/id_371/Leetcode_200_371.java create mode 100644 Week 03/id_371/Leetcode_322_371.java create mode 100644 Week 03/id_371/Leetcode_33_371.java create mode 100644 Week 03/id_371/Leetcode_367_371.java create mode 100644 Week 03/id_371/Leetcode_433_371.java create mode 100644 Week 03/id_371/Leetcode_455_371.java create mode 100644 Week 03/id_371/Leetcode_45_371.java create mode 100644 Week 03/id_371/Leetcode_515_371.java create mode 100644 Week 03/id_371/Leetcode_529_371.java create mode 100644 Week 03/id_371/Leetcode_55_371.java create mode 100644 Week 03/id_371/Leetcode_69_371.java create mode 100644 Week 03/id_371/Leetcode_74_371.java create mode 100644 Week 03/id_371/Leetcode_860_371.java create mode 100644 Week 03/id_371/Leetcode_874_371.java diff --git a/Week 03/id_371/Leetcode_102_371.java b/Week 03/id_371/Leetcode_102_371.java new file mode 100644 index 000000000..314f30877 --- /dev/null +++ b/Week 03/id_371/Leetcode_102_371.java @@ -0,0 +1,84 @@ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-10-29 08:42 + **/ + +public class Leetcode_102_371 { + + class TreeNode { + int val; + TreeNode left, right; + + public TreeNode(int val) { + this.val = val; + } + } + + + /** + * 原解2:迭代,广度优先搜索 + * + * @param root + * @return + */ + public List> levelOrder2(TreeNode root) { + List> result = new ArrayList<>(); + if (root == null) { + return result; + } + Queue queue = new LinkedList<>(); + queue.add(root); + while (queue != null) { + List list = new ArrayList<>(); + int count = queue.size(); + while (count-- > 0) {//保证将当前层的元素在内循环中全部消耗掉 + //处理当前逻辑 + TreeNode curr = queue.poll(); + list.add(curr.val); + if (curr.left != null) queue.add(curr.left); + if (curr.right != null) queue.add(curr.right); + } + result.add(list); + } + + return result; + } + + /** + * 原解1:递归,广度优先搜索 + * + * @param root + * @return + */ + public List> levelOrder1(TreeNode root) { + List> result = new ArrayList<>(); + if (root == null) { + return result; + } + recur(root, 0, result); + return result; + } + + private void recur(TreeNode root, int level, List> result) { + //1.递归出口 + if (root == null) return; + + //2.处理当前层 + if (level + 1 > result.size()) {//保证每一层的元素加入对应层的容器`` + result.add(new ArrayList<>()); + } + List list = result.get(level); + list.add(root.val); + //3.带上参数,去下一层 + if (root.left != null) recur(root.left, level + 1, result); + if (root.right != null) recur(root.right, level + 1, result); + //4.清理当前层 + } +} diff --git a/Week 03/id_371/Leetcode_122_371.java b/Week 03/id_371/Leetcode_122_371.java new file mode 100644 index 000000000..761db7698 --- /dev/null +++ b/Week 03/id_371/Leetcode_122_371.java @@ -0,0 +1,64 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-01 07:57 + **/ + +public class Leetcode_122_371 { + + public static void main(String[] args) { +// int[] prices = {7, 6, 4, 3, 1}; +// int[] prices = {1, 2, 3, 4, 5}; + int[] prices = {1, 2, 5, 3, 4}; + int profit = maxProfit2(prices); + System.out.println(profit); + } + + /** + * 原解2:累加每段上升的利润 + * + * @author Shaobo.Qian + * @date 2019/11/1 + */ + public static int maxProfit2(int[] prices) { + if (prices.length == 0 || prices.length == 1) return 0; + int sum = 0; + int min = 0; + int max = 0; + boolean flag = true;//是否处于上升 + for (int i = 1; i < prices.length; i++) { + if (prices[i] < prices[i - 1]) { + if (flag && max > min) { + sum += (prices[max] - prices[min]); + } + min = i; + flag = false; + } else { + flag = true; + max = i; + } + if (flag && i == prices.length - 1 && (max > min)) { + sum += (prices[max] - prices[min]); + } + } + return sum; + } + + /** + * 原解1:暴力法 + * + * @author Shaobo.Qian + * @date 2019/11/1 + */ + public static int maxProfit1(int[] prices) { + if (prices.length == 0 || prices.length == 1) return 0; + int profit = 0; + //22比较,当后面的数大于前面的数就产生了利润 + for (int i = 1; i < prices.length; i++) { + if (prices[i] > prices[i - 1]) profit += (prices[i] - prices[i - 1]); + } + return profit; + } + +} diff --git a/Week 03/id_371/Leetcode_126_371.java b/Week 03/id_371/Leetcode_126_371.java new file mode 100644 index 000000000..55073d40d --- /dev/null +++ b/Week 03/id_371/Leetcode_126_371.java @@ -0,0 +1,120 @@ +import java.util.*; + +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-10-31 07:35 + **/ + +public class Leetcode_126_371 { + public static void main(String[] args) { + String beginWord = "hit"; + String endWord = "cog"; + List wordList = Arrays.asList("hot", "dot", "dog", "lot", "log", "cog"); + List> res = findLadders(beginWord, endWord, wordList); + res.stream().forEach(System.out::println); + } + + /** + * 仿解1(BFS+DFS) + * @author Shaobo.Qian + * @date 2019/10/31 + */ + public static List> findLadders(String beginWord, String endWord, List wordList) { + //0.处理边界情况 + Set dict = new HashSet<>(wordList); + List> result = new ArrayList<>(); + if(!wordList.contains(endWord)) return result; + //1.记录每个节点的所有邻居节点 + Map> nodeNeighbors = new HashMap<>(); + //2.记录每个节点到起点的最短路径 + Map distance = new HashMap<>(); + + //从起点到终点的路径 + ArrayList path = new ArrayList<>(); + dict.add(beginWord); + bfs(beginWord, endWord, dict, nodeNeighbors, distance); + dfs(beginWord, endWord, dict, nodeNeighbors, distance, path, result); + return result; + } + + private static void dfs(String currWord, String endWord, Set dict, Map> nodeNeighbors, Map distance, ArrayList path, List> result) { + //1.递归出口(当没有下一层为被访问的节点时,递归结束) + //2.处理当前层 + path.add(currWord); + if (endWord.equals(currWord)) { + result.add(new ArrayList<>(path)); + } else { + List neighbors = nodeNeighbors.get(currWord); + for (String nextWord : neighbors) { + //3.带上参数,去下一层 + if (distance.get(currWord) + 1 == distance.get(nextWord)) {//确保是当前节点的下一层,因为邻点也包括它的父节点 + dfs(nextWord, endWord, dict, nodeNeighbors, distance, path, result); + } + } + + } + //4.清理当前层数据 ---> 每一条路径在处理完时(只要走完,无论是否找到终点)需要清除, 因为path容器是所有容器共享的 + path.remove(path.size() - 1); + } + + private static void bfs(String beginWord, String endWord, Set dict, Map> nodeNeighbors, Map distance) { + for (String str : dict) { + nodeNeighbors.put(str, new ArrayList()); + } + + Queue queue = new LinkedList<>(); + queue.offer(beginWord); + distance.put(beginWord, 0);//起点与起点之间的距离为0 + boolean foundEnd = false; //如果在当前层找到 endstr + while (!queue.isEmpty()) { + int count = queue.size(); + for (int i = 0; i < count; i++) { + //获取当前节点 + String curr = queue.poll(); + //起点到当前节点的距离 + int currDistance = distance.get(curr); + //找到邻居节点(下一层节点),并记录当前节点到起点的最短 + ArrayList neighbors = getNeighbor(curr, dict); + for (String neighbor : neighbors) { + nodeNeighbors.get(curr).add(neighbor); + if (!distance.containsKey(neighbor)) {//check if visited 该节点 + distance.put(neighbor, currDistance + 1); + if (endWord.equals(neighbor)) { + foundEnd = true; + } else { + queue.offer(neighbor); + } + } + } + if (foundEnd) break;//从当前节点所在层去往终点只有一条路径,所以跳出循环,不需要在当前层找了 + } + + } + } + + /** + * 找到当前节点的下一层节点 + * + * @param curr + * @param dict + * @return + */ + private static ArrayList getNeighbor(String curr, Set dict) { + ArrayList res = new ArrayList<>(); + char[] chs = curr.toCharArray(); + for (char ch = 'a'; ch < 'z'; ch++) { + for (int i = 0; i < chs.length; i++) { + if (ch == chs[i]) continue; + char old = chs[i]; + chs[i] = ch; + if (dict.contains(String.valueOf(chs))) res.add(String.valueOf(chs)); + chs[i] = old; + } + } + return res; + } + + +} diff --git a/Week 03/id_371/Leetcode_127_371.java b/Week 03/id_371/Leetcode_127_371.java new file mode 100644 index 000000000..74ca06dd6 --- /dev/null +++ b/Week 03/id_371/Leetcode_127_371.java @@ -0,0 +1,160 @@ +import java.util.*; + +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-10-29 22:22 + **/ + +public class Leetcode_127_371 { + + public static void main(String[] args) { + String beginWord = "hit"; + String endWord = "cog"; +// List wordList = Arrays.asList("hot","dot","dog","lot","log"); + List wordList = Arrays.asList("hot", "dot", "dog", "lot", "log", "cog"); + int i = ladderLength3(beginWord, endWord, wordList); + System.out.println("i = " + i); + } + + + /** + * 仿解2:(双向 BFS 优化:优化掉了 visited;以前的思路是记录访问的节点,现在是直接删除访问的节点,而下一轮要遍历的一度关系节点都已经保存在beginSet 容器合 endSet 容器中了) + * + * @author Shaobo.Qian + * @date 2019/10/30 + */ + public static int ladderLength3(String beginWord, String endWord, List wordAsList) { + //0.边界处理 + if (!wordAsList.contains(endWord)) return 0; + //1.定义容器,变量 + Set beginSet = new HashSet<>(); + Set endSet = new HashSet<>(); + Set wordList = new HashSet<>(wordAsList); + beginSet.add(beginWord); + endSet.add(endWord); + int step = 1; + wordList.remove(beginWord); + wordList.remove(endWord); + //2.每次选择较小的那一层,对该层进行遍历 + while (!beginSet.isEmpty()) { + step++; + Set nextSet = new HashSet<>(); + //3.对当前层节点进行遍历 + for (String currWord : beginSet) { + char[] chars = currWord.toCharArray(); + for (int i = 0; i < currWord.length(); i++) { + + for (char c = 'a'; c < 'z'; c++) { + char old = chars[i]; + chars[i] = c; + String targetStr = String.valueOf(chars); + if (endSet.contains(targetStr)) return step; + if (wordList.contains(targetStr)) { + //4.生成下一层元素 + nextSet.add(targetStr); + wordList.remove(targetStr); + } + chars[i] = old; + } + } + } + + beginSet = nextSet.size() < endSet.size() ? nextSet : endSet; + endSet = beginSet.size() < endSet.size() ? endSet : nextSet; + } + return 0; + } + + /** + * 仿解1:(双向 BFS) + * + * @author Shaobo.Qian + * @date 2019/10/30 + */ + public static int ladderLength2(String beginWord, String endWord, List wordList) { + //0.边界处理 + if (!wordList.contains(endWord)) return 0; + //1.定义容器,变量 + Set beginSet = new HashSet<>(); + Set endSet = new HashSet<>(); + Set visited = new HashSet<>(); + beginSet.add(beginWord); + endSet.add(endWord); + int step = 0; + //2.每次选择较小的那一层,对该层进行遍历 + while (!beginSet.isEmpty()) { + step++; + if (endSet.size() < beginSet.size()) { + Set set = beginSet; + beginSet = endSet; + endSet = set; + } + Set tempSet = new HashSet<>(); + //3.对当前层节点进行遍历 + for (String word : beginSet) { + char[] chars = word.toCharArray(); + for (int i = 0; i < word.length(); i++) { + for (char c = 'a'; c < 'z'; c++) { + char old = chars[i]; + chars[i] = c; + String targetStr = String.valueOf(chars); + if (endSet.contains(targetStr)) return step + 1; + if (!visited.contains(targetStr) && wordList.contains(targetStr)) { + visited.add(targetStr); + tempSet.add(targetStr); + } + chars[i] = old; + } + } + } + + beginSet = tempSet; + } + return 0; + } + + + /** + * 原解1:最短路径问题(BFS) + * + * @author Shaobo.Qian + * @date 2019/10/30 + */ + public static int ladderLength1(String beginWord, String endWord, List wordList) { + //0.边界处理 + if (wordList == null || wordList.size() == 0) return 0; + if (!wordList.contains(endWord)) return 0; + //1.创建各种容器 + Set visited = new HashSet<>(); + Queue queue = new LinkedList<>(); + queue.add(beginWord); + int step = 0; + while (!queue.isEmpty()) { + step++; + //2.确定每次BFS 的宽度 + int count = queue.size(); + while (count-- > 0) { + //3.处理当前节点 + String curr = queue.poll(); + if (!visited.contains(curr)) { + visited.add(curr); + for (String wordStr : wordList) { + int diff = 0; + for (int i = 0; i < curr.length(); i++) { + if (curr.charAt(i) != wordStr.charAt(i)) diff++; + } + if (diff == 1) { + //4.找到新节点,放入队列 + if (endWord.equals(wordStr)) return step + 1; + queue.add(wordStr); + } + } + } + } + } + + return 0; + } +} diff --git a/Week 03/id_371/Leetcode_153_371.java b/Week 03/id_371/Leetcode_153_371.java new file mode 100644 index 000000000..1e18fda08 --- /dev/null +++ b/Week 03/id_371/Leetcode_153_371.java @@ -0,0 +1,40 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-03 11:54 + **/ + +public class Leetcode_153_371 { + public static void main(String[] args) { + int[] nums = {3, 4, 5, 6, 7,0, 1, 2}; + int min = findMin(nums); + System.out.println("min = " + min); + } + + /** + * 原解1:二分查找(每次确定剩下空间的最小值,和之前已确定的空间最小值进行比较) + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static int findMin(int[] nums) { + int left = 0; + int right = nums.length - 1; + + int min = nums[0]; + while (left <= right) { + int mid = left + (right - left) / 2; + //1.左边有序,记录左边最小值, 继续在右边搜索 + if (nums[mid] >= nums[0]) { + min = Math.min(min, nums[left]); + left = mid + 1; + } else { + //2.右边有序,记录右边的最小值,继续在左边搜索 + min = Math.min(min, nums[mid]); + right = mid - 1; + } + } + return min; + } + +} diff --git a/Week 03/id_371/Leetcode_200_371.java b/Week 03/id_371/Leetcode_200_371.java new file mode 100644 index 000000000..fbf99d21a --- /dev/null +++ b/Week 03/id_371/Leetcode_200_371.java @@ -0,0 +1,55 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-10-31 12:02 + **/ + +public class Leetcode_200_371 { + public static void main(String[] args) { + char[][] grid = {{'1', '0', '1', '1', '0', '1', '1'}}; + int count = numIslands(grid); + System.out.println("count = " + count); + + } + + /** + * 原解1:DFS + * + * @param grid + * @return + */ + public static int numIslands(char[][] grid) { + //把1变为0需要多少次 + int count = 0; + for (int i = 0; i < grid.length; i++) { + for (int j = 0; j < grid[i].length; j++) { + if (grid[i][j] == '1') { + count++; + zeroGrid(i, j, grid); + } + } + } + return count; + } + + private static void zeroGrid(int i, int j, char[][] grid) { + int nLine = grid.length; + int nColumn = grid[0].length; + //1.递归出口 + if (i < 0 || j < 0 || i >= nLine || j >= nColumn || grid[i][j] == '0') return; + //2.处理当前层 + grid[i][j] = '0'; + //3.带上参数去下一层 + //同一层,向左 + zeroGrid(i, j - 1, grid); + //同一层,向右 + zeroGrid(i, j + 1, grid); + //同一列,向上 + zeroGrid(i - 1, j, grid); + //同一列,向下 + zeroGrid(i + 1, j, grid); + //4.清理当前层 + } + +} diff --git a/Week 03/id_371/Leetcode_322_371.java b/Week 03/id_371/Leetcode_322_371.java new file mode 100644 index 000000000..6aedc4652 --- /dev/null +++ b/Week 03/id_371/Leetcode_322_371.java @@ -0,0 +1,97 @@ +import java.util.Arrays; + +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-02 17:36 + **/ + +public class Leetcode_322_371 { + public static void main(String[] args) { +// int[] coins = {186, 419, 83, 408}; +// int[] coins = {1}; +// int[] coins = {1,2,5}; + int[] coins = {2}; +// int amount = 6249; +// int amount = 11; + int amount = 3; +// int amount = 1; + int count = coinChange2(coins, amount); + System.out.println("count = " + count); + + } + + + /** + * 仿解2:动态规划(自底向上) + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static int coinChange2(int[] coins, int amount) { + int[] dp = new int[amount + 1]; + for (int i = 1; i <= amount; i++) { + int min = Integer.MAX_VALUE; + for (int coin : coins) { + if (i >= coin && dp[i - coin] != -1) { + min = Math.min(min, dp[i - coin]); + } + } + dp[i] = min == Integer.MAX_VALUE ? -1 : min+1; + } + + return dp[amount]; + } + /** + * 仿解1:动态规划(自顶向下) + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static int coinChange1(int[] coins, int amount) { + if (amount<1) return 0; + int[] count = new int[amount]; + + return helper(coins,amount,count); + } + + private static int helper(int[] coins, int rem, int[] count) { + //1.递归出口 + if(rem <0) return -1; //invalid + if(rem == 0) return 0;//completed + //如果计算过的结果 + if(count[rem-1]!= 0) return count[rem - 1]; + int min = Integer.MAX_VALUE; + //2.处理当前层(动态规划的方式处理) + for (int coin : coins) { + //3.带上参数,去下一层 + int res = helper(coins, rem - coin, count); + if (res >= 0 && res < min) { + min = 1 + res; + } + } + //处理当前层结果,并返回 + count[rem - 1] = min == Integer.MAX_VALUE ? -1 : min; + return count[rem - 1]; + } + + /** + /** + * 原解1:(未解出) + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static int coinChange(int[] coins, int amount) { + if(amount == 0) return 0; + Arrays.sort(coins); + int count = 0; + for (int i = coins.length - 1; i >= 0; i--) { + if (amount >= coins[i]) { + count += amount / coins[i]; + amount %= coins[i]; + if (amount == 0) return count; + } + } + return -1; + } + +} diff --git a/Week 03/id_371/Leetcode_33_371.java b/Week 03/id_371/Leetcode_33_371.java new file mode 100644 index 000000000..c67ac87dc --- /dev/null +++ b/Week 03/id_371/Leetcode_33_371.java @@ -0,0 +1,53 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-03 11:53 + **/ + +public class Leetcode_33_371 { + + public static void main(String[] args) { + int[] nums = {3, 1}; +// int[] nums = {4, 5, 6, 7, 0, 1, 2,3}; + int target = 1; + int index = search(nums, target); + System.out.println("index = " + index); + } + + /** + * 仿解1:二分查找(判断升序) + * + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static int search(int[] nums, int target) { + int left = 0; + int right = nums.length - 1; +// int mid = left + (right - left) / 2; + while (left <= right) { + int mid = left + (right - left) / 2; + //出口 + if (nums[mid] == target) { + return mid; + } + + if (nums[mid] >= nums[left]) {//mid的左边升序(left-mid) + if (target <= nums[mid] && target >= nums[left]) {//在左边 + right = mid - 1; + } else {//在右边 + left = mid + 1; + } + } else {//右边升序 + if (target >= nums[mid] && target <= nums[right]) {//在右边搜 + left = mid + 1; + } else {//去左边 + right = mid - 1; + } + + } +// mid = left + (right - left) / 2; + } + return -1; + } +} diff --git a/Week 03/id_371/Leetcode_367_371.java b/Week 03/id_371/Leetcode_367_371.java new file mode 100644 index 000000000..06727888a --- /dev/null +++ b/Week 03/id_371/Leetcode_367_371.java @@ -0,0 +1,50 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-03 11:35 + **/ + +public class Leetcode_367_371 { + public static void main(String[] args) { + int num = 16; + boolean perfectSquare = isPerfectSquare2(num); + System.out.println("perfectSquare = " + perfectSquare); + } + + /** + * 原解2:牛顿迭代法 + * + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static boolean isPerfectSquare2(int num) { + long r = num; + while (r * r > num) { + r = (r + num / r) / 2; + } + return r * r == num; + } + /** + * 原解1:二分查找法 + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static boolean isPerfectSquare1(int num) { + //确定左右边界 + long left = 0; + long right = num / 2 + 1;//num开根号的值不会大于 num/2+1 + while (left <= right) { + long mid = left + (right - left) / 2; + if (mid * mid == num) { + return true; + } else if (mid * mid > num) { + right = mid - 1; + } else { + left = left + 1; + } + } + return false; + } + +} diff --git a/Week 03/id_371/Leetcode_433_371.java b/Week 03/id_371/Leetcode_433_371.java new file mode 100644 index 000000000..ce5c6e661 --- /dev/null +++ b/Week 03/id_371/Leetcode_433_371.java @@ -0,0 +1,75 @@ +import java.util.*; + +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-10-29 10:09 + **/ + +public class Leetcode_433_371 { + public static void main(String[] args) { + String start = "AACCGGTT"; + String end = "AAACGGTA"; + String[] bank = {"AACCGGTA", "AACCGCTA", "AAACGGTA"}; + int i = minMutation(start, end, bank); + System.out.println("i = " + i); + } + + /** + * 仿解1:单向 BFS<===(如何转化成单向 BFS的问题的?差1个字符就是1度关系,差2个字符就是2度关系,依次将当前顶点的一度关系加入队列) + * + * @return + */ + public static int minMutation(String start, String end, String[] bank) { + //0.边界情况处理 + if (start.isEmpty() || end.isEmpty() || bank ==null|| bank.length == 0) return -1; + + if (start.equals(end)) return 0; + + + //1.定义是否访问过该节点 + Set visited = new HashSet<>(); + //2.创建队列 + Queue queue = new LinkedList<>(); + //3.将起点加入队列 + queue.add(start); + int step = 0; + while (!queue.isEmpty()) { + step++; + int count = queue.size(); //确定每次 BFS 的宽度 + for (int i = 0; i < count; i++) { + String curr = queue.poll(); + for (int j = 0; j < bank.length; j++) { + int diff = 0;//注意 diff 的作用域 + if (!visited.contains(bank[j])) {//当前节点未被访问 + String bankStr = bank[j]; + for (int k = 0; k < curr.length(); k++) { + if (curr.charAt(k) != bankStr.charAt(k)) diff++; + } + if (diff == 1) { + //判断是否是end + if (bankStr.equals(end)) return step; + visited.add(bank[j]);//标记该节点已经访问 + queue.add(bankStr); + } + } + } + } + } + return -1; + } +} + + + + + + + + + + + + + diff --git a/Week 03/id_371/Leetcode_455_371.java b/Week 03/id_371/Leetcode_455_371.java new file mode 100644 index 000000000..d711a1c53 --- /dev/null +++ b/Week 03/id_371/Leetcode_455_371.java @@ -0,0 +1,44 @@ +import java.util.Arrays; + +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-02 11:28 + **/ + +public class Leetcode_455_371 { + + public static void main(String[] args) { +// int[] g = {1, 2,2}; + int[] g = {10,9,8,7}; +// int[] s = {1, 1}; +// int[] s = {1,2,3}; + int[] s = {5,6,7,8}; + int content = findContentChildren1(g, s); + System.out.println("content = " + content); + } + + /** + * 原解1:贪心算法 + * + * @author Shaobo.Qian + * @date 2019/11/2 + */ + public static int findContentChildren1(int[] g, int[] s) { + int content = 0; + int sLen = s.length; + Arrays.sort(g); + //先满足胃口大的 + for (int i = g.length - 1; i >= 0; i--) { + if (sLen <= 0) return content; + //边界处理 + if (s[sLen - 1] >= g[i]) { + content++; + sLen--; + } + } + return content; + } + +} diff --git a/Week 03/id_371/Leetcode_45_371.java b/Week 03/id_371/Leetcode_45_371.java new file mode 100644 index 000000000..5b3146696 --- /dev/null +++ b/Week 03/id_371/Leetcode_45_371.java @@ -0,0 +1,35 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-02 16:17 + **/ + +public class Leetcode_45_371 { + public static void main(String[] args) { + int[] nums = {2, 3, 1, 1, 4}; + int jump = jump(nums); + System.out.println("jump = " + jump); + + } + + /** + * 仿解1:贪婪法(每次在可跳访问内,选择那个能调到更远的地方) + * @author Shaobo.Qian + * @date 2019/11/2 + * @link https://leetcode-cn.com/problems/jump-game-ii/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by-10/ + */ + public static int jump(int[] nums) { + int end = 0; + int step = 0; + int maxPosition = 0; + for (int i = 0; i < nums.length - 1; i++) { + maxPosition = Math.max(maxPosition, nums[i] + i); + if (i == end) {//每次到达能边界的时候更新能跳跃到的边界和步数+1 + end = maxPosition; + step++; + } + } + return step; + } +} diff --git a/Week 03/id_371/Leetcode_515_371.java b/Week 03/id_371/Leetcode_515_371.java new file mode 100644 index 000000000..70ba5f84d --- /dev/null +++ b/Week 03/id_371/Leetcode_515_371.java @@ -0,0 +1,94 @@ +import java.util.*; + +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-10-29 21:47 + **/ + +public class Leetcode_515_371 { + class TreeNode { + int val; + TreeNode left, right; + + public TreeNode(int val) { + + this.val = val; + } + + } + + /** + * 原解2:优化 BFS + * @param root + * @return + */ + public List largestValues2(TreeNode root) { + //边界条件 + if (root == null) return new ArrayList<>(); + //1.结果 + List result = new ArrayList<>(); + //2.创建队列 + Queue queue = new LinkedList<>(); + queue.add(root); + while (!queue.isEmpty()) { + int count = queue.size(); + Integer max = null; + while (count-- > 0) { + TreeNode curr = queue.poll(); + if (max == null + ) { + max = curr.val; + } else { + max = Math.max(max, curr.val); + } + if (curr.left != null) queue.add(curr.left); + if (curr.right != null) queue.add(curr.right); + } + result.add(max); + } + return result; + } + + /** + * 原解1:BFS + * + * @param root + * @return + */ + public List largestValues1(TreeNode root) { + //边界条件 + if (root == null) return new ArrayList<>(); + //1.结果 + List result = new ArrayList<>(); + Set visited = new HashSet<>(); + //2.创建队列 + Queue queue = new LinkedList<>(); + queue.add(root); + //3.BFS + while (!queue.isEmpty()) { + Integer max = null; + //3.1确定队列的广度 + int count = queue.size(); + while (count-- > 0) { + TreeNode curr = queue.poll(); + if (!visited.contains(curr)) { + visited.add(curr); + //更新最大值 + if (max == null) { + max = curr.val; + } else { + max = Math.max(curr.val, max); + } + max = Math.max(max, curr.val); + if (curr.left != null) queue.add(curr.left); + if (curr.right != null) queue.add(curr.right); + } + } + result.add(max); + } + + return result; + } +} diff --git a/Week 03/id_371/Leetcode_529_371.java b/Week 03/id_371/Leetcode_529_371.java new file mode 100644 index 000000000..84bba0c8f --- /dev/null +++ b/Week 03/id_371/Leetcode_529_371.java @@ -0,0 +1,61 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-10-31 17:29 + **/ + +public class Leetcode_529_371 { + + /** + * 仿解1:DFS + * + * @param board 字典 + * @param click 传入的坐标 + * @return + * @link https://leetcode.com/problems/minesweeper/discuss/99826/Java-Solution-DFS-%2B-BFS + */ + public char[][] updateBoard(char[][] board, int[] click) { + int nRow = board.length; + int nColumn = board[0].length; + //1.坐标 + int row = click[0]; + int col = click[1]; + + //1.递归出口 + if (board[row][col] == 'M') { + board[row][col] = 'X'; + return board; + } else { + //2.处理当前节点(找出当前坐标邻点中有多少雷) + int count = 0; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if (i == 0 && j == 0) continue;//当前节点 + int r = row + i; + int c = col + j; + if (r < 0 || r >= nRow || c < 0 || c >= nColumn) continue;//超出边界,不处理 + if (board[r][c] == 'M' || board[r][c] == 'X') count++; + } + } + if (count > 0) { + board[row][col] = (char) (count + '0'); + } else { + //3.带上参数,去下一层 递归调用 + board[row][col] = 'B'; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if (i == 0 && j == 0) continue; + int r = row + i; + int c = col + j; + if (r < 0 || r >= nRow || c < 0 || c >= nColumn) continue;//超出边界,不处理 + + } + } + } + + } + return board; + } + +} diff --git a/Week 03/id_371/Leetcode_55_371.java b/Week 03/id_371/Leetcode_55_371.java new file mode 100644 index 000000000..fec279692 --- /dev/null +++ b/Week 03/id_371/Leetcode_55_371.java @@ -0,0 +1,38 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-02 16:17 + **/ + +public class Leetcode_55_371 { + public static void main(String[] args) { +// int[] nums = {0,2,3}; + int[] nums = {1, 0, 1, 0}; +// int[] nums = {2, 3, 1, 1, 4}; +// int[] nums = {3, 2, 1, 0, 4}; + System.out.println(canJump(nums)); + + } + + /** + * 原解1.累加有效长度 + * + * @author Shaobo.Qian + * @date 2019/11/2 + */ + public static boolean canJump(int[] nums) { + if (nums.length <= 1) return true; + int targetLen = nums.length; + int maxLen = 0; //在当前位置能达到的最远位置 + for (int i = 0; i < nums.length - 1; i++) { + maxLen = Math.max(maxLen - 1, nums[i]); + //maxLen和 nus[i]都为0,已经跳不过去了 + if (maxLen == 0 && nums[i] == 0) return false; + targetLen = targetLen - 1; + if (maxLen >= targetLen) return true; + } + return false; + } + +} diff --git a/Week 03/id_371/Leetcode_69_371.java b/Week 03/id_371/Leetcode_69_371.java new file mode 100644 index 000000000..8e7700ce9 --- /dev/null +++ b/Week 03/id_371/Leetcode_69_371.java @@ -0,0 +1,56 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-03 10:05 + **/ + +public class Leetcode_69_371 { + + public static void main(String[] args) { +// int x = 16; +// int x = 17; + int x = 12; + int res = mySqrt2(x); + System.out.println("res = " + res); + + } + + /** + * 仿解2:(牛顿迭代法) + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static int mySqrt2(int x) { + long r = x; + while (r * r > x) { + r = (r + x / r) / 2; + } + return (int) r; + } + + + /** + * 仿解1:(二分查找) + * + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static int mySqrt1(int x) { + //确定左右边界,开根号的值在 left 到 right 之间 + long left = 0; + long right = x / 2 + 1;//对于一个非负数n,它的平方根不会大于(n/2+1) + while (left <= right) { + long mid = left + (right - left) / 2; + if (mid * mid == x) { + return (int) mid; + } else if (mid * mid > x) { + right = mid - 1; + } else { + left = left + 1; + } + } + //如果开根号不是正数,最后的值在left到right之间 + return (int) right; + } +} diff --git a/Week 03/id_371/Leetcode_74_371.java b/Week 03/id_371/Leetcode_74_371.java new file mode 100644 index 000000000..8bb6ac092 --- /dev/null +++ b/Week 03/id_371/Leetcode_74_371.java @@ -0,0 +1,56 @@ +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-03 11:53 + **/ + +public class Leetcode_74_371 { + + public static void main(String[] args) { +// int[][] martrix = {}; + int[][] martrix = {{1, 3, 5, 7}, {10, 11, 16, 20}, {23, 30, 34, 50}}; + boolean res = searchMatrix(martrix, 51); + System.out.println("res = " + res); + } + /** + * 原解1:2次二分搜素 + * + * @author Shaobo.Qian + * @date 2019/11/3 + */ + public static boolean searchMatrix(int[][] matrix, int target) { + //0.处理边界值 + if(matrix==null || matrix.length == 0 || matrix[0].length == 0 || target < matrix[0][0]) return false; + //1.先确定在哪一行 + int rMinIndex = 0; + int rMaxIndex = matrix.length - 1; + int rMidIndex = 0; + // 如果没有搜索到target,出循环后,target肯定matrix[rMaxIndex]这一行 + while (rMinIndex <= rMaxIndex) { + rMidIndex = rMinIndex + (rMaxIndex - rMinIndex) / 2; + if (matrix[rMidIndex][0] == target) { + return true; + } else if (matrix[rMidIndex][0] < target) { + rMinIndex = rMidIndex + 1; + } else { + rMaxIndex = rMidIndex - 1; + } + } + int cMinIndex = 0; + int cMaxIndex = matrix[0].length - 1; + int cMidIndex = 0; + while (cMinIndex <= cMaxIndex) { + cMidIndex = cMinIndex + (cMaxIndex - cMinIndex) / 2; + if (matrix[rMaxIndex][cMidIndex] == target) { + return true; + } else if (matrix[rMaxIndex][cMidIndex] < target) { + cMinIndex = cMidIndex + 1; + } else { + cMaxIndex = cMidIndex - 1; + } + } + + return false; + } +} diff --git a/Week 03/id_371/Leetcode_860_371.java b/Week 03/id_371/Leetcode_860_371.java new file mode 100644 index 000000000..d06cc9c7a --- /dev/null +++ b/Week 03/id_371/Leetcode_860_371.java @@ -0,0 +1,83 @@ +import java.util.HashMap; +import java.util.Map; + +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-10-31 19:50 + **/ + +public class Leetcode_860_371 { + public static void main(String[] args) { + int[] bills = {5, 5, 5, 5, 20, 20, 5, 5, 20, 5}; +// int[] bills = {5, 5, 10, 10, 20}; + System.out.println(lemonadeChange2(bills)); + + } + /** + * 优化 + * @author Shaobo.Qian + * @date 2019/11/1 + */ + public static boolean lemonadeChange2(int[] bills) { + + int fiveCnts = 0, tenCnts = 0; + + for (int i = 0; i < bills.length; i++) { + if (bills[i] == 5) { + fiveCnts++; + } else if (bills[i] == 10) { + if (fiveCnts == 0) return false; + fiveCnts--; + tenCnts++; + } else { + if (tenCnts > 0 && fiveCnts > 0) { + fiveCnts--; + tenCnts--; + } else if (fiveCnts >= 3) { + fiveCnts -= 3; + } else { + return false; + } + } + } + return true; + } + + /** + * 原解1:贪心法+map + * + * @author Shaobo.Qian + * @date 2019/10/31 + */ + public static boolean lemonadeChange1(int[] bills) { + //对10来讲,5是可用的对20来件10和5是可用的 + Map map = new HashMap<>(); + map.put(5, 0); + map.put(10, 0); + Integer fiveCnts = map.get(5); + Integer tenCnts = map.get(10); + for (int i = 0; i < bills.length; i++) { + if (bills[i] == 5) { + map.put(5, fiveCnts++); + } else if (bills[i] == 10) { + if (fiveCnts == 0) return false; + map.put(5, fiveCnts--); + map.put(10, tenCnts++); + } else { + if (tenCnts == 0) { + if (fiveCnts < 3) return false; + fiveCnts = fiveCnts - 3; + map.put(5, fiveCnts); + } else { + if (fiveCnts == 0) return false; + map.put(10, tenCnts--); + map.put(5, fiveCnts--); + } + } + } + return true; + } + +} diff --git a/Week 03/id_371/Leetcode_874_371.java b/Week 03/id_371/Leetcode_874_371.java new file mode 100644 index 000000000..559ed9e26 --- /dev/null +++ b/Week 03/id_371/Leetcode_874_371.java @@ -0,0 +1,129 @@ +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * @program: algorithm004-01 + * @description: + * @author: Shaobo.Qian + * @create: 2019-11-02 11:59 + **/ + +public class Leetcode_874_371 { + public static void main(String[] args) { + int[] commands = {-2, -1, 8, 9, 6}; +// int[] commands = {4, -1, 3}; +// int[] commands = {4, -1, 4, -2, 4}; +// int[][] obstacles = {{2, 4}}; + int[][] obstacles = {{-1, 3}, {0, 1}, {-1, 5}, {-2, -4}, {5, 4}, {-2, -3}, {5, -1}, {1, -1}, {5, 5}, {5, 2}}; + int res = robotSim2(commands, obstacles); + System.out.println("res = " + res); + } + + /** + * 防解1:模拟法 + * + * @author Shaobo.Qian + * @date 2019/11/3 + * @link + */ + public static int robotSim2(int[] commands, int[][] obstacles) { + //1.存入所有障碍物坐标 + Set set = new HashSet<>(); + for (int[] obstacle : obstacles) { + set.add(obstacle[0] + "," + obstacle[1]); + } + + //2.模拟在坐标系四个方向上(上,右,下,左) + int[][] dirs = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; + //dir对应 二维数组dirs的索引,(现实含义:将要在某个方向前进一步) + int dir = 0, x = 0, y = 0, result = 0; + for (int c : commands) { + if (c == -1) { + dir++; + if (dir == 4) {//转换后,才能在 dirs 中取到值 + dir = 0; + } + } else if (c == -2) { + dir--; + if (dir == -1) {//转换后,才能在 dirs 中取到值 + dir = 3; + } + } else { + while (c-- > 0 && !set.contains((x + dirs[dir][0]) + "," + (y + dirs[dir][1]))) { + x += dirs[dir][0]; + y += dirs[dir][1]; + } + } + result = Math.max(result, x * x + y * y); + } + return result; + } + + /** + * 原解1:模拟(未解出) + * + * @author Shaobo.Qian + * @date 2019/11/2 + */ + public static int robotSim1(int[] commands, int[][] obstacles) { + + //定义横坐标 x,纵坐标 y,找到 x,y 的最大距离 + int x = 0, y = 0; + //y轴上的障碍物 + List yList = new ArrayList<>(); + //x轴上的障碍物 + List xList = new ArrayList<>(); + //2.根据障碍物,真实在 x,y 上的最大距离 + if (obstacles != null && obstacles.length > 0) { + for (int i = 0; i < obstacles.length; i++) { + //判断是否能遇到障碍物 + xList.add(obstacles[i][0]); + yList.add(obstacles[i][1]); + } + } + + boolean xFlag = true; + //1.假设没有障碍物的情况下x,y 的最大距离 + for (int i = 0; i < commands.length; i++) { + if (xFlag) { + x += commands[i]; + } else { + y += commands[i]; + } + if (commands[i] == -1 && yList.contains(y)) { + //在x轴上前进,判断是否会遇见障碍物 + //看当前的y是否在ySet中 + for (int j = 0; j < xList.size(); j++) { + Integer lowLimit = xList.get(j); + if (x >= xList.get(j)) { + xList.remove(lowLimit); + j--; + } else { + x = Math.min(x += commands[i], lowLimit - 1); + } + } + } else if (commands[i] == -2 && xList.contains(x)) { + //在y 轴上前进,判断是否会遇见障碍物 + for (int j = 0; j < yList.size(); j++) { + Integer lowLimit = yList.get(j); + if (y >= yList.get(j)) { + yList.remove(lowLimit); + j--; + } else { + y = Math.min(y += commands[i], lowLimit - 1); + } + } + xFlag = false; + } else { + if (xFlag) { + x += commands[i]; + } else { + y += commands[i]; + } + } + } + return x * x + y * y; + } +} From 95ce9fc664f33ec4b542b4360d869217567751a9 Mon Sep 17 00:00:00 2001 From: Zachy Date: Sun, 3 Nov 2019 18:33:56 +0800 Subject: [PATCH 104/740] =?UTF-8?q?=E5=88=A0=E9=99=A4.idea=E7=9B=B8?= =?UTF-8?q?=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/algorithm004-01.iml | 12 ----- .idea/misc.xml | 6 --- .idea/modules.xml | 8 ---- .idea/vcs.xml | 6 --- .idea/workspace.xml | 94 --------------------------------------- 5 files changed, 126 deletions(-) delete mode 100644 .idea/algorithm004-01.iml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml delete mode 100644 .idea/workspace.xml diff --git a/.idea/algorithm004-01.iml b/.idea/algorithm004-01.iml deleted file mode 100644 index 24643cc37..000000000 --- a/.idea/algorithm004-01.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 28a804d89..000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 156db0a63..000000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7f4..000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml deleted file mode 100644 index 89077208e..000000000 --- a/.idea/workspace.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1570841054492 - - - - - - - - - - - - - - - - - - \ No newline at end of file From 6af8e3a22b3d4e47cecbd38a7d47a51a92ab43fc Mon Sep 17 00:00:00 2001 From: weipeng <624435565@qq.com> Date: Sun, 3 Nov 2019 19:19:50 +0800 Subject: [PATCH 105/740] 3 --- Week 03/id_451/LeetCode_153_451.go | 26 ++++++++++++++++++ Week 03/id_451/LeetCode_154_451.go | 32 ++++++++++++++++++++++ Week 03/id_451/LeetCode_33_451.go | 44 ++++++++++++++++++++++++++++++ Week 03/id_451/LeetCode_45_451.go | 22 +++++++++++++++ Week 03/id_451/LeetCode_860_451.go | 28 +++++++++++++++++++ 5 files changed, 152 insertions(+) create mode 100644 Week 03/id_451/LeetCode_153_451.go create mode 100644 Week 03/id_451/LeetCode_154_451.go create mode 100644 Week 03/id_451/LeetCode_33_451.go create mode 100644 Week 03/id_451/LeetCode_45_451.go create mode 100644 Week 03/id_451/LeetCode_860_451.go diff --git a/Week 03/id_451/LeetCode_153_451.go b/Week 03/id_451/LeetCode_153_451.go new file mode 100644 index 000000000..9d1e92c33 --- /dev/null +++ b/Week 03/id_451/LeetCode_153_451.go @@ -0,0 +1,26 @@ +func findMin(nums []int) int { + if len(nums) == 0 { + return 1<<32 - 1 + } + if len(nums) == 1 { + return nums[0] + } + if len(nums) == 2 { + if nums[0] < nums[1] { + return nums[0] + } + return nums[1] + } + r := len(nums) - 1 + mid := r / 2 + if nums[0] < nums[mid] && nums[mid] < nums[r] { + return nums[0] + } + if nums[0] > nums[mid] { + return findMin(nums[0 : mid+1]) + } + if nums[mid] > nums[r] { + return findMin(nums[mid : r+1]) + } + return math.MinInt64 +} diff --git a/Week 03/id_451/LeetCode_154_451.go b/Week 03/id_451/LeetCode_154_451.go new file mode 100644 index 000000000..37c3b7672 --- /dev/null +++ b/Week 03/id_451/LeetCode_154_451.go @@ -0,0 +1,32 @@ +func min(a, b int) int { + if a > b { + return b + } + return a +} +func findMin(nums []int) int { + if len(nums) == 0 { + return 1<<32 - 1 + } + if len(nums) == 1 { + return nums[0] + } + if len(nums) == 2 { + if nums[0] < nums[1] { + return nums[0] + } + return nums[1] + } + r := len(nums) - 1 + mid := r / 2 + if nums[0] < nums[mid] && nums[mid] < nums[r] { + return nums[0] + } + if nums[0] > nums[mid] { + return findMin(nums[0 : mid+1]) + } + if nums[mid] > nums[r] { + return findMin(nums[mid : r+1]) + } + return min(findMin(nums[0:mid]), findMin(nums[mid:r+1])) +} diff --git a/Week 03/id_451/LeetCode_33_451.go b/Week 03/id_451/LeetCode_33_451.go new file mode 100644 index 000000000..9b97ee4f8 --- /dev/null +++ b/Week 03/id_451/LeetCode_33_451.go @@ -0,0 +1,44 @@ +func _search(nums []int, l, r, t int) int { + + if r-l == 0 { + if nums[r] == t { + return r + } + return -1 + } + + if r-l == 1 { + if nums[r] == t { + return r + } + if nums[l] == t { + return l + } + return -1 + } + m := (l + r) / 2 + if nums[l] <= nums[m] && nums[m] < nums[r] { + if t >= nums[l] && t <= nums[r] { + if t >= nums[m] { + return _search(nums, m, r, t) + } + return _search(nums, l, m, t) + } + } + + a := _search(nums, l, m, t) + if a != -1 { + return a + } + b := _search(nums, m, r, t) + if b != -1 { + return b + } + return -1 +} +func search(nums []int, target int) int { + if len(nums) == 0 { + return -1 + } + return _search(nums, 0, len(nums)-1, target) +} diff --git a/Week 03/id_451/LeetCode_45_451.go b/Week 03/id_451/LeetCode_45_451.go new file mode 100644 index 000000000..ec677aa94 --- /dev/null +++ b/Week 03/id_451/LeetCode_45_451.go @@ -0,0 +1,22 @@ +func min(ns ...int) int { + t := 1<<32 - 1 + for _, n := range ns { + if n < t { + t = n + } + } + return t +} +func jump(nums []int) int { + l := len(nums) + dp := make([]int, l) + dp[l-1] = 0 + for i := l - 2; i >= 0; i-- { + n := nums[i] + dp[i] = 1<<32 - 1 + for j := i + 1; j <= l-1 && j <= i+n; j++ { + dp[i] = min(dp[i], dp[j]+1) + } + } + return dp[0] +} diff --git a/Week 03/id_451/LeetCode_860_451.go b/Week 03/id_451/LeetCode_860_451.go new file mode 100644 index 000000000..a69b67a0f --- /dev/null +++ b/Week 03/id_451/LeetCode_860_451.go @@ -0,0 +1,28 @@ +func lemonadeChange(bills []int) bool { + sum := make(map[int]int) + for _, b := range bills { + switch b { + case 5: + sum[5] += 1 + case 10: + sum[10] += 1 + if sum[5] <= 0 { + return false + } + sum[5] -= 1 + case 20: + sum[20] += 1 + if sum[10] > 0 && sum[5] > 0 { + sum[10] -= 1 + sum[5] -= 1 + } else if sum[5] >= 3 { + sum[5] -= 3 + } else { + return false + } + default: + panic("never") + } + } + return true +} From a6e505afdf778df13ec4f28fed9a6a79f1952367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?abs=2E=E5=BE=81=E5=8F=AC?= <1667057858@qq.com> Date: Sun, 3 Nov 2019 19:56:35 +0800 Subject: [PATCH 106/740] week 3 --- Week 03/id_481/leetcode_33_481.java | 66 ++++++++++++++++++++++++++++ Week 03/id_481/leetcode_74_481.java | 67 +++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 Week 03/id_481/leetcode_33_481.java create mode 100644 Week 03/id_481/leetcode_74_481.java diff --git a/Week 03/id_481/leetcode_33_481.java b/Week 03/id_481/leetcode_33_481.java new file mode 100644 index 000000000..c5eda2888 --- /dev/null +++ b/Week 03/id_481/leetcode_33_481.java @@ -0,0 +1,66 @@ +//假设按照升序排序的数组在预先未知的某个点上进行了旋转。 +// +// ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 +// +// 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 +// +// 你可以假设数组中不存在重复的元素。 +// +// 你的算法时间复杂度必须是 O(log n) 级别。 +// +// 示例 1: +// +// 输入: nums = [4,5,6,7,0,1,2], target = 0 +//输出: 4 +// +// +// 示例 2: +// +// 输入: nums = [4,5,6,7,0,1,2], target = 3 +//输出: -1 +// Related Topics 数组 二分查找 + +package leetcode.editor.cn; + +//Java:搜索旋转排序数组 +public class P33SearchInRotatedSortedArray { + public static void main(String[] args) { + Solution solution = new P33SearchInRotatedSortedArray().new Solution(); + // TO TEST + int[] arr = {4, 5, -2, -1, 0, 1, 2}; + //int[] arr = {-5, -1, 0, 2, 4, 5, 6, 7, 0, 1, 2}; + System.out.println(solution.search2(arr, -2)); + } + + + //leetcode submit region begin(Prohibit modification and deletion) + class Solution { + + public int search2(int[] nums , int target){ + int left = 0; + int right = nums.length - 1; + while (left <= right){ + int mid = (left + right) / 2; + if(target == nums[mid]){ + return mid; + } + if(nums[left] <= nums[mid]){ + if(target >= nums[left] && target < nums[mid]){ + right = mid - 1; + } else { + left = mid + 1; + } + } else { + if(target > nums[mid] && target <= nums[right]){ + left = mid + 1; + } else { + right = mid - 1; + } + } + } + return -1; + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} diff --git a/Week 03/id_481/leetcode_74_481.java b/Week 03/id_481/leetcode_74_481.java new file mode 100644 index 000000000..91ca5f943 --- /dev/null +++ b/Week 03/id_481/leetcode_74_481.java @@ -0,0 +1,67 @@ +//编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: +// +// +// 每行中的整数从左到右按升序排列。 +// 每行的第一个整数大于前一行的最后一个整数。 +// +// +// 示例 1: +// +// 输入: +//matrix = [ +// [1, 3, 5, 7], +// [10, 11, 16, 20], +// [23, 30, 34, 50] +//] +//target = 3 +//输出: true +// +// +// 示例 2: +// +// 输入: +//matrix = [ +// [1, 3, 5, 7], +// [10, 11, 16, 20], +// [23, 30, 34, 50] +//] +//target = 13 +//输出: false +// Related Topics 数组 二分查找 + +package leetcode.editor.cn; +//Java:搜索二维矩阵 +public class P74SearchA2dMatrix{ + public static void main(String[] args) { + Solution solution = new P74SearchA2dMatrix().new Solution(); + int[][] matrix = { + { 1, 2, 3, 4 , 20 }, + { 5, 6, 7, 10 , 21 }, + { 9, 10, 11, 12 , 22 }, + { 13, 14, 15, 16 , 23 } + }; + System.out.println(solution.searchMatrix(matrix,7)); + // TO TEST + } + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + int row = 0; + int col = matrix[0].length-1; + while (row < matrix.length && col >= 0){ + if(matrix[row][col] == target){ + return true; + } else if(matrix[row][col] > target){ + col--; + } else { + row++; + } + } + return false; + } +} +//leetcode submit region end(Prohibit modification and deletion) + +} From 7dcd49be3b32ead41062cb47a17f016bce4be794 Mon Sep 17 00:00:00 2001 From: shniu Date: Sun, 3 Nov 2019 19:59:39 +0800 Subject: [PATCH 107/740] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_716/LeetCode_102_716.java | 7 + Week 03/id_716/LeetCode_107_716.java | 8 ++ Week 03/id_716/LeetCode_127_716.java | 1 + Week 03/id_716/LeetCode_55_716.go | 15 +++ Week 03/id_716/NOTE.md | 189 ++++++++++++++++++++------- 5 files changed, 175 insertions(+), 45 deletions(-) create mode 100644 Week 03/id_716/LeetCode_55_716.go diff --git a/Week 03/id_716/LeetCode_102_716.java b/Week 03/id_716/LeetCode_102_716.java index 193d7a95a..7fb5deaf7 100644 --- a/Week 03/id_716/LeetCode_102_716.java +++ b/Week 03/id_716/LeetCode_102_716.java @@ -63,3 +63,10 @@ private void levelOrderHelper(TreeNode node, int level, List> res) levelOrderHelper(node.right, level + 1, res); } } + +class TreeNode { + int val; + TreeNode left; + TreeNode right; + TreeNode(int val) { this.val = val; } +} diff --git a/Week 03/id_716/LeetCode_107_716.java b/Week 03/id_716/LeetCode_107_716.java index 8011128a8..5ced7909d 100644 --- a/Week 03/id_716/LeetCode_107_716.java +++ b/Week 03/id_716/LeetCode_107_716.java @@ -1,3 +1,4 @@ +import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; @@ -52,4 +53,11 @@ public List> levelOrderBottom2(TreeNode root) { return res; } +} + +class TreeNode { + int val; + TreeNode left; + TreeNode right; + TreeNode(int val) { this.val = val; } } \ No newline at end of file diff --git a/Week 03/id_716/LeetCode_127_716.java b/Week 03/id_716/LeetCode_127_716.java index 8ae39db7f..537f616d8 100644 --- a/Week 03/id_716/LeetCode_127_716.java +++ b/Week 03/id_716/LeetCode_127_716.java @@ -1,3 +1,4 @@ +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; diff --git a/Week 03/id_716/LeetCode_55_716.go b/Week 03/id_716/LeetCode_55_716.go new file mode 100644 index 000000000..0a7a25178 --- /dev/null +++ b/Week 03/id_716/LeetCode_55_716.go @@ -0,0 +1,15 @@ +package id_716 + +// https://leetcode-cn.com/problems/jump-game/ +// 跳跃游戏 + +// 贪心算法 +// 要点:从最后1个位置往前找,如果前面的位置能够到达指定的后面的位置,说明是可达的,然后就更新要判断的位置,一直到结束 +// 如果最后没有办法回到起始位置,说明不能到达最后一个位置 +func canJump(nums []int) bool { + pos := len(nums) - 1 + for i := pos; i >= 0; i-- { + if i + nums[i] >= pos { pos = i } + } + return pos == 0 +} \ No newline at end of file diff --git a/Week 03/id_716/NOTE.md b/Week 03/id_716/NOTE.md index 308f4ed89..666129853 100644 --- a/Week 03/id_716/NOTE.md +++ b/Week 03/id_716/NOTE.md @@ -1,8 +1,8 @@ # NOTE -### Week 03 关键部分笔记 +## Week 03 关键部分笔记 -##### 深度优先搜索和广度优先搜索 +### 深度优先搜索和广度优先搜索 - 深度优先搜索:DFS,Deep First Search @@ -38,8 +38,8 @@ def DFS(root): visited.add(node) process(node) - nodes = generate_related_nodes(node) - stack.push(nodes) + nodes = generate_related_nodes(node) + stack.push(nodes) ``` @@ -49,32 +49,32 @@ def DFS(root): ```python def BFS(graph, start, end): - queue = [] - queue.append([start]) - visited.add(start) + queue = [] + queue.append([start]) + visited.add(start) - while queue: - node = queue.pop() - visited.add(node) + while queue: + node = queue.pop() + visited.add(node) - process(node) - nodes = generate_related_nodes(node) - queue.push(nodes) + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) - # other processing work - ... + # other processing work + # ... ``` - 题目 -https://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description (done) -https://leetcode-cn.com/problems/minimum-genetic-mutation/#/description -https://leetcode-cn.com/problems/generate-parentheses/#/description -https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/#/description + (done) + + + -https://leetcode-cn.com/problems/word-ladder/description/ -https://leetcode-cn.com/problems/word-ladder-ii/description/ -https://leetcode-cn.com/problems/number-of-islands/ -https://leetcode-cn.com/problems/minesweeper/description/ + (done) + + + - Topic:全面掌握深度优先搜索和广度优先搜索 @@ -85,19 +85,19 @@ https://leetcode-cn.com/problems/minesweeper/description/ 岛屿个数,有效数独,迷宫问题 -##### 贪心算法 +### 贪心算法 - 题目 -https://leetcode-cn.com/problems/coin-change/ -https://leetcode-cn.com/problems/lemonade-change/description/ (done) -https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/ (done) -https://leetcode-cn.com/problems/assign-cookies/description/ (done) -https://leetcode-cn.com/problems/walking-robot-simulation/description/ -https://leetcode-cn.com/problems/jump-game/ -https://leetcode-cn.com/problems/jump-game-ii/ + + (done) + (done) + (done) + + (done) + (done) -##### 二分查找 +### 二分查找 - 前提 @@ -107,26 +107,123 @@ https://leetcode-cn.com/problems/jump-game-ii/ - 代码模版 -``` - -``` - - 题目 -https://leetcode-cn.com/problems/sqrtx/ (done) -https://leetcode-cn.com/problems/valid-perfect-square/ (done) + (done) + (done) -https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ (done) -https://leetcode-cn.com/problems/search-a-2d-matrix/ -https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ + (done) + + 使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 说明:同学们可以将自己的思路、代码写在第 3 周的学习总结中 ---- +--- + +### 【716-Week 03】第一次全方位学习贪心算法 + +这是训练营的第3周,本周的内容较上周少一些,主要涉及BFS,DFS,贪心算法和二分查找;其中二分查找的思想有在上周的总结中有所提及,做了一些分析,但贪心算法早在读大学时就有了解,可惜从来没有全方位的去学习和理解他适用的问题场景、他的优点和他的局限,本周特别的对贪心算法做了些功课。 + +在求解最优化问题的时候,需要经过一系列的步骤,在每个步骤中都会面临多种选择;对于其中的某些问题,可以简单高效的解决,相比于动态规划,贪心算法就是这样一类算法,在每一步中都做出当前来看最优的选择:通过局部最优的选择,来得出全局最优(可见,这种方式不是对所有问题都是有效的,而我们只需要关注那些有效的问题即可)。 + +#### 贪心算法的基本要素 -### 【716-Week 03】总结 +下面一段关于贪心算法的原理,出自《算法导论》贪心算法章节 +> 贪心算法的一般性质: +> +> 1. 将最优化问题转化成这样的形式:对其做出一次选择后,只剩下一个子问题需要求解 +> 2. 证明做出贪心选择后,原问题总是存在最优解,即贪心选择总是安全的 +> 3. 证明做出贪心选择后,剩余的子问题满足性质:其最优解与贪心选择组合即可得到原问题的最优解,这样就得到了最优子结构 -// todo +可见,使用贪心算法解决问题的核心是:1. 贪心选择后,剩下一个子问题而且局部最优解能够构造出全局最优解;2. 最优子结构,贪心选择后的子问题与贪心选择的最优解组合可以得到原问题的最优解;这么说是比较抽象 + +#### 分析活动选择问题 + +从分析一个简单贪心算法的例子开始,活动选择问题是一个比较典型的应用贪心算法的例子,问题描述如下: + +> 有 n 个活动,每个活动都有起始时间,这些活动使用同一个资源,这个资源在某个时刻只能提供一个活动使用。如果两个活动的起始时间不重复,则他们是兼容的。在这个活动集合中求出最大兼容活动集。 +> 例子: +> start[] = {1, 3, 0, 5, 8, 5}; +> finish[] = {2, 4, 6, 7, 9, 9}; +> 输出:{0, 1, 3, 4} (0 1 3 4 是下标) + +对于能应用贪心算法的问题,最大的难度是如何证明贪心选择是安全的,大部分情况下,我们都是凭借着归纳法、感觉和经验,实际上这是可以证明的。 + +我们利用贪心算法的一般性质来分析一下活动选择问题,首先我们需要选定贪心的立足点,也就是我们在什么角度上分解出当前选择和子问题,现在我们以最早结束时间为贪心的对象,因为直观上来讲,越早结束的活动,留给后面的活动选择子问题越多的时间,所以我们贪心的选择最早结束的活动,现在来看: + +1. 做出一次选择后,是否只剩下一个子问题?是的,比如我们选择活动a1后,且a1是最早结束的活动,那么接下来的问题就是在剩下的集合中再选择一个最早结束的活动;依次类推,每一步都是重复之前的动作:做出当前看来最优的选择(最早结束的活动),求剩下活动集合的子问题的解 +2. 针对这个问题,贪心选择是安全的吗?可以证明,针对活动选择问题,在做出贪心选择后,总是存在最优解 +3. 是否能得到最优子结构?最优子结构,和最近重复性是有一些相似的,最优子结构就是可重复的子问题,这样就可以将复杂的问题拆解成更小的子问题的解 + +那么,求解活动选择问题的步骤如下: + +1. 对所有的活动根据结束时间排序,从小到大 +2. 选择第一个活动,因为他就是最早结束的活动 +3. 接着往后找最早结束的活动,同时要满足该活动的开始时间要大于等于上一个选择的活动的结束时间,一直到没有活动可以选择 + +代码实现: + +```java +// 假设活动已经是根据结束时间有序的 +public class ActivitySelection { + /** + * 求解最大的兼容活动集合, 返回下标的集合 + * s 表示活动开始时间的集合 + * f 表示活动结束时间的集合 + * n 表示活动的总数 + */ + public List maxActivites(int[] s, int[] f, int n) { + List res = new ArrayList<>(); + int selected = 0; + res.add(selected); + + // 求剩余子问题的解 + for (int j = 0; j < n; j++) { + // 该活动的开始时间要大于等于上一个选择的活动的结束时间 + // 就是下一个要选择的活动 + if (s[j] >= f[i]) { + selected = j; + res.add(selected); + } + } + return res; + } +} +``` + +#### 贪心算法的实际应用 + +1. 哈夫曼编码 +2. 最小生成树:Prim 算法和 Kruskal 算法 +3. 最短路径:Dijkstra 算法 + +#### 相关题目练习 + +利用老师课上讲的利用贪心选择和最近重复性的原则,以及贪心算法的基本要素:证明贪心选择的安全性以及找出最优子结构,原问题的最优解可以通过组合当前的选择和子问题的最优解得到。 + +- [移掉 K 个数字](https://leetcode-cn.com/problems/remove-k-digits/) + +问题描述: +>给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 +> +> 1. num 的长度小于 10002 且 ≥ k +> 2. num 不会包含任何前导零 + +- [无重叠区间](https://leetcode-cn.com/problems/non-overlapping-intervals/) + +问题描述: +> 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 +> +> 1. 可以认为区间的终点总是大于它的起点。 +> 2. 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 + +- [任务调度器](https://leetcode-cn.com/problems/task-scheduler/) + +#### 参考 + +1. 算法导论 +2. 数据结构与算法分析 +3. [Greedy Algothrim](https://www.geeksforgeeks.org/greedy-algorithms/) ### 思考题 @@ -147,6 +244,8 @@ https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ 此外,mid元素和位置0的元素做比较,道理是一样的 +综合分析思路1和思路2,思路2的时间复杂度是 O(logn), 思路1的时间复杂度是O(n), 这个角度来看,思路2优于思路1,选择思路2做代码实现 + - 编写代码 ```java @@ -169,7 +268,7 @@ public class HomeWork1 { - 测试用例 -``` +```text Test Case: [10, 11, 12, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9] [10, 9] From 08065ad6a831797a097d9787cccac77344815003 Mon Sep 17 00:00:00 2001 From: alexwei12 <6Sbfga12> Date: Sun, 3 Nov 2019 20:11:26 +0800 Subject: [PATCH 108/740] week3 --- Week 03/id_136/LeetCode_127_136.java | 34 ++++++++++++++++++++++++++++ Week 03/id_136/LeetCode_200_136.java | 22 ++++++++++++++++++ Week 03/id_136/LeetCode_455_136.java | 14 ++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 Week 03/id_136/LeetCode_127_136.java create mode 100644 Week 03/id_136/LeetCode_200_136.java create mode 100644 Week 03/id_136/LeetCode_455_136.java diff --git a/Week 03/id_136/LeetCode_127_136.java b/Week 03/id_136/LeetCode_127_136.java new file mode 100644 index 000000000..17decb047 --- /dev/null +++ b/Week 03/id_136/LeetCode_127_136.java @@ -0,0 +1,34 @@ +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class n0127 { + + public int ladderLength(String beginWord, String endWord, List wordList) { + Set wordSet=new HashSet<>(wordList); + Set reached=new HashSet<>(); + reached.add(beginWord); + wordSet.remove(beginWord); + int level=1; + while(!reached.isEmpty()) { + Set reachedNext=new HashSet<>(); + for(String s:reached) { + for(int i=0;i=0 && j>=0 && i Date: Sun, 3 Nov 2019 20:11:32 +0800 Subject: [PATCH 109/740] Create leetcode-55.py --- Week 03/id_381/leetcode-55.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Week 03/id_381/leetcode-55.py diff --git a/Week 03/id_381/leetcode-55.py b/Week 03/id_381/leetcode-55.py new file mode 100644 index 000000000..59a99a7a9 --- /dev/null +++ b/Week 03/id_381/leetcode-55.py @@ -0,0 +1,11 @@ + +# 从右往左贪心 +class Solution: + def canJump(self, nums) -> bool: + end = len(nums) - 1 + for i in range(len(nums)-1, 0-1, -1): + if nums[i] + i >= end: + end = i + if end == 0: + return True + return end == 0 From d5abdca94f803e4c4e3adab7b61edda3e5898313 Mon Sep 17 00:00:00 2001 From: Fangbaso4 <44719631+Fangbaso4@users.noreply.github.com> Date: Sun, 3 Nov 2019 20:12:14 +0800 Subject: [PATCH 110/740] create note --- Week 03/id_111/NOTE.md | 87 +++++++++++++++++++++++++++++- Week 03/id_111/leetcode_127_111.py | 13 +++++ 2 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_111/leetcode_127_111.py diff --git a/Week 03/id_111/NOTE.md b/Week 03/id_111/NOTE.md index a6321d6e2..e1dacd234 100644 --- a/Week 03/id_111/NOTE.md +++ b/Week 03/id_111/NOTE.md @@ -1,4 +1,89 @@ -# NOTE +# 九、十、十一课(DFS BFS |Greedy |Binary search) +--- +## 深度优先搜索、广度优先搜索(第九课) +### 定义 + 实现遍历,需保证每个节点都要访问且仅访问一次 +### 深度优先搜索(DFS) +**示例代码** + 1. 递归,遍历顺序 +- 根节点起始,选一个方向走到底 +- 返回查看是否有子节点 + 2. 非递归写法 +- 手动维护栈: +- 代码示例 +### 广度优先(BFS) + 发散方式 + 本身使用 queque 和一个循环进行实现 + 队列形式 +- VIUALGO.NET +### 实战题目 +- 102 Binary Tree Level Order Tracersal 二叉树的层次遍历 + - 思路一 BFS 即广度优先模式 + 标识每一层的结束 + - DFS 标记访问目标的层,最后进行加和 + 访问结点时有深度信息 + - 迭代 (实际也为广度优先搜索 +- 433 最小基因变化 minimum genetic mutation + BFS 即可解决 +- 22 括号生成 + - 递归 + - DFS + 左右括号可以出来一个递归的状态树 + - 作业:此题使用BFS 进行解答 +### HOME_WORK +word-ladder/description +word-ladder-ii 高频 +- 220 岛屿数量 +二维矩阵判定网格岛屿数量 +DFS +遇岛夷地(floodfill) +BFS扩散 +并查集 +## 贪心算法Greedy(第十课) +### 定义拆解 +- 当下每一步做出最优选择且不会回退(动态规划会保存每一步选择,可回退 +- 可解决最优化问题 + 图中最小生成树 + 求哈夫曼编码 +- 可用作辅助算法/作辅助算法,解决对结果精确要求不高的问题 +### Coin Change +- 按面值大小降序,依次算对应的硬币可以用多少个【备选硬币与目标数据存在整除关系时,贪心算法易于得到最优解 +### 可用贪心算法的情况 +- 可分解为子问题,且子问题最优解能地推到最终问题的最优解 +## 二分查找 +### **前提** +1. 目标函数具有单调性(单调递增或单调递减) +2. 存在上下界(bounded) +3. 能通过索引访问(index accessible) +### 代码模板 +> left,right = 0,len(array) - 1 +while left <= right: + mid = (left+ right)​/2 + if array[mid] == target: + ​​#find the target + ​​break or return result + elif array[mid] < target: + ​​ ​​left = mid +1 + else: + right = mid -1​​ +### 代码题解 +- 实现 int sqrt(int x) +二分法 +牛顿迭代法(现实中反而用的多) +r = (r+x/r)/2 +python :r = xwhile r*r >x: r = (r+x/r)/2 while r*r >xreturn r​​​​ +- leetcode 367 +- homework 1 题 + +###五毒神掌:四步做题法 +1. 审题 。细节 边界 输入输出范围 +2. 所有解法思考一遍,关于时间空间复杂度列出,探讨最优解法。 +- 暴力:还原 -> 变成严格升序数组 -> 二分法:O(logN) +- 正解:二分查找 +a. 单调 +b. 边界 +3. 写代码 +4. 测试 diff --git a/Week 03/id_111/leetcode_127_111.py b/Week 03/id_111/leetcode_127_111.py new file mode 100644 index 000000000..d9a3bac54 --- /dev/null +++ b/Week 03/id_111/leetcode_127_111.py @@ -0,0 +1,13 @@ +# 127 单词接龙 +"""给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。 +转换需遵循如下规则: +每次转换只能改变一个字母。 +转换过程中的中间单词必须是字典中的单词。 + +说明: +如果不存在这样的转换序列,返回 0。 +所有单词具有相同的长度。 +所有单词只由小写字母组成。 +字典中不存在重复的单词。 +你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 +""" \ No newline at end of file From e0071adb5a7004f70258293d3f0546e0395daba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E9=AD=94=E4=BD=9B?= Date: Sun, 3 Nov 2019 20:13:04 +0800 Subject: [PATCH 111/740] Create leetcode-455.py --- Week 03/id_381/leetcode-455.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Week 03/id_381/leetcode-455.py diff --git a/Week 03/id_381/leetcode-455.py b/Week 03/id_381/leetcode-455.py new file mode 100644 index 000000000..e7065bcb9 --- /dev/null +++ b/Week 03/id_381/leetcode-455.py @@ -0,0 +1,15 @@ + +# 贪心算法 +# 先给g和s排序,这是首要做的,这一步很重要 +# 通过遍历循环s,从s中找到大于g中的元素,统计出最终找到的j的个数即可! +class Solution: + def findContentChildren(self, g, s) -> int: + g.sort() + s.sort() + j = 0 + for i in range(len(s)): + if j >= len(g): + break + if s[i] >= g[j]: + j += 1 + return j From 1e5eb80c8f170db3bc133e65c9e423c7d3908801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E9=AD=94=E4=BD=9B?= Date: Sun, 3 Nov 2019 20:14:41 +0800 Subject: [PATCH 112/740] Create leetcode-874.py --- Week 03/id_381/leetcode-874.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Week 03/id_381/leetcode-874.py diff --git a/Week 03/id_381/leetcode-874.py b/Week 03/id_381/leetcode-874.py new file mode 100644 index 000000000..7887870de --- /dev/null +++ b/Week 03/id_381/leetcode-874.py @@ -0,0 +1,26 @@ + +# 最开始是向北而行,x上的速度为0,y上的速度为1,x=0,y=1 +# 左转就变为x=-1,y=0,得出结论:dx, dy = -dy, dx +# 验证,每个轴都验证一遍,可行! +# 向右转也是类似的方式 +class Solution: + def robotSim(self, commands: List[int], obstacles: List[List[int]]) -> int: + dx, dy, x, y = 0, 1, 0, 0 + distance = 0 + obs_dict = {} + for obs in obstacles: + obs_dict[tuple(obs)] = 0 + for com in commands: + if com == -2: + dx, dy = -dy, dx + elif com == -1: + dx, dy = dy, -dx + else: + for j in range(com): + next_x = x + dx + next_y = y + dy + if (next_x, next_y) in obs_dict: + break + x, y = next_x, next_y + distance = max(distance, x*x + y*y) + return distance From b20118cb5bc45510cb16cc34e2dfa5f11fc74f5c Mon Sep 17 00:00:00 2001 From: wangna08 Date: Sun, 3 Nov 2019 20:15:31 +0800 Subject: [PATCH 113/740] week03_181 --- Week 01/id_181/11.js | 39 +++++++++++ ...ree-from-preorder-and-inorder-traversal.py | 10 ++- Week 03/id_181/LeetCode_127_181.py | 49 +++++++++++++ Week 03/id_181/LeetCode_200_181.py | 69 +++++++++++++++++++ Week 03/id_181/LeetCode_455_181.py | 22 ++++++ Week 03/id_181/LeetCode_74_181.py | 23 +++++++ Week 03/id_181/LeetCode_860_181.py | 25 +++++++ 7 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 Week 01/id_181/11.js create mode 100644 Week 03/id_181/LeetCode_127_181.py create mode 100644 Week 03/id_181/LeetCode_200_181.py create mode 100644 Week 03/id_181/LeetCode_455_181.py create mode 100644 Week 03/id_181/LeetCode_74_181.py create mode 100644 Week 03/id_181/LeetCode_860_181.py diff --git a/Week 01/id_181/11.js b/Week 01/id_181/11.js new file mode 100644 index 000000000..92235a973 --- /dev/null +++ b/Week 01/id_181/11.js @@ -0,0 +1,39 @@ + +/** + * [11. 盛最多水的容器 - 力扣(LeetCode)](https://leetcode-cn.com/problems/container-with-most-water/) + * @param {number[]} height + * @return {number} + */ +/** + * 粗暴解法,直接遍历 n^2 + */ + +var maxArea = function(height) { + let maxArea=0; + if(!(height.length>0)) return maxArea + for(let i=0;i0)) return maxArea; + let i = 0,j = height.length-1; + while(i < j) { + maxArea = height[i] < height[j] ? Math.max(maxArea,(j-i)*height[i++]):Math.max(maxArea,(j-i)*height[j--]); + } + return maxArea +}; \ No newline at end of file diff --git a/Week 02/id_181/105.construct-binary-tree-from-preorder-and-inorder-traversal.py b/Week 02/id_181/105.construct-binary-tree-from-preorder-and-inorder-traversal.py index 9d93fea4c..9d463ad02 100644 --- a/Week 02/id_181/105.construct-binary-tree-from-preorder-and-inorder-traversal.py +++ b/Week 02/id_181/105.construct-binary-tree-from-preorder-and-inorder-traversal.py @@ -1 +1,9 @@ -# [Python 递归详解 - 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)](https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal) \ No newline at end of file +# [Python 递归详解 - 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)](https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal) + +# 前序遍历第一个元素是根节点,后序遍历 该节点所在位置的左侧为左子树,右侧为右子树 + +# [3,9,20,15,7] + +# [9,3,15,20,7] + +# 3 [9] [15,20,7] \ No newline at end of file diff --git a/Week 03/id_181/LeetCode_127_181.py b/Week 03/id_181/LeetCode_127_181.py new file mode 100644 index 000000000..7372c9bb7 --- /dev/null +++ b/Week 03/id_181/LeetCode_127_181.py @@ -0,0 +1,49 @@ +# [127. 单词接龙 - 力扣(LeetCode)](https://leetcode-cn.com/problems/word-ladder/submissions/) + +from collections import defaultdict +# BFS +class Solution: + def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: + """ + :type beginWord:str + :type endWord:str + :type wordList:List[str] + :rtype:int + """ + + if endWord not in wordList or not endWord or not beginWord or not wordList: + return 0 + + L = len(beginWord) + + all_combo_dict = defaultdict(list) + + for word in wordList: + for i in range(L): + # 获取所有单词缺位映射 + all_combo_dict[word[:i]+"*"+word[i+1:]].append(word) + + queue = [(beginWord,1)] + + visited = {beginWord:True} # 标记已经访问过的单词 + + while queue: + current_word,level = queue.pop(0) + for i in range(L): + # 当前单词可以配对的形式 intermediate_word + intermediate_word = current_word[:i] + "*" + current_word[i+1:] + # 以此获取 all_combo_dict中可能的结果 + for word in all_combo_dict[intermediate_word]: + if word == endWord: + return level + 1 + + if word not in visited: + visited[word] = True + # 继续寻找下一个的单词 + queue.append((word,level + 1)) + + all_combo_dict[intermediate_word] = [] + + return 0 + + \ No newline at end of file diff --git a/Week 03/id_181/LeetCode_200_181.py b/Week 03/id_181/LeetCode_200_181.py new file mode 100644 index 000000000..a47a74255 --- /dev/null +++ b/Week 03/id_181/LeetCode_200_181.py @@ -0,0 +1,69 @@ +# DFS 深度优先 只要可以往下查就往下查 +from typing import List +from collections import deque + +class Solution: + # 方向数组 + directions=[(-1,0),(0,-1),(1,0),(0,1)] + + def numIslands(self, grid: List[List[str]]) -> int: + # grid的高度 + m = len(grid) + + if m==0: + return 0 + # grid的宽度 + n=len(grid[0]) + # 初始化一个全是False的数组,用以标记遍历过的节点 + marked = [[False for _ in range(n)] for _ in range(m)] + + count = 0 + + for i in range(m): + for j in range(n): + # 没有遍历过,且是岛屿 + if not marked[i][j] and grid[i][j] == '1': + count += 1 + self.__dfs(grid, i, j, m, n, marked) + + return count + + def __dfs(self, grid, i, j, m, n, marked): + marked[i][j] = True + for direction in self.directions: + new_i = i + direction[0] + new_j = j + direction[1] + # 没有过界 没有遍历过 且是岛屿 + if 0 <= new_i < m and 0 <= new_j < n and not marked[new_i][new_j] and grid[new_i][new_j] == '1': + self.__dfs(grid, new_i, new_j, m, n, marked) + # 广度优先算法,围绕某个节点只深入一层 数组是待遍历的节点 + def numIslands(self,grid:List[List[str]]) -> int: + m = len(grid) + if m == 0: + return 0 + n=len(grid[0]) + marked = [[False for _ in range(n)] for _ in range(m)] + count = 0 + # 从第 1 行、第 1 格开始,对每一格尝试进行一次 DFS 操作 + for i in range(m): + for j in range(n): + # 只要是陆地,且没有被访问过的,就可以使用 BFS 发现与之相连的陆地,并进行标记 + if not marked[i][j] and grid[i][j] == '1': + # count 可以理解为连通分量,你可以在广度优先遍历完成以后,再计数, + count += 1 + queue = deque() + queue.append((i, j)) + # 标记上已经访问过 + marked[i][j] = True + while queue: + cur_x, cur_y = queue.popleft() + # 得到 4 个方向的坐标 + for direction in self.directions: + new_i = cur_x + direction[0] + new_j = cur_y + direction[1] + # 如果不越界、没有被访问过、并且还要是陆地,我就继续放入队列,放入队列的同时,要记得标记已经访问过 + if 0 <= new_i < m and 0 <= new_j < n and not marked[new_i][new_j] and grid[new_i][new_j] == '1': + queue.append((new_i, new_j)) + # 在放入队列以后,要马上标记成已经访问过 + marked[new_i][new_j] = True + return count \ No newline at end of file diff --git a/Week 03/id_181/LeetCode_455_181.py b/Week 03/id_181/LeetCode_455_181.py new file mode 100644 index 000000000..187c957c0 --- /dev/null +++ b/Week 03/id_181/LeetCode_455_181.py @@ -0,0 +1,22 @@ +# g 是孩子 s 是饼干 +# 饼干代表的数值必须大于等于孩子需要 +class Solution: + def findContentChildren(self, g: List[int], s: List[int]) -> int: + g_length = len(g) + s_length = len(s) + if s_length == 0 or g_length == 0: + return 0 + g.sort() + s.sort() + + res = i = j= 0 + + while i < g_length and j < s_length: + if g[i] <= s[j]: + res += 1 + i += 1 + j += 1 + else: + j += 1 + + return res \ No newline at end of file diff --git a/Week 03/id_181/LeetCode_74_181.py b/Week 03/id_181/LeetCode_74_181.py new file mode 100644 index 000000000..a902405d3 --- /dev/null +++ b/Week 03/id_181/LeetCode_74_181.py @@ -0,0 +1,23 @@ +# 先判断在哪一行,然后二分查找该行 +class Solution: + def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: + if not matrix or not matrix[0]: return False + + m, n = len(matrix), len((matrix[0])) + + # 从左下角开始遍历,判断target在哪一行 + while matrix[m - 1][0] > target and m > 1: + m -= 1 + + # 二分查找 + l, r = 0, n - 1 + while l <= r: + mid = l + math.floor((r-l) / 2) // 2 + tmp = matrix[m - 1][mid] + if tmp == target: + return True + elif tmp > target: + r = mid - 1 + else: + l = mid + 1 + return False \ No newline at end of file diff --git a/Week 03/id_181/LeetCode_860_181.py b/Week 03/id_181/LeetCode_860_181.py new file mode 100644 index 000000000..8053ef6f1 --- /dev/null +++ b/Week 03/id_181/LeetCode_860_181.py @@ -0,0 +1,25 @@ +# [860. 柠檬水找零 - 力扣(LeetCode)](https://leetcode-cn.com/problems/lemonade-change/description/) +# 5 元时 获取一张 +# 10元时 需要减去一个5元,若有则减去,若没有则返回False +# 15... 可以10 + 5,或者 5*3 找零,数目满足则成功 +# 需要对 5 和 10 的数目保存,20不用是因为找零用不上 +class Solution: + def lemonadeChange(self, bills: List[int]) -> bool: + five = ten = 0 + for bill in bills: + if bill == 5: + five +=1 + elif bill == 10: + if not five: + return False + five -= 1 + ten += 1 + else: + if ten and five: + ten -= 1 + five -= 1 + elif five >=3: + five-=3 + else: + return false + return True \ No newline at end of file From 4224e828b4d8e16960e18398972382c50be874b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E9=AD=94=E4=BD=9B?= Date: Sun, 3 Nov 2019 20:16:51 +0800 Subject: [PATCH 114/740] Create leetcode-860.py --- Week 03/id_381/leetcode-860.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Week 03/id_381/leetcode-860.py diff --git a/Week 03/id_381/leetcode-860.py b/Week 03/id_381/leetcode-860.py new file mode 100644 index 000000000..f15c4cd0a --- /dev/null +++ b/Week 03/id_381/leetcode-860.py @@ -0,0 +1,18 @@ +""" +这个题在解决的时候,顾客给5的时候最好解决了,直接加上就行,10的时候也很好解决, +只有一种找钱的方式就是找5元返给顾客(注意five-1了,ten要+1)。需要注意的是,顾客给20元的时候, +最优的理解为给10+5,但是这也不是一定的,如果没有10却有3个5, 那么就需要考虑到了。 +需要注意20的找钱方式 +""" + +class Solution: + def lemonadeChange(self, bills) -> bool: + five, ten = 0, 0 + for bill in bills: + if bill == 5: five += 1 + elif bill == 10: five, ten = five-1, ten+1 + elif ten: five, ten = five-1, ten-1 + else: five -= 3 + if five < 0: + return False + return True From fbf4f6c7d3308556fd358167130d0dbae6cc0b3e Mon Sep 17 00:00:00 2001 From: tangxy Date: Sun, 3 Nov 2019 20:19:07 +0800 Subject: [PATCH 115/740] 501-Week 03 --- Week 03/id_501/LeetCode_122_501.java | 27 +++++++++++ Week 03/id_501/LeetCode_127_501.java | 70 ++++++++++++++++++++++++++++ Week 03/id_501/LeetCode_153_501.java | 41 ++++++++++++++++ Week 03/id_501/LeetCode_200_501.java | 38 +++++++++++++++ Week 03/id_501/LeetCode_33_501.java | 42 +++++++++++++++++ Week 03/id_501/LeetCode_55_501.java | 26 +++++++++++ Week 03/id_501/LeetCode_806_501.java | 34 ++++++++++++++ 7 files changed, 278 insertions(+) create mode 100644 Week 03/id_501/LeetCode_122_501.java create mode 100644 Week 03/id_501/LeetCode_127_501.java create mode 100644 Week 03/id_501/LeetCode_153_501.java create mode 100644 Week 03/id_501/LeetCode_200_501.java create mode 100644 Week 03/id_501/LeetCode_33_501.java create mode 100644 Week 03/id_501/LeetCode_55_501.java create mode 100644 Week 03/id_501/LeetCode_806_501.java diff --git a/Week 03/id_501/LeetCode_122_501.java b/Week 03/id_501/LeetCode_122_501.java new file mode 100644 index 000000000..66c1f8973 --- /dev/null +++ b/Week 03/id_501/LeetCode_122_501.java @@ -0,0 +1,27 @@ +package homework.week03; + +/** + * 122. 买卖股票的最佳时机 II + * https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii + */ +public class LeetCode_122_501{ + /** + * 思路:涨的话交易,跌就不交易 + * @param prices + * @return + */ + public static int maxProfit(int[] prices) { + int sum = 0; + for(int i = 1;i < prices.length; i ++){ + int val = prices[i] - prices[i-1]; + if(val > 0){ + sum += val; + } + } + return sum; + } + + public static void main(String[] args) { + System.out.println(maxProfit(new int[]{7,1,5,3,6,4})); + } +} \ No newline at end of file diff --git a/Week 03/id_501/LeetCode_127_501.java b/Week 03/id_501/LeetCode_127_501.java new file mode 100644 index 000000000..8fa5b8527 --- /dev/null +++ b/Week 03/id_501/LeetCode_127_501.java @@ -0,0 +1,70 @@ +package homework.week03; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Queue; + +import javafx.util.Pair; + +/** + * 127. 单词接龙 https://leetcode-cn.com/problems/word-ladder/description/ + */ +public class LeetCode_127_501{ + /** + * 思路: + * 1、预处理,把单词表中所有改变一次后的相同的单词关联起来。dog dig 都对应d*g + * @param beginWord + * @param endWord + * @param wordList + * @return + */ + public int ladderLength(String beginWord, String endWord, List wordList) { + if(!wordList.contains(endWord)){ + return 0; + } + int L = beginWord.length(); + Map> dic = new HashMap<>(); + + // 预处理 + for(String word : wordList){ + for(int i = 0;i < L; i++){ + String newWord = word.substring(0,i) + '*' + word.substring(i + 1,L); + List formatList = dic.getOrDefault(newWord, new ArrayList<>()); + formatList.add(word); + dic.put(newWord, formatList); + } + } + + // bfs + Queue> Q = new LinkedList>(); + Q.add(new Pair(beginWord,1)); + + Map visited = new HashMap<>(); + visited.put(beginWord, true); + + while(!Q.isEmpty()){ + Pair node = Q.remove(); + String word = node.getKey(); + int level = node.getValue(); + for(int i = 0;i < L;i++){ + String newWord = word.substring(0,i) + '*' + word.substring(i + 1,L); + for(String adjacentWord : dic.getOrDefault(newWord, new ArrayList())){ + if(adjacentWord.equals(endWord)){ + return level + 1; + } + if(!visited.containsKey(adjacentWord)){ + visited.put(adjacentWord, true); + Q.add(new Pair(adjacentWord, level + 1)); + } + } + } + } + return 0; + } + public static void main(String[] args) { + + } +} \ No newline at end of file diff --git a/Week 03/id_501/LeetCode_153_501.java b/Week 03/id_501/LeetCode_153_501.java new file mode 100644 index 000000000..60522e83c --- /dev/null +++ b/Week 03/id_501/LeetCode_153_501.java @@ -0,0 +1,41 @@ +package homework.week03; + +/** + * 153. 寻找旋转排序数组中的最小值 + * https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ + */ +public class LeetCode_153_501{ + /** + * 暴力遍历 + * @param nums + * @return + */ + public int findMin(int[] nums) { + int min = nums[0]; + + for(int i = 1;i < nums.length ; i ++){ + if(nums[i] < min){ + min = nums[i]; + } + } + return min; + } + + /** + * 二分法 + * @param nums + * @return + */ + public int findMin2(int[] nums){ + int left = 0,right = nums.length - 1; + while(left < right){ + int mid = (left + right)/2; + if(nums[mid] > nums[right]){ + left = mid + 1; + }else{ + right = mid; + } + } + return nums[left]; + } +} \ No newline at end of file diff --git a/Week 03/id_501/LeetCode_200_501.java b/Week 03/id_501/LeetCode_200_501.java new file mode 100644 index 000000000..e4309f5fa --- /dev/null +++ b/Week 03/id_501/LeetCode_200_501.java @@ -0,0 +1,38 @@ +package homework.week03; + +/** + * 200. 岛屿数量 + * https://leetcode-cn.com/problems/number-of-islands/ + */ +public class LeetCode_200_501{ + public int numIslands(char[][] grid) { + if(grid == null || grid.length == 0){ + return 0; + } + int nr = grid.length; + int nc = grid[0].length; + int nums_islands = 0; + for(int r = 0;r < nr;++r){ + for(int c = 0;c < nc;++c){ + if(grid[r][c] == '1'){ + ++ nums_islands; + dfs(grid, r, c); + } + } + } + return nums_islands; + } + + public void dfs(char[][] grid,int r,int c){ + int nr = grid.length; + int nc = grid[0].length; + if(r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0'){ + return; + } + grid[r][c] = '0'; + dfs(grid,r - 1,c); + dfs(grid,r + 1,c); + dfs(grid,r,c - 1); + dfs(grid,r,c + 1); + } +} \ No newline at end of file diff --git a/Week 03/id_501/LeetCode_33_501.java b/Week 03/id_501/LeetCode_33_501.java new file mode 100644 index 000000000..2b14b9ada --- /dev/null +++ b/Week 03/id_501/LeetCode_33_501.java @@ -0,0 +1,42 @@ +package homework.week03; + +/** + * 33. 搜索旋转排序数组 + * https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ + */ +public class LeetCode_33_501{ + public int search(int[] nums, int target) { + int start = 0; + int end = nums.length - 1; + + // 找到最大值的数据下标 + while (start < end){ + int mid = Math.round(((float)start + end) / 2); + if(nums[mid] < nums[start]){ + end = mid - 1; + }else{ + start = mid; + } + } + + int n = nums.length; + int bias = (start + n) - (n -1); + start = 0; + end = nums.length - 1; + while(start <= end){ + int mid = (start + end) /2 ; + int mid_change = (mid + bias) % nums.length; + int value = nums[mid_change]; + + if(target == value){ + return mid_change; + } + if(target < value){ + end = mid - 1; + }else{ + start = mid + 1; + } + } + return -1; + } +} \ No newline at end of file diff --git a/Week 03/id_501/LeetCode_55_501.java b/Week 03/id_501/LeetCode_55_501.java new file mode 100644 index 000000000..3d44b8320 --- /dev/null +++ b/Week 03/id_501/LeetCode_55_501.java @@ -0,0 +1,26 @@ +package homework.week03; + +/** + * 55. 跳跃游戏 + * https://leetcode-cn.com/problems/jump-game/ + */ +public class LeetCode_55_501{ + /** + * 思路: + * 从后往前遍历,当前索引 + 当前值 >= 最大索引,就把最大索引定义为当前索引,当前端索引为0,就到第一个元素了。 + * @param nums + * @return + */ + public static boolean canJump(int[] nums) { + int lastIndex = nums.length - 1; + for(int i = nums.length -1;i >=0; i--){ + if(i + nums[i] >= lastIndex){ + lastIndex = i; + } + } + return lastIndex == 0; + } + public static void main(String[] args) { + System.out.println(canJump(new int[]{3,2,1,0,4})); + } +} \ No newline at end of file diff --git a/Week 03/id_501/LeetCode_806_501.java b/Week 03/id_501/LeetCode_806_501.java new file mode 100644 index 000000000..5d7c4d150 --- /dev/null +++ b/Week 03/id_501/LeetCode_806_501.java @@ -0,0 +1,34 @@ +package homework.week03; + +/** + * 860. 柠檬水找零 + * https://leetcode-cn.com/problems/lemonade-change + */ +public class LeetCode_806_501{ + public static boolean lemonadeChange(int[] bills) { + int five = 0,ten = 0; + for(int bill : bills){ + if(bill == 5){ + five ++; + }else if(bill == 10){ + if(five -- == 0){ + return false; + } + ten ++ ; + }else{ + if(five > 0 && ten > 0){ + five --; + ten --; + }else if(five > 2){ + five -= 3; + }else{ + return false; + } + } + } + return true; + } + public static void main(String[] args) { + System.out.println(lemonadeChange(new int[]{5,10})); + } +} \ No newline at end of file From dc50d568bae7b3dbd624381a04936fdd3bac288f Mon Sep 17 00:00:00 2001 From: yangfeng Date: Sun, 3 Nov 2019 20:59:32 +0800 Subject: [PATCH 116/740] 301-Week 03 --- Week 03/id_301/LeetCode_102_301.go | 65 ++++++++++++++++++++++++++++++ Week 03/id_301/LeetCode_33_301.go | 30 ++++++++++++++ Week 03/id_301/LeetCode_69_301.go | 24 +++++++++++ 3 files changed, 119 insertions(+) create mode 100644 Week 03/id_301/LeetCode_102_301.go create mode 100644 Week 03/id_301/LeetCode_33_301.go create mode 100644 Week 03/id_301/LeetCode_69_301.go diff --git a/Week 03/id_301/LeetCode_102_301.go b/Week 03/id_301/LeetCode_102_301.go new file mode 100644 index 000000000..ab4ebf4b7 --- /dev/null +++ b/Week 03/id_301/LeetCode_102_301.go @@ -0,0 +1,65 @@ +package main + +/** + * Definition for a binary tree node. + * type TreeNode struct { + * Val int + * Left *TreeNode + * Right *TreeNode + * } + */ + +type TreeNode struct { + Val int + Left *TreeNode + Right *TreeNode +} + +/** +广度优先遍历 +*/ +func levelOrder(root *TreeNode) [][]int { + if root == nil { + return [][]int{} + } + var slice [][]*TreeNode + slice = append(slice, []*TreeNode{root}) + var res [][]int + for i := 0; ; i++ { + for _, v := range slice[0] { + if len(res) > i { + res[i] = append(res[i], v.Val) + } else { + res = append(res, []int{v.Val}) + } + slice = add(slice, v.Left) + slice = add(slice, v.Right) + } + slice = slice[1:] + if len(slice) == 0 { + break + } + } + return res +} + +func add(slice [][]*TreeNode, node *TreeNode) [][]*TreeNode { + if node == nil { + return slice + } + if len(slice) > 1 { + slice[1] = append(slice[1], node) + } else { + slice = append(slice, []*TreeNode{node}) + } + return slice +} + +/** +深度优先遍历 +*/ +func levelOrderByDFS(root *TreeNode) [][]int { + var res [][]int + + return res +} diff --git a/Week 03/id_301/LeetCode_33_301.go b/Week 03/id_301/LeetCode_33_301.go new file mode 100644 index 000000000..40d78aa89 --- /dev/null +++ b/Week 03/id_301/LeetCode_33_301.go @@ -0,0 +1,30 @@ +package main + +/** +假设按照升序排序的数组在预先未知的某个点上进行了旋转。 + +( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 + +搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 + +你可以假设数组中不存在重复的元素。 + +你的算法时间复杂度必须是 O(log n) 级别。 +*/ +func search(nums []int, target int) int { + left, right := 0, len(nums)-1 + var mid int + for left < right { + mid = left + (right-left)/2 + if target == nums[mid] { + return mid + } + if nums[0] < nums[mid] && nums[mid] > target { + left = mid + } + if nums[0] > nums[mid] && nums[mid] > target { + left = mid + } + } + return -1 +} diff --git a/Week 03/id_301/LeetCode_69_301.go b/Week 03/id_301/LeetCode_69_301.go new file mode 100644 index 000000000..5d95a7a5a --- /dev/null +++ b/Week 03/id_301/LeetCode_69_301.go @@ -0,0 +1,24 @@ +package main + +import "fmt" + +func mySqrt(x int) int { + if x == 0 || x == 1 { + return x + } + var mid int + left, right := 0, x + for left < right { + mid = left + (right-left+1)/2 + if mid*mid > x { + right = mid - 1 + } else { + left = mid + } + } + return left +} + +func main() { + fmt.Println(mySqrt(9)) +} From 8b02d544809a2c22a1486ee4a95ac059a9cf99bc Mon Sep 17 00:00:00 2001 From: tigerzhang Date: Sun, 3 Nov 2019 21:00:26 +0800 Subject: [PATCH 117/740] 281-Week 03 --- Week 03/id_281/LeetCode_127_281.java | 64 +++++++++++++++++++++++++++ Week 03/id_281/LeetCode_33_281.java | 66 ++++++++++++++++++++++++++++ Week 03/id_281/NOTE.md | 4 +- 3 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_281/LeetCode_127_281.java create mode 100644 Week 03/id_281/LeetCode_33_281.java diff --git a/Week 03/id_281/LeetCode_127_281.java b/Week 03/id_281/LeetCode_127_281.java new file mode 100644 index 000000000..e1f122a8b --- /dev/null +++ b/Week 03/id_281/LeetCode_127_281.java @@ -0,0 +1,64 @@ +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +import jdk.internal.util.xml.impl.Pair; + +/* + * @lc app=leetcode.cn id=127 lang=java + * + * [127] 单词接龙 + */ + +// @lc code=start +class Solution { + public int ladderLength(String beginWord, String endWord, List wordList) { + + int L = beginWord.length(); + + HashMap> allCommonDict = new HashMap>(); + wordList.forEach( + word -> { + for (int i = 0; i < L; i++) { + String newWord = word.substring(0, i) + '*' + word.substring(i + 1, L); + ArrayList transforms = allCommonDict.getOrDefault(newWord, new ArrayList()); + transforms.add(word); + allCommonDict.put(newWord, transforms); + } + } + ); + + // Queue For BFS + Queue> Q = new LinkedList>(); + Q.add(new Pair(beginWord, 1)); + + HashMap visited = new HashMap(); + visited.put(beginWord, true); + + while (!Q.isEmpty()) { + Pair node = Q.remove(); + String word = node.getkey(); + int level = node.getValue(); + for (int i = 0; i < L; i++) { + String newWord = word.substring(0, i) + '*' + word.substring(i + 1, L); + + for (String adjacentWord : allCommonDict.getOrDefault(newWord, new ArrayList())) { + if (adjacentWord.equals(endWord)) { + return level + 1; + } + + if (!visited.containsKey(adjacentWord)) { + visited.put(adjacentWord, true); + Q.add(new Pair(adjacentWord, level + 1)); + } + } + } + } + + return 0; + } +} +// @lc code=end + diff --git a/Week 03/id_281/LeetCode_33_281.java b/Week 03/id_281/LeetCode_33_281.java new file mode 100644 index 000000000..fcaead106 --- /dev/null +++ b/Week 03/id_281/LeetCode_33_281.java @@ -0,0 +1,66 @@ +class Solution { + int [] nums; + int target; + + public int find_rotate_index(int left, int right) { + if (nums[left] < nums[right]) + return 0; + + while (left <= right) { + int pivot = (left + right) / 2; + if (nums[pivot] > nums[pivot + 1]) + return pivot + 1; + else { + if (nums[pivot] < nums[left]) + right = pivot - 1; + else + left = pivot + 1; + } + } + return 0; + } + + public int search(int left, int right) { + /* + Binary search + */ + while (left <= right) { + int pivot = (left + right) / 2; + if (nums[pivot] == target) + return pivot; + else { + if (target < nums[pivot]) + right = pivot - 1; + else + left = pivot + 1; + } + } + return -1; + } + + public int search(int[] nums, int target) { + this.nums = nums; + this.target = target; + + int n = nums.length; + + if (n == 0) + return -1; + if (n == 1) + return this.nums[0] == target ? 0 : -1; + + int rotate_index = find_rotate_index(0, n - 1); + + // if target is the smallest element + if (nums[rotate_index] == target) + return rotate_index; + // if array is not rotated, search in the entire array + if (rotate_index == 0) + return search(0, n - 1); + if (target < nums[0]) + // search in the right side + return search(rotate_index, n - 1); + // search in the left side + return search(0, rotate_index); + } + } \ No newline at end of file diff --git a/Week 03/id_281/NOTE.md b/Week 03/id_281/NOTE.md index a6321d6e2..d502e4340 100644 --- a/Week 03/id_281/NOTE.md +++ b/Week 03/id_281/NOTE.md @@ -1,4 +1,6 @@ -# NOTE +# 第三周学习总结 + +本周学习效率有点低,下周把总结在补上,感觉完成题目的代码明显要多了,坚持五毒神掌,一定有作用。 From 1d185c996509fce11e64903da84ba6999597b301 Mon Sep 17 00:00:00 2001 From: ansike Date: Sat, 2 Nov 2019 22:34:36 +0800 Subject: [PATCH 118/740] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E5=91=A8ansike?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_016/LeetCode_102_016.js | 76 +++++++++++++++++++++++++++ Week 03/id_016/LeetCode_153_016.js | 82 ++++++++++++++++++++++++++++++ Week 03/id_016/LeetCode_22_016.js | 62 ++++++++++++++++++++++ Week 03/id_016/LeetCode_55_016.js | 68 +++++++++++++++++++++++++ Week 03/id_016/LeetCode_69_016.js | 72 ++++++++++++++++++++++++++ Week 03/id_016/NOTE.md | 31 ++++++++++- 6 files changed, 390 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_016/LeetCode_102_016.js create mode 100644 Week 03/id_016/LeetCode_153_016.js create mode 100644 Week 03/id_016/LeetCode_22_016.js create mode 100644 Week 03/id_016/LeetCode_55_016.js create mode 100644 Week 03/id_016/LeetCode_69_016.js diff --git a/Week 03/id_016/LeetCode_102_016.js b/Week 03/id_016/LeetCode_102_016.js new file mode 100644 index 000000000..364dac767 --- /dev/null +++ b/Week 03/id_016/LeetCode_102_016.js @@ -0,0 +1,76 @@ +/* + * @Description: This is a description + * @Author: Ask + * @LastEditors: Ask + * @Date: 2019-11-02 19:58:19 + * @LastEditTime: 2019-11-02 19:59:03 + */ +/* + * @lc app=leetcode id=102 lang=javascript + * + * [102] Binary Tree Level Order Traversal + * + * https://leetcode.com/problems/binary-tree-level-order-traversal/description/ + * + * algorithms + * Medium (50.41%) + * Likes: 1907 + * Dislikes: 48 + * Total Accepted: 456.1K + * Total Submissions: 899K + * Testcase Example: '[3,9,20,null,null,15,7]' + * + * Given a binary tree, return the level order traversal of its nodes' values. + * (ie, from left to right, level by level). + * + * + * For example: + * Given binary tree [3,9,20,null,null,15,7], + * + * ⁠ 3 + * ⁠ / \ + * ⁠ 9 20 + * ⁠ / \ + * ⁠ 15 7 + * + * + * + * return its level order traversal as: + * + * [ + * ⁠ [3], + * ⁠ [9,20], + * ⁠ [15,7] + * ] + * + * + 1. DFS 传入level层级 + 2. BFS + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * function TreeNode(val) { + * this.val = val; + * this.left = this.right = null; + * } + */ +/** + * @param {TreeNode} root + * @return {number[][]} + */ +var levelOrder = function(root) { + let res = []; + let deal = (node, level) => { + if (!node) return; + if (!res[level - 1]) res[level - 1] = []; + res[level - 1].push(node.val); + deal(node.left, level + 1); + deal(node.right, level + 1); + }; + deal(root, 1); + return res; +}; +// @lc code=end + diff --git a/Week 03/id_016/LeetCode_153_016.js b/Week 03/id_016/LeetCode_153_016.js new file mode 100644 index 000000000..85f7c8bfe --- /dev/null +++ b/Week 03/id_016/LeetCode_153_016.js @@ -0,0 +1,82 @@ +/* + * @Description: This is a description + * @Author: Ask + * @LastEditors: Ask + * @Date: 2019-10-30 22:23:09 + * @LastEditTime: 2019-10-31 23:18:23 + */ +/* + * @lc app=leetcode id=153 lang=javascript + * + * [153] Find Minimum in Rotated Sorted Array + * + * https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/description/ + * + * algorithms + * Medium (43.67%) + * Likes: 1313 + * Dislikes: 187 + * Total Accepted: 336.2K + * Total Submissions: 767.9K + * Testcase Example: '[3,4,5,1,2]' + * + * Suppose an array sorted in ascending order is rotated at some pivot unknown + * to you beforehand. + * + * (i.e.,  [0,1,2,4,5,6,7] might become  [4,5,6,7,0,1,2]). + * + * Find the minimum element. + * + * You may assume no duplicate exists in the array. + * + * Example 1: + * + * + * Input: [3,4,5,1,2] + * Output: 1 + * + * + * Example 2: + * + * + * Input: [4,5,6,7,0,1,2] + * Output: 0 + * + * + 1.全部暴力, 查找最小值 + 2.暴力循环 找无序 时间O(n) + 3.二分法 时间O(logn)) + */ + +// @lc code=start +/** + * @param {number[]} nums + * @return {number} + */ +// var findMin = function(nums) { +// let res = nums[0]; +// for (let i = 0; i < nums.length - 1; i++) { +// if (nums[i] > nums[i + 1]) { +// res = nums[i + 1]; +// break; +// } +// } +// return res; +// }; + +var findMin = function(nums) { + if (nums[0] < nums[nums.length - 1]) return nums[0]; + let right = nums.length - 1; + let left = 0; + while (left < right) { + let mid = left + Math.floor((right - left) / 2); + if (nums[mid] > nums[right]) { + left = mid + 1; + } else { + right = mid; + } + } + return nums[left]; +}; +// @lc code=end +console.log(findMin([3, 1, 2])); diff --git a/Week 03/id_016/LeetCode_22_016.js b/Week 03/id_016/LeetCode_22_016.js new file mode 100644 index 000000000..0d4352c95 --- /dev/null +++ b/Week 03/id_016/LeetCode_22_016.js @@ -0,0 +1,62 @@ +/* + * @Description: This is a description + * @Author: Ask + * @LastEditors: Ask + * @Date: 2019-10-26 15:45:05 + * @LastEditTime: 2019-10-26 16:04:44 + */ +/* + * @lc app=leetcode id=22 lang=javascript + * + * [22] Generate Parentheses + * + * https://leetcode.com/problems/generate-parentheses/description/ + * + * algorithms + * Medium (57.41%) + * Likes: 3475 + * Dislikes: 206 + * Total Accepted: 411.4K + * Total Submissions: 712.8K + * Testcase Example: '3' + * + * + * Given n pairs of parentheses, write a function to generate all combinations + * of well-formed parentheses. + * + * + * + * For example, given n = 3, a solution set is: + * + * + * [ + * ⁠ "((()))", + * ⁠ "(()())", + * ⁠ "(())()", + * ⁠ "()(())", + * ⁠ "()()()" + * ] + * + */ + +// @lc code=start +/** + * @param {number} n + * @return {string[]} + */ +var generateParenthesis = function(n) { + let res = []; + let deal = (left = n, right = n, str = '') => { + if (str.length === n * 2) { + res.push(str); + return; + } + if (left > 0) deal(left - 1, right, str + '('); + // 注意括号的规则就可以:放置右括号前必须保证左括号的数量多于右括号 + if (right > 0 && left < right) deal(left, right - 1, str + ')'); + }; + deal(); + return res; +}; +// @lc code=end +console.log(generateParenthesis(3)); diff --git a/Week 03/id_016/LeetCode_55_016.js b/Week 03/id_016/LeetCode_55_016.js new file mode 100644 index 000000000..ac4630a51 --- /dev/null +++ b/Week 03/id_016/LeetCode_55_016.js @@ -0,0 +1,68 @@ +/* + * @Description: This is a description + * @Author: Ask + * @LastEditors: Ask + * @Date: 2019-10-30 22:00:00 + * @LastEditTime: 2019-10-30 22:00:36 + */ +/* + * @lc app=leetcode id=55 lang=javascript + * + * [55] Jump Game + * + * https://leetcode.com/problems/jump-game/description/ + * + * algorithms + * Medium (32.67%) + * Likes: 2544 + * Dislikes: 241 + * Total Accepted: 321.1K + * Total Submissions: 980.4K + * Testcase Example: '[2,3,1,1,4]' + * + * Given an array of non-negative integers, you are initially positioned at the + * first index of the array. + * + * Each element in the array represents your maximum jump length at that + * position. + * + * Determine if you are able to reach the last index. + * + * Example 1: + * + * + * Input: [2,3,1,1,4] + * Output: true + * Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last + * index. + * + * + * Example 2: + * + * + * Input: [3,2,1,0,4] + * Output: false + * Explanation: You will always arrive at index 3 no matter what. Its + * maximum + * jump length is 0, which makes it impossible to reach the last index. + * + * + + 1. 贪心算法,从后往前贪心 + */ + +// @lc code=start +/** + * @param {number[]} nums + * @return {boolean} + */ +var canJump = function(nums) { + let last = nums.length - 1; + for (let i = last - 1; i >= 0; i--) { + if (nums[i] + i >= last) { + last = i; + } + } + return last === 0; +}; +// @lc code=end diff --git a/Week 03/id_016/LeetCode_69_016.js b/Week 03/id_016/LeetCode_69_016.js new file mode 100644 index 000000000..e70e14d49 --- /dev/null +++ b/Week 03/id_016/LeetCode_69_016.js @@ -0,0 +1,72 @@ +/* + * @Description: This is a description + * @Author: Ask + * @LastEditors: Ask + * @Date: 2019-10-31 08:54:26 + * @LastEditTime: 2019-10-31 08:55:22 + */ +/* + * @lc app=leetcode id=69 lang=javascript + * + * [69] Sqrt(x) + * + * https://leetcode.com/problems/sqrtx/description/ + * + * algorithms + * Easy (32.22%) + * Likes: 932 + * Dislikes: 1568 + * Total Accepted: 434.6K + * Total Submissions: 1.3M + * Testcase Example: '4' + * + * Implement int sqrt(int x). + * + * Compute and return the square root of x, where x is guaranteed to be a + * non-negative integer. + * + * Since the return type is an integer, the decimal digits are truncated and + * only the integer part of the result is returned. + * + * Example 1: + * + * + * Input: 4 + * Output: 2 + * + * + * Example 2: + * + * + * Input: 8 + * Output: 2 + * Explanation: The square root of 8 is 2.82842..., and since + * the decimal part is truncated, 2 is returned. + * + * + 1. 二分法解决,边界情况考虑 + 2. 牛顿迭代 + */ + +// @lc code=start +/** + * @param {number} x + * @return {number} + */ +var mySqrt = function(x) { + if (x === 0 || x === 1) return x; + let left = 0, + right = x; + let mid = null; + while (left <= right) { + mid = Math.ceil((left + right) / 2); + if (mid * mid == x) return mid; + if (x < mid * mid) { + right = mid - 1; + } else { + left = mid + 1; + } + } + return Math.floor(right); +}; +// @lc code=end diff --git a/Week 03/id_016/NOTE.md b/Week 03/id_016/NOTE.md index a6321d6e2..faa4ba693 100644 --- a/Week 03/id_016/NOTE.md +++ b/Week 03/id_016/NOTE.md @@ -1,4 +1,33 @@ # NOTE - +二分查找特征: +1. 目标函数是单调的(单调递增,或者递减) +2. 存在上下界(bounded) +3. 能够通过索引访问(index accessible) + +# 二分法 - 代码模版 +```javascript +function main(arr, target) { + // 1.定义左右边界 + let left = 0, + right = arr.length - 1; + let res = null; + // 2.循环,当左小于右的时候 + while (left < right) { + // 3.获取中间值下边 + let mid = Math.floor((left + right) / 2); + // 4.中间值和目标值进行比较 + if (target === arr[mid]) { + res = mid; + break; + // 目标值大于中间值,说明目标值在mid右侧 + } else if (target > arr[mid]) { + left = mid + 1; + } else { + right = mid - 1; + } + } + return res; +} +``` From 8d5bacc058dce3620534a05adcb60be29127f003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B0=91=E6=B0=91=E7=9A=84=E7=8C=AA=E7=8C=AA?= Date: Sun, 3 Nov 2019 21:02:46 +0800 Subject: [PATCH 119/740] week-03 -leetcode -860 --- Week 03/id_156/860_java.java | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Week 03/id_156/860_java.java diff --git a/Week 03/id_156/860_java.java b/Week 03/id_156/860_java.java new file mode 100644 index 000000000..d625cae7c --- /dev/null +++ b/Week 03/id_156/860_java.java @@ -0,0 +1,30 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0; + int ten = 0; + int len = bills.length; + + for (int i = 0; i < len; i++) { + if (bills[i] == 5) { + five++; + } else if (bills[i] == 10) { + if (five == 0) { + return false; + }; + five--; + ten++; + } else if (bills[i] == 20) { + if (ten > 0 && five > 0) { + ten--; + five--; + } else if (five >= 3) { + five -= 3; + } else { + return false; + } + } + } + return true; + } +} + From d7393b95f86ba7a9d970fb3398f62f7c8709cd35 Mon Sep 17 00:00:00 2001 From: 1057234721 <38349019+1057234721@users.noreply.github.com> Date: Sun, 3 Nov 2019 21:06:43 +0800 Subject: [PATCH 120/740] Add files via upload week 03 --- Week 03/id_756/[200]Number of Islands.java | 36 ++++++++++++++++++++++ Week 03/id_756/[860]Lemonade Change.java | 25 +++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 Week 03/id_756/[200]Number of Islands.java create mode 100644 Week 03/id_756/[860]Lemonade Change.java diff --git a/Week 03/id_756/[200]Number of Islands.java b/Week 03/id_756/[200]Number of Islands.java new file mode 100644 index 000000000..61a600d32 --- /dev/null +++ b/Week 03/id_756/[200]Number of Islands.java @@ -0,0 +1,36 @@ +class Solution { + void dfs(char[][] grid, int r, int c) { + int nr = grid.length; + int nc = grid[0].length; + + if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0') { + return; + } + + grid[r][c] = '0'; + dfs(grid, r - 1, c); + dfs(grid, r + 1, c); + dfs(grid, r, c - 1); + dfs(grid, r, c + 1); + } + + public int numIslands(char[][] grid) { + if (grid == null || grid.length == 0) { + return 0; + } + + int nr = grid.length; + int nc = grid[0].length; + int num_islands = 0; + for (int r = 0; r < nr; ++r) { + for (int c = 0; c < nc; ++c) { + if (grid[r][c] == '1') { + ++num_islands; + dfs(grid, r, c); + } + } + } + + return num_islands; + } +} diff --git a/Week 03/id_756/[860]Lemonade Change.java b/Week 03/id_756/[860]Lemonade Change.java new file mode 100644 index 000000000..d8979b7a4 --- /dev/null +++ b/Week 03/id_756/[860]Lemonade Change.java @@ -0,0 +1,25 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0, ten = 0; + for (int bill: bills) { + if (bill == 5) + five++; + else if (bill == 10) { + if (five == 0) return false; + five--; + ten++; + } else { + if (five > 0 && ten > 0) { + five--; + ten--; + } else if (five >= 3) { + five -= 3; + } else { + return false; + } + } + } + + return true; + } +} From 2ae6a66b12e54af75021d8c48d3a71956fcfe427 Mon Sep 17 00:00:00 2001 From: HuyaJohn Date: Sun, 3 Nov 2019 21:09:03 +0800 Subject: [PATCH 121/740] 151-Week 03 --- Week 03/id_151/LeetCode_122_151.cpp | 18 +++++++++ Week 03/id_151/LeetCode_126_151.cpp | 58 +++++++++++++++++++++++++++++ Week 03/id_151/LeetCode_127_151.cpp | 54 +++++++++++++++++++++++++++ Week 03/id_151/LeetCode_153_151.cpp | 24 ++++++++++++ Week 03/id_151/LeetCode_200_151.cpp | 35 +++++++++++++++++ Week 03/id_151/LeetCode_33_151.cpp | 27 ++++++++++++++ Week 03/id_151/LeetCode_45_151.cpp | 23 ++++++++++++ Week 03/id_151/LeetCode_55_151.cpp | 15 ++++++++ Week 03/id_151/LeetCode_74_151.cpp | 26 +++++++++++++ Week 03/id_151/LeetCode_860_151.cpp | 32 ++++++++++++++++ 10 files changed, 312 insertions(+) create mode 100644 Week 03/id_151/LeetCode_122_151.cpp create mode 100644 Week 03/id_151/LeetCode_126_151.cpp create mode 100644 Week 03/id_151/LeetCode_127_151.cpp create mode 100644 Week 03/id_151/LeetCode_153_151.cpp create mode 100644 Week 03/id_151/LeetCode_200_151.cpp create mode 100644 Week 03/id_151/LeetCode_33_151.cpp create mode 100644 Week 03/id_151/LeetCode_45_151.cpp create mode 100644 Week 03/id_151/LeetCode_55_151.cpp create mode 100644 Week 03/id_151/LeetCode_74_151.cpp create mode 100644 Week 03/id_151/LeetCode_860_151.cpp diff --git a/Week 03/id_151/LeetCode_122_151.cpp b/Week 03/id_151/LeetCode_122_151.cpp new file mode 100644 index 000000000..1a5f80001 --- /dev/null +++ b/Week 03/id_151/LeetCode_122_151.cpp @@ -0,0 +1,18 @@ +class Solution { +public: + int maxProfit(vector& prices) { + if (prices.empty()) + return 0; + + int have = prices[0]; + int earn = 0; + for (int i = 1; i < prices.size(); ++i) { + if (prices[i] > have) { + earn += prices[i] - have; + } + have = prices[i]; + } + + return earn; + } +}; diff --git a/Week 03/id_151/LeetCode_126_151.cpp b/Week 03/id_151/LeetCode_126_151.cpp new file mode 100644 index 000000000..d007eea41 --- /dev/null +++ b/Week 03/id_151/LeetCode_126_151.cpp @@ -0,0 +1,58 @@ +class Solution { +public: + vector> findLadders(string beginWord, string endWord, vector& wordList) { + vector> ret; + // 用set大概率会超时 + unordered_set sw(wordList.begin(), wordList.end()); + queue> q; + q.push({beginWord}); + + set marker; + bool flag = false; + while (! q.empty()) { + int qs = q.size(); + + for (int i = 0; i < qs; ++i) { + vector cur = q.front(); + q.pop(); + + vector oneSteps = oneStepWord2(cur.back(), sw); + for (const auto& w : oneSteps) { + marker.insert(w); + vector newLine(cur.begin(), cur.end()); + newLine.push_back(w); + q.push(newLine); + + if (w == endWord) { + flag = true; + ret.push_back(newLine); + } + } + } + if (flag) + break; + + // 缩小候选集的个数, 能大大减少内存占用 + for (const auto& m : marker) sw.erase(m); + marker.clear(); + } + return ret; + } + + vector oneStepWord2(string& word, unordered_set& wordList) { + vector ret; + for (int i = 0; i < word.size(); ++i) { + char s = word[i]; + for (char c = 'a'; c <= 'z'; ++c) { + if (s == c) + continue; + + word[i] = c; + if (wordList.count(word)) + ret.push_back(word); + } + word[i] = s; + } + return ret; + } +}; diff --git a/Week 03/id_151/LeetCode_127_151.cpp b/Week 03/id_151/LeetCode_127_151.cpp new file mode 100644 index 000000000..64ae37324 --- /dev/null +++ b/Week 03/id_151/LeetCode_127_151.cpp @@ -0,0 +1,54 @@ +class Solution { +public: + int ladderLength(string beginWord, string endWord, vector& wordList) { + map> m; + bool found = false; + for (const auto& word : wordList) { + for (int i = 0; i < word.size(); ++i) { + string tmp = word; + tmp[i] = '*'; + m[tmp].insert(word); + } + if (word == endWord) + found = true; + } + + if (! found) + return 0; + + deque q; + q.push_back(beginWord); + + set marker; + + found = false; + int depth = 1; + while (! q.empty()) { + int nq = q.size(); + for (int n = 0; n < nq; ++n) { + string word = q.front(); + if (word == endWord) { + found = true; + return depth; + } + + + q.pop_front(); + for (int i = 0; i < word.size(); ++i) { + string tmp = word; + tmp[i] = '*'; + + for (const auto& w : m[tmp]) { + if (marker.count(w)) + continue; + marker.insert(w); + q.push_back(w); + } + } + } + + ++depth; + } + return found ? depth : 0; + } +}; diff --git a/Week 03/id_151/LeetCode_153_151.cpp b/Week 03/id_151/LeetCode_153_151.cpp new file mode 100644 index 000000000..f45837195 --- /dev/null +++ b/Week 03/id_151/LeetCode_153_151.cpp @@ -0,0 +1,24 @@ +class Solution { +public: + int findMin(vector& nums) { + if (nums.empty()) + return -1; + + if (nums[0] < nums[nums.size() - 1]) + return nums[0]; + + int left = 0; + int right = nums.size() - 1; + + while (left < right) { + int mid = left + (right - left) / 2; + + if (nums[0] <= nums[mid]) { + left = mid + 1; + } else { + right = mid; + } + } + return nums[left]; + } +}; diff --git a/Week 03/id_151/LeetCode_200_151.cpp b/Week 03/id_151/LeetCode_200_151.cpp new file mode 100644 index 000000000..562a2c05f --- /dev/null +++ b/Week 03/id_151/LeetCode_200_151.cpp @@ -0,0 +1,35 @@ +class Solution { +public: + int numIslands(vector>& grid) { + int num = 0; + for (int y = 0; y < grid.size(); ++y) { + for (int x = 0; x < grid[y].size(); ++x) { + if (grid[y][x] == '1') { + num += bomb(grid, x, y); + } + } + } + return num; + } + + int bomb(vector>& grid, int x, int y) { + if (grid[y][x] == '0') + return 0; + + grid[y][x] = '0'; + + static int dx[4] = {1, -1, 0, 0}; + static int dy[4] = {0, 0, 1, -1}; + for (int i = 0; i < 4; ++i) { + int newx = x + dx[i]; + int newy = y + dy[i]; + + if (newy >= grid.size() || newx >= grid[newy].size()) + continue; + + bomb(grid, newx, newy); + } + + return 1; + } +}; diff --git a/Week 03/id_151/LeetCode_33_151.cpp b/Week 03/id_151/LeetCode_33_151.cpp new file mode 100644 index 000000000..fffbb96e0 --- /dev/null +++ b/Week 03/id_151/LeetCode_33_151.cpp @@ -0,0 +1,27 @@ +class Solution { +public: + int search(vector& nums, int target) { + int left = 0; + int right = nums.size() - 1; + int index = -1; + while (left < right) { + int mid = (left + right) / 2; + // 左半边有序 + if (nums[0] <= nums[mid]) { + if (target > nums[mid] || target < nums[0]) { + left = mid + 1; + } else { + right = mid; + } + } else { // 右半边有序 + if (target > nums[mid] && target < nums[0]) { + left = mid + 1; + } else { + right = mid; + } + } + } + + return left == right && nums[left] == target ? left : -1; + } +}; diff --git a/Week 03/id_151/LeetCode_45_151.cpp b/Week 03/id_151/LeetCode_45_151.cpp new file mode 100644 index 000000000..3e45633ee --- /dev/null +++ b/Week 03/id_151/LeetCode_45_151.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + int jump(vector& nums) { + int start = 0; + int end = 0; + int step = 0; + + while (end < nums.size() - 1) { + ++step; + int maxEnd = end + 1; + for (int i = start; i <= end; ++i) { + maxEnd = max(i + nums[i], maxEnd); + if (maxEnd >= nums.size() - 1) { + return step; + } + } + + start = end + 1; + end = maxEnd; + } + return step; + } +}; diff --git a/Week 03/id_151/LeetCode_55_151.cpp b/Week 03/id_151/LeetCode_55_151.cpp new file mode 100644 index 000000000..ce4e71444 --- /dev/null +++ b/Week 03/id_151/LeetCode_55_151.cpp @@ -0,0 +1,15 @@ +class Solution { +public: + bool canJump(vector& nums) { + if (nums.empty()) + return true; + + int step = nums.size() - 1; + for (int i = nums.size() - 1; i >= 0; --i) { + if (nums[i] + i >= step) + step = i; + } + + return step == 0; + } +}; diff --git a/Week 03/id_151/LeetCode_74_151.cpp b/Week 03/id_151/LeetCode_74_151.cpp new file mode 100644 index 000000000..a9fb4eaab --- /dev/null +++ b/Week 03/id_151/LeetCode_74_151.cpp @@ -0,0 +1,26 @@ +class Solution { +public: + bool searchMatrix(vector>& matrix, int target) { + if (matrix.empty()) + return false; + if (matrix[0].empty()) + return false; + + int left = 0; + int right = matrix.size() * matrix[0].size() - 1; + + while (left < right) { + int mid = left + (right - left) / 2; + + int row = mid / matrix[0].size(); + int col = mid % matrix[0].size(); + + if (matrix[row][col] < target) { + left = mid + 1; + } else { + right = mid; + } + } + return matrix[left / matrix[0].size()][left % matrix[0].size()] == target; + } +}; diff --git a/Week 03/id_151/LeetCode_860_151.cpp b/Week 03/id_151/LeetCode_860_151.cpp new file mode 100644 index 000000000..cd89eb6c9 --- /dev/null +++ b/Week 03/id_151/LeetCode_860_151.cpp @@ -0,0 +1,32 @@ +class Solution { +public: + bool lemonadeChange(vector& bills) { + int num5 = 0; + int num10 = 0; + int num20 = 0; + for (int i = 0; i < bills.size(); ++i) { + int cur = bills[i]; + if (cur == 5) ++num5; + if (cur == 10) ++num10; + if (cur == 20) ++num20; + int left = cur - 5; + while (left >= 20 && num20 > 0) { + left -= 20; + --num20; + } + while (left >= 10 && num10 > 0) { + left -= 10; + --num10; + } + while (left >= 5 && num5 > 0) { + left -= 5; + --num5; + } + + if (left > 0) + return false; + } + + return true; + } +}; From df98cd811ae3e064c710ac5fa4b455474ecb2a1a Mon Sep 17 00:00:00 2001 From: cool Date: Sun, 3 Nov 2019 21:12:47 +0800 Subject: [PATCH 122/740] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=A2=AB=E6=97=8B=E8=BD=AC=E7=9A=84=E6=8E=92=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E8=A1=A8=20=E5=AE=8C=E5=96=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...346\216\222\345\272\217\345\210\227\350\241\250.py" | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git "a/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" index b12ebc296..47a2e5ef8 100644 --- "a/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" +++ "b/Week 03/id_251/\350\277\230\345\216\237\344\270\200\344\270\252\350\242\253\346\227\213\350\275\254\347\232\204\346\216\222\345\272\217\345\210\227\350\241\250.py" @@ -7,14 +7,12 @@ def revert(array): left, right = 0, len(array) - 1 while left < right: mid = left + (right - left) // 2 - if array[left] < array[mid] < array[right]: - return array - elif array[left] < array[mid]: - left = mid + # 找到旋转后第二段的起点 + if array[mid] > array[right]: + left = mid + 1 else: right = mid - # 这里left 和 right 都可以 - return array[right + 1:] + array[:right + 1] + return array[left:] + array[:left] if __name__ == '__main__': From 91f6fbeab33e6b881141fb216dca6ac8e3494420 Mon Sep 17 00:00:00 2001 From: KarsonWu <32958671+KarsonWu@users.noreply.github.com> Date: Sun, 3 Nov 2019 21:14:00 +0800 Subject: [PATCH 123/740] 196_Week 03 --- Week 03/id_196/LeetCode_122_196.py | 8 ++++ Week 03/id_196/LeetCode_126_196.py | 36 ++++++++++++++++++ Week 03/id_196/LeetCode_127_196.py | 25 +++++++++++++ Week 03/id_196/LeetCode_33_196.py | 59 ++++++++++++++++++++++++++++++ Week 03/id_196/LeetCode_74_196.py | 22 +++++++++++ Week 03/id_196/LeetCode_860_196.py | 20 ++++++++++ 6 files changed, 170 insertions(+) create mode 100644 Week 03/id_196/LeetCode_122_196.py create mode 100644 Week 03/id_196/LeetCode_126_196.py create mode 100644 Week 03/id_196/LeetCode_127_196.py create mode 100644 Week 03/id_196/LeetCode_33_196.py create mode 100644 Week 03/id_196/LeetCode_74_196.py create mode 100644 Week 03/id_196/LeetCode_860_196.py diff --git a/Week 03/id_196/LeetCode_122_196.py b/Week 03/id_196/LeetCode_122_196.py new file mode 100644 index 000000000..a2715705b --- /dev/null +++ b/Week 03/id_196/LeetCode_122_196.py @@ -0,0 +1,8 @@ +class Solution: + def maxProfit(self, prices: List[int]) -> int: + profit = 0 + for i in range(1, len(prices)): + tmp = prices[i] - prices[i - 1] + if tmp > 0: profit += tmp + return profit + diff --git a/Week 03/id_196/LeetCode_126_196.py b/Week 03/id_196/LeetCode_126_196.py new file mode 100644 index 000000000..d33872eec --- /dev/null +++ b/Week 03/id_196/LeetCode_126_196.py @@ -0,0 +1,36 @@ +class Solution(object): + def findLadders(self, beginWord, endWord, wordList): + """ + :type beginWord: str + :type endWord: str + :type wordList: List[str] + :rtype: List[List[str]] + """ + + def backtrack(res, routine, path, endWord): + if len(routine[endWord]) == 0: + res.append([endWord] + path) + else: + for pre in routine[endWord]: + backtrack(res, routine, [endWord] + path, pre) + + lookup = set(wordList) | set([beginWord]) + res, cur, routine = [], set([beginWord]), {word: [] for word in lookup} + while cur and endWord not in cur: + next_queue = set() + for word in cur: + lookup.remove(word) + for word in cur: + for i in range(len(word)): + for j in range(97, 123): + tmp = word[:i] + chr(j) + word[i + 1:] + if tmp in lookup: + next_queue.add(tmp) + routine[tmp].append(word) + cur = next_queue + + if cur: + backtrack(res, routine, [], endWord) + return res + + diff --git a/Week 03/id_196/LeetCode_127_196.py b/Week 03/id_196/LeetCode_127_196.py new file mode 100644 index 000000000..cc8921f52 --- /dev/null +++ b/Week 03/id_196/LeetCode_127_196.py @@ -0,0 +1,25 @@ +class Solution: + def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: + if endWord not in wordList: + return 0 + wordict = set(wordList) + s1 = {beginWord} + s2 = {endWord} + n = len(beginWord) + step = 0 + wordict.remove(endWord) + while s1 and s2: + step += 1 + if len(s1) > len(s2): s1, s2 = s2, s1 + s = set() + for word in s1: + nextword = [word[:i] + chr(j) + word[i + 1:] for j in range(97, 123) for i in range(n)] + for w in nextword: + if w in s2: + return step + 1 + if w not in wordict: continue + wordict.remove(w) + s.add(w) + s1 = s + return 0 + diff --git a/Week 03/id_196/LeetCode_33_196.py b/Week 03/id_196/LeetCode_33_196.py new file mode 100644 index 000000000..516305be9 --- /dev/null +++ b/Week 03/id_196/LeetCode_33_196.py @@ -0,0 +1,59 @@ +class Solution: + def search(self, nums, target): + """ + :type nums: List[int] + :type target: int + :rtype: int + """ + + def find_rotate_index(left, right): + if nums[left] < nums[right]: + return 0 + + while left <= right: + pivot = (left + right) // 2 + if nums[pivot] > nums[pivot + 1]: + return pivot + 1 + else: + if nums[pivot] < nums[left]: + right = pivot - 1 + else: + left = pivot + 1 + + def search(left, right): + """ + Binary search + """ + while left <= right: + pivot = (left + right) // 2 + if nums[pivot] == target: + return pivot + else: + if target < nums[pivot]: + right = pivot - 1 + else: + left = pivot + 1 + return -1 + + n = len(nums) + + if n == 0: + return -1 + if n == 1: + return 0 if nums[0] == target else -1 + + rotate_index = find_rotate_index(0, n - 1) + + # if target is the smallest element + if nums[rotate_index] == target: + return rotate_index + # if array is not rotated, search in the entire array + if rotate_index == 0: + return search(0, n - 1) + if target < nums[0]: + # search on the right side + return search(rotate_index, n - 1) + # search on the left side + return search(0, rotate_index) + + diff --git a/Week 03/id_196/LeetCode_74_196.py b/Week 03/id_196/LeetCode_74_196.py new file mode 100644 index 000000000..73a199e14 --- /dev/null +++ b/Week 03/id_196/LeetCode_74_196.py @@ -0,0 +1,22 @@ +class Solution: + def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: + m = len(matrix) + if m == 0: + return False + n = len(matrix[0]) + + # 二分查找 + left, right = 0, m * n - 1 + while left <= right: + pivot_idx = (left + right) // 2 + pivot_element = matrix[pivot_idx // n][pivot_idx % n] + if target == pivot_element: + return True + else: + if target < pivot_element: + right = pivot_idx - 1 + else: + left = pivot_idx + 1 + return False + + diff --git a/Week 03/id_196/LeetCode_860_196.py b/Week 03/id_196/LeetCode_860_196.py new file mode 100644 index 000000000..a85b72266 --- /dev/null +++ b/Week 03/id_196/LeetCode_860_196.py @@ -0,0 +1,20 @@ +class Solution(object): #aw + def lemonadeChange(self, bills): + five = ten = 0 + for bill in bills: + if bill == 5: + five += 1 + elif bill == 10: + if not five: return False + five -= 1 + ten += 1 + else: + if ten and five: + ten -= 1 + five -= 1 + elif five >= 3: + five -= 3 + else: + return False + return True + From 5b76946b70034908744bb36d9a8e75dc3fd2ba27 Mon Sep 17 00:00:00 2001 From: shniu Date: Sun, 3 Nov 2019 21:15:19 +0800 Subject: [PATCH 124/740] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_716/LeetCode_402_716.java | 27 +++++++++++++++++++++++ Week 03/id_716/NOTE.md | 33 ++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 Week 03/id_716/LeetCode_402_716.java diff --git a/Week 03/id_716/LeetCode_402_716.java b/Week 03/id_716/LeetCode_402_716.java new file mode 100644 index 000000000..16bfaeda2 --- /dev/null +++ b/Week 03/id_716/LeetCode_402_716.java @@ -0,0 +1,27 @@ +// https://leetcode-cn.com/problems/remove-k-digits +// 移掉K位数字 + +public class LeetCode_402_716 { + public String removeKdigits(String num, int k) { + if (k >= num.length()) return "0"; + + char[] stack = new char[num.length()]; + int sPos = 0; + + for (char curr : num.toCharArray()) { + // 移动到新的字符上时,都去找当前的最大值,移除掉 + while (k > 0 && sPos > 0 && stack[sPos] > curr) { + sPos--; + k--; + } + + // 如果第一个位置是0的话,直接丢弃 + if (sPos != 0 || curr != '0') { + stack[sPos++] = curr; + } + } + + String res = new String(stack, 0, sPos - k); + return res.isEmpty() ? "0" : res; + } +} \ No newline at end of file diff --git a/Week 03/id_716/NOTE.md b/Week 03/id_716/NOTE.md index 666129853..72dc7d516 100644 --- a/Week 03/id_716/NOTE.md +++ b/Week 03/id_716/NOTE.md @@ -197,6 +197,8 @@ public class ActivitySelection { 2. 最小生成树:Prim 算法和 Kruskal 算法 3. 最短路径:Dijkstra 算法 +以上都是贪心算法的一些典型的实际应用,每一个总结起来都需要花费大量的精力,留在以后慢慢分析,在这里立一个 Flag. + #### 相关题目练习 利用老师课上讲的利用贪心选择和最近重复性的原则,以及贪心算法的基本要素:证明贪心选择的安全性以及找出最优子结构,原问题的最优解可以通过组合当前的选择和子问题的最优解得到。 @@ -209,6 +211,37 @@ public class ActivitySelection { > 1. num 的长度小于 10002 且 ≥ k > 2. num 不会包含任何前导零 +题解: +这道题的初步感觉是挺简单的,但是仔细想了之后发现并不简单。 +可以把问题分解为:当前选择是移除1个数字使剩余后的数字最小;子问题是在剩余的数字中再选择一个1个数字使剩余的数字最小;可见具有重复性,而且是最近重复性,而且当前选择并不会影响将来的选择,都是选择最小的,使原问题的解最终最小 + +代码实现: + +```java +public String removeKdigits(String num, int k) { + if (k >= num.length()) return "0"; + + char[] stack = new char[num.length()]; + int sPos = 0; + + for (char curr : num.toCharArray()) { + // 移动到新的字符上时,都去找当前的最大值,移除掉 + while (k > 0 && sPos > 0 && stack[sPos] > curr) { + sPos--; + k--; + } + + // 如果第一个位置是0的话,直接丢弃 + if (sPos != 0 || curr != '0') { + stack[sPos++] = curr; + } + } + + String res = new String(stack, 0, sPos - k); + return res.isEmpty() ? "0" : res; +} +``` + - [无重叠区间](https://leetcode-cn.com/problems/non-overlapping-intervals/) 问题描述: From b1d9b5783f7c6b375485946fb5cea6cc7b32a9cf Mon Sep 17 00:00:00 2001 From: KarsonWu <32958671+KarsonWu@users.noreply.github.com> Date: Sun, 3 Nov 2019 21:15:20 +0800 Subject: [PATCH 125/740] Revert "196_Week 03" This reverts commit 91f6fbeab33e6b881141fb216dca6ac8e3494420. --- Week 03/id_196/LeetCode_122_196.py | 8 ---- Week 03/id_196/LeetCode_126_196.py | 36 ------------------ Week 03/id_196/LeetCode_127_196.py | 25 ------------- Week 03/id_196/LeetCode_33_196.py | 59 ------------------------------ Week 03/id_196/LeetCode_74_196.py | 22 ----------- Week 03/id_196/LeetCode_860_196.py | 20 ---------- 6 files changed, 170 deletions(-) delete mode 100644 Week 03/id_196/LeetCode_122_196.py delete mode 100644 Week 03/id_196/LeetCode_126_196.py delete mode 100644 Week 03/id_196/LeetCode_127_196.py delete mode 100644 Week 03/id_196/LeetCode_33_196.py delete mode 100644 Week 03/id_196/LeetCode_74_196.py delete mode 100644 Week 03/id_196/LeetCode_860_196.py diff --git a/Week 03/id_196/LeetCode_122_196.py b/Week 03/id_196/LeetCode_122_196.py deleted file mode 100644 index a2715705b..000000000 --- a/Week 03/id_196/LeetCode_122_196.py +++ /dev/null @@ -1,8 +0,0 @@ -class Solution: - def maxProfit(self, prices: List[int]) -> int: - profit = 0 - for i in range(1, len(prices)): - tmp = prices[i] - prices[i - 1] - if tmp > 0: profit += tmp - return profit - diff --git a/Week 03/id_196/LeetCode_126_196.py b/Week 03/id_196/LeetCode_126_196.py deleted file mode 100644 index d33872eec..000000000 --- a/Week 03/id_196/LeetCode_126_196.py +++ /dev/null @@ -1,36 +0,0 @@ -class Solution(object): - def findLadders(self, beginWord, endWord, wordList): - """ - :type beginWord: str - :type endWord: str - :type wordList: List[str] - :rtype: List[List[str]] - """ - - def backtrack(res, routine, path, endWord): - if len(routine[endWord]) == 0: - res.append([endWord] + path) - else: - for pre in routine[endWord]: - backtrack(res, routine, [endWord] + path, pre) - - lookup = set(wordList) | set([beginWord]) - res, cur, routine = [], set([beginWord]), {word: [] for word in lookup} - while cur and endWord not in cur: - next_queue = set() - for word in cur: - lookup.remove(word) - for word in cur: - for i in range(len(word)): - for j in range(97, 123): - tmp = word[:i] + chr(j) + word[i + 1:] - if tmp in lookup: - next_queue.add(tmp) - routine[tmp].append(word) - cur = next_queue - - if cur: - backtrack(res, routine, [], endWord) - return res - - diff --git a/Week 03/id_196/LeetCode_127_196.py b/Week 03/id_196/LeetCode_127_196.py deleted file mode 100644 index cc8921f52..000000000 --- a/Week 03/id_196/LeetCode_127_196.py +++ /dev/null @@ -1,25 +0,0 @@ -class Solution: - def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: - if endWord not in wordList: - return 0 - wordict = set(wordList) - s1 = {beginWord} - s2 = {endWord} - n = len(beginWord) - step = 0 - wordict.remove(endWord) - while s1 and s2: - step += 1 - if len(s1) > len(s2): s1, s2 = s2, s1 - s = set() - for word in s1: - nextword = [word[:i] + chr(j) + word[i + 1:] for j in range(97, 123) for i in range(n)] - for w in nextword: - if w in s2: - return step + 1 - if w not in wordict: continue - wordict.remove(w) - s.add(w) - s1 = s - return 0 - diff --git a/Week 03/id_196/LeetCode_33_196.py b/Week 03/id_196/LeetCode_33_196.py deleted file mode 100644 index 516305be9..000000000 --- a/Week 03/id_196/LeetCode_33_196.py +++ /dev/null @@ -1,59 +0,0 @@ -class Solution: - def search(self, nums, target): - """ - :type nums: List[int] - :type target: int - :rtype: int - """ - - def find_rotate_index(left, right): - if nums[left] < nums[right]: - return 0 - - while left <= right: - pivot = (left + right) // 2 - if nums[pivot] > nums[pivot + 1]: - return pivot + 1 - else: - if nums[pivot] < nums[left]: - right = pivot - 1 - else: - left = pivot + 1 - - def search(left, right): - """ - Binary search - """ - while left <= right: - pivot = (left + right) // 2 - if nums[pivot] == target: - return pivot - else: - if target < nums[pivot]: - right = pivot - 1 - else: - left = pivot + 1 - return -1 - - n = len(nums) - - if n == 0: - return -1 - if n == 1: - return 0 if nums[0] == target else -1 - - rotate_index = find_rotate_index(0, n - 1) - - # if target is the smallest element - if nums[rotate_index] == target: - return rotate_index - # if array is not rotated, search in the entire array - if rotate_index == 0: - return search(0, n - 1) - if target < nums[0]: - # search on the right side - return search(rotate_index, n - 1) - # search on the left side - return search(0, rotate_index) - - diff --git a/Week 03/id_196/LeetCode_74_196.py b/Week 03/id_196/LeetCode_74_196.py deleted file mode 100644 index 73a199e14..000000000 --- a/Week 03/id_196/LeetCode_74_196.py +++ /dev/null @@ -1,22 +0,0 @@ -class Solution: - def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: - m = len(matrix) - if m == 0: - return False - n = len(matrix[0]) - - # 二分查找 - left, right = 0, m * n - 1 - while left <= right: - pivot_idx = (left + right) // 2 - pivot_element = matrix[pivot_idx // n][pivot_idx % n] - if target == pivot_element: - return True - else: - if target < pivot_element: - right = pivot_idx - 1 - else: - left = pivot_idx + 1 - return False - - diff --git a/Week 03/id_196/LeetCode_860_196.py b/Week 03/id_196/LeetCode_860_196.py deleted file mode 100644 index a85b72266..000000000 --- a/Week 03/id_196/LeetCode_860_196.py +++ /dev/null @@ -1,20 +0,0 @@ -class Solution(object): #aw - def lemonadeChange(self, bills): - five = ten = 0 - for bill in bills: - if bill == 5: - five += 1 - elif bill == 10: - if not five: return False - five -= 1 - ten += 1 - else: - if ten and five: - ten -= 1 - five -= 1 - elif five >= 3: - five -= 3 - else: - return False - return True - From 1aabb92cd7e1c732bb6abb8cd95838d508afcc12 Mon Sep 17 00:00:00 2001 From: aseara Date: Sun, 3 Nov 2019 21:19:16 +0800 Subject: [PATCH 126/740] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_466/LeetCode_122_466.java | 67 +++ Week 03/id_466/LeetCode_126_466.java | 215 ++++++++ Week 03/id_466/LeetCode_127_466.java | 785 +++++++++++++++++++++++++++ Week 03/id_466/LeetCode_153_466.java | 84 +++ Week 03/id_466/LeetCode_200_466.java | 99 ++++ Week 03/id_466/LeetCode_860_466.java | 115 ++++ 6 files changed, 1365 insertions(+) create mode 100644 Week 03/id_466/LeetCode_122_466.java create mode 100644 Week 03/id_466/LeetCode_126_466.java create mode 100644 Week 03/id_466/LeetCode_127_466.java create mode 100644 Week 03/id_466/LeetCode_153_466.java create mode 100644 Week 03/id_466/LeetCode_200_466.java create mode 100644 Week 03/id_466/LeetCode_860_466.java diff --git a/Week 03/id_466/LeetCode_122_466.java b/Week 03/id_466/LeetCode_122_466.java new file mode 100644 index 000000000..f972c6f01 --- /dev/null +++ b/Week 03/id_466/LeetCode_122_466.java @@ -0,0 +1,67 @@ +//给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 +// +// 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 +// +// 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 +// +// 示例 1: +// +// 输入: [7,1,5,3,6,4] +//输出: 7 +//解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 +//  随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。 +// +// +// 示例 2: +// +// 输入: [1,2,3,4,5] +//输出: 4 +//解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 +//  注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。 +//  因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。 +// +// +// 示例 3: +// +// 输入: [7,6,4,3,1] +//输出: 0 +//解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。 +// Related Topics 贪心算法 数组 +package com.aseara.leetcode.editor.cn.a122; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * desc: 122.买卖股票的最佳时机 II
+ * Date: 2019/11/3
+ * + * @author qiujingde + */ +class BestTimeToBuyAndSellStockIi { + private Solution solution = new Solution(); + + @Test + void test1() { + assertEquals(7, solution.maxProfit(new int[] {7,1,5,3,6,4})); + assertEquals(4, solution.maxProfit(new int[] {1,2,3,4,5})); + assertEquals(0, solution.maxProfit(new int[] {7,6,4,3,1})); + } + +} + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public int maxProfit(int[] prices) { + int profit = 0; + for (int i = 0; i < prices.length - 1; i++) { + if (prices[i + 1] > prices[i]) { + profit += prices[i + 1] - prices[i]; + } + } + return profit; + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_466/LeetCode_126_466.java b/Week 03/id_466/LeetCode_126_466.java new file mode 100644 index 000000000..0161f1e86 --- /dev/null +++ b/Week 03/id_466/LeetCode_126_466.java @@ -0,0 +1,215 @@ +//给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: +// +// +// 每次转换只能改变一个字母。 +// 转换过程中的中间单词必须是字典中的单词。 +// +// +// 说明: +// +// +// 如果不存在这样的转换序列,返回一个空列表。 +// 所有单词具有相同的长度。 +// 所有单词只由小写字母组成。 +// 字典中不存在重复的单词。 +// 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 +// +// +// 示例 1: +// +// 输入: +//beginWord = "hit", +//endWord = "cog", +//wordList = ["hot","dot","dog","lot","log","cog"] +// +//输出: +//[ +// ["hit","hot","dot","dog","cog"], +//  ["hit","hot","lot","log","cog"] +//] +// +// +// 示例 2: +// +// 输入: +//beginWord = "hit" +//endWord = "cog" +//wordList = ["hot","dot","dog","lot","log"] +// +//输出: [] +// +//解释: endWord "cog" 不在字典中,所以不存在符合要求的转换序列。 +// Related Topics 广度优先搜索 数组 字符串 回溯算法 +package com.aseara.leetcode.editor.cn.a126; + +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.junit.jupiter.api.Assertions.assertIterableEquals; + +/** + * desc: 126.单词接龙 II
+ * Date: 2019/11/3
+ * + * @author qiujingde + */ +class WordLadderIi { + private Solution solution = new Solution(); + + @Test + void test1() { + String begin = "hit"; + String end = "cog"; + List dict = Arrays.asList("hot","dot","dog","lot","log","cog"); + Set> expected = new HashSet<>(Arrays.asList( + Arrays.asList("hit","hot","lot","log","cog"), + Arrays.asList("hit","hot","dot","dog","cog"))); + + assertIterableEquals(expected, new HashSet<>(solution.path2(begin, end, dict))); + + // [["red","ted","tad","tax"],["red","ted","tex","tax"],["red","rex","tex","tax"]] + begin = "red"; + end = "tax"; + dict = Arrays.asList("ted","tex","red","tax","tad","den","rex","pee"); + expected = new HashSet<>(Arrays.asList( + Arrays.asList("red","ted","tad","tax"), + Arrays.asList("red","ted","tex","tax"), + Arrays.asList("red","rex","tex","tax"))); + + assertIterableEquals(expected, new HashSet<>(solution.path2(begin, end, dict))); + } + +} + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public List> findLadders(String beginWord, String endWord, List wordList) { + return path2(beginWord, endWord, wordList); + } + + + List> path1(String beginWord, String endWord, List wordList) { + + return Collections.emptyList(); + } + + + + + List> path2(String beginWord, String endWord, List wordList) { + Set dict = new HashSet<>(wordList); + if (!dict.contains(endWord)) { + return Collections.emptyList(); + } + + Map>> travelSet = new HashMap<>(); + travelSet.put(beginWord, new LinkedList<>()); + travelSet.get(beginWord).add(new LinkedList<>(Collections.singleton(beginWord))); + Map>> checkSet = new HashMap<>(); + checkSet.put(endWord, new LinkedList<>()); + checkSet.get(endWord).add(new LinkedList<>(Collections.singleton(endWord))); + + return bfs1(dict, travelSet, checkSet, true); + } + + private List> bfs1(Set dict, + Map>> travelSet, + Map>> checkSet, + boolean dir) { + if (travelSet.isEmpty()) { + return Collections.emptyList(); + } + + Map>> nextSet = new HashMap<>(); + + List> result = null; + + for (Map.Entry>> node : travelSet.entrySet()) { + String word = node.getKey(); + dict.remove(word); + char[] arr = word.toCharArray(); + for (int i = 0; i < word.length(); i++) { + char temp = arr[i]; + for (char j = 'a'; j <= 'z'; j++) { + if (temp == j) { + continue; + } + arr[i] = j; + String next = String.valueOf(arr); + arr[i] = temp; + + if (checkSet.containsKey(next)) { + if (result == null) { + result = new LinkedList<>(); + } + result.addAll(getPath(node.getValue(), checkSet.get(next), dir)); + + + } else if (dict.contains(next)){ + LinkedList> paths = + nextSet.computeIfAbsent(next, k -> new LinkedList<>()); + for (LinkedList path : node.getValue()) { + LinkedList newPath = new LinkedList<>(path); + newPath.add(next); + paths.add(newPath); + } + } + } + } + } + + if (result != null) { + return result; + } + + if (nextSet.size() >= checkSet.size()) { + return bfs1(dict, nextSet, checkSet, dir); + } else { + return bfs1(dict, checkSet, nextSet, !dir); + } + } + + private List> getPath(LinkedList> head, + LinkedList> tail, + boolean dir) { + if (dir) { + System.out.println(head); + System.out.println(tail); + List> paths = new LinkedList<>(); + for (LinkedList headP : head) { + for (LinkedList tailP : tail) { + paths.add(getPath(headP, tailP)); + } + } + System.out.println(paths); + System.out.println(); + return paths; + } + return getPath(tail, head, true); + } + + private LinkedList getPath(LinkedList head, + LinkedList tail) { + LinkedList path = new LinkedList<>(head); + + Iterator iter = tail.descendingIterator(); + while (iter.hasNext()) { + path.add(iter.next()); + } + + return path; + } + + +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_466/LeetCode_127_466.java b/Week 03/id_466/LeetCode_127_466.java new file mode 100644 index 000000000..5828504b0 --- /dev/null +++ b/Week 03/id_466/LeetCode_127_466.java @@ -0,0 +1,785 @@ +//给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: +// +// +// 每次转换只能改变一个字母。 +// 转换过程中的中间单词必须是字典中的单词。 +// +// +// 说明: +// +// +// 如果不存在这样的转换序列,返回 0。 +// 所有单词具有相同的长度。 +// 所有单词只由小写字母组成。 +// 字典中不存在重复的单词。 +// 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 +// +// +// 示例 1: +// +// 输入: +//beginWord = "hit", +//endWord = "cog", +//wordList = ["hot","dot","dog","lot","log","cog"] +// +//输出: 5 +// +//解释: 一个最短转换序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog", +// 返回它的长度 5。 +// +// +// 示例 2: +// +// 输入: +//beginWord = "hit" +//endWord = "cog" +//wordList = ["hot","dot","dog","lot","log"] +// +//输出: 0 +// +//解释: endWord "cog" 不在字典中,所以无法进行转换。 +// Related Topics 广度优先搜索 +package com.aseara.leetcode.editor.cn.a127; + +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * desc: 127.单词接龙
+ * Date: 2019/10/31
+ * + * @author qiujingde + */ +class WordLadder { + private Solution solution = new Solution(); + + @Test + void test1() { + String begin = "hit"; + String end = "cog"; + List dict = Arrays.asList("hot","dot","dog","lot","log","cog"); + assertEquals(5, solution.ladderLength(begin, end, dict)); + + begin = "hit"; + end = "cog"; + dict = Arrays.asList("hot","dot","dog","lot","log"); + assertEquals(0, solution.ladderLength(begin, end, dict)); + + begin = "hot"; + end = "dot"; + dict = Arrays.asList("hot", "dog", "dot"); + assertEquals(2, solution.ladderLength(begin, end, dict)); + } + +} + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + + public int ladderLength(String beginWord, String endWord, List wordList) { + return path10(beginWord, endWord, wordList); + } + + private int path1(String beginWord, String endWord, List wordList) { + LinkedList checkList = new LinkedList<>(); + for (String w : wordList) { + if (!w.equals(endWord)) { + checkList.add(w); + } + } + + if (checkList.size() == wordList.size()) { + return 0; + } + + LinkedList queue = new LinkedList<>(); + queue.add(beginWord); + + int step = 1; + while (!queue.isEmpty() && !wordList.isEmpty()) { + step ++; + int batch = queue.size(); + for (int i = 0; i < batch; i++) { + String crt = queue.poll(); + if (canGo(crt, endWord)) { + return step; + } + int checkSize = checkList.size(); + for (int j = 0; j < checkSize; j++) { + String next = checkList.poll(); + if (canGo(crt, next)) { + queue.add(next); + } else { + checkList.add(next); + } + } + } + } + + return 0; + } + + private boolean canGo(String a, String b) { + int diff = 0; + for (int i = 0; i < a.length(); i++) { + diff += a.charAt(i) == b.charAt(i) ? 0 : 1; + if (diff > 1) { + return false; + } + } + return diff == 1; + } + + private int path2(String beginWord, String endWord, List wordList) { + // abc -> *bc, a*c, ab* + Map> map1 = new HashMap<>(wordList.size()); + // *bc -> abc, bbc, cbc + Map> map2 = new HashMap<>(wordList.size() * 3); + + for(String word : wordList) { + fillMap(map1, map2, word); + } + fillMap(map1, map2, beginWord); + + if (map1.get(endWord) == null) { + return 0; + } + + // endWord -> *bc, a*c, ab* + Set checkSet = new HashSet<>(map1.remove(endWord)); + + LinkedList queue = new LinkedList<>(); + queue.add(beginWord); + + int step = 1; + while (!queue.isEmpty() && !map1.isEmpty()) { + step++; + int batch = queue.size(); + for (int i = 0; i < batch; i++) { + String crt = queue.poll(); + List paths = map1.remove(crt); + if (paths == null) { + continue; + } + for (String path: paths) { + if (checkSet.contains(path)) { + return step; + } + for (String next : map2.get(path)) { + if (map1.containsKey(next)) { + queue.add(next); + } + } + } + } + } + return 0; + } + + private void fillMap(Map> map1, Map> map2, String word) { + for (int i = 0; i < word.length(); i++) { + String pathWord = word.substring(0, i) + '*' + word.substring(i + 1); + map1.computeIfAbsent(word, k -> new LinkedList<>()).add(pathWord); + map2.computeIfAbsent(pathWord, k -> new LinkedList<>()).add(word); + } + } + + // 双向BFS + private int path3(String beginWord, String endWord, List wordList) { + // abc -> *bc, a*c, ab* + Map> map1 = new HashMap<>(wordList.size()); + // *bc -> abc, bbc, cbc + Map> map2 = new HashMap<>(wordList.size() * 3); + + for(String word : wordList) { + fillSetMap(map1, map2, word); + } + fillSetMap(map1, map2, beginWord); + + if (!map1.containsKey(endWord)) { + return 0; + } + + Set beginSet = new HashSet<>(); + for (String path : map1.get(beginWord)) { + if (map2.get(path).size() > 1) { + beginSet.add(path); + } + } + Set endSet = new HashSet<>(map1.get(endWord)); + for (String path : map1.get(endWord)) { + if (map2.get(path).size() > 1) { + endSet.add(path); + } + } + + Set visited = new HashSet<>(); + visited.add(beginWord); + visited.add(endWord); + + int step = 1; + while (!beginSet.isEmpty() && !endSet.isEmpty()) { + step ++; + Set tempSet = new HashSet<>(); + for (String path : beginSet) { + if (endSet.contains(path)) { + return step; + } + Set nextWords = map2.get(path); + if (nextWords != null) { + for (String nextWord : nextWords) { + if (!visited.contains(nextWord)) { + visited.add(nextWord); + for (String nextPath : map1.get(nextWord)) { + if (map2.get(nextPath).size() > 1) { + tempSet.add(nextPath); + } + } + } + } + } + } + beginSet = endSet; + endSet = tempSet; + } + + return 0; + } + + // 双向BFS 超出时间限制 + private int path4(String beginWord, String endWord, List wordList) { + // abc -> *bc, a*c, ab* + Map> map1 = new HashMap<>(wordList.size()); + // *bc -> abc, bbc, cbc + Map> map2 = new HashMap<>(wordList.size() * 3); + + for(String word : wordList) { + fillSetMap(map1, map2, word); + } + fillSetMap(map1, map2, beginWord); + + if (!map1.containsKey(endWord)) { + return 0; + } + + Set beginSet = new HashSet<>(); + fillNextLevelSet(map1, map2, beginSet, beginWord); + Set endSet = new HashSet<>(); + fillNextLevelSet(map1, map2, endSet, endWord); + + int step = 1; + while (!beginSet.isEmpty() && !endSet.isEmpty()) { + System.out.println(beginSet); + System.out.println(endSet); + System.out.println(); + + step ++; + Set tempSet = new HashSet<>(); + + for (String path : beginSet) { + if (endSet.contains(path)) { + return step; + } + + for (String word : map2.get(path)) { + for (String nextPath : map1.get(word)) { + if (!path.equals(nextPath)) { + tempSet.add(nextPath); + } + } + } + } + beginSet = endSet; + endSet = tempSet; + } + + return 0; + } + + private void fillNextLevelSet( + Map> map1, + Map> map2, + Set tempSet, String word) { + for (String nextPath : map1.get(word)) { + Set words = map2.get(nextPath); + tempSet.add(nextPath); + } + } + + // 双向BFS + private int path5(String beginWord, String endWord, List wordList) { + Map> wordMap = new HashMap<>(); + Map> pathMap = new HashMap<>(); + + for(String word : wordList) { + Set words = new HashSet<>(); + wordMap.put(word, words); + for (int i = 0; i < word.length(); i++) { + String path = word.substring(0, i) + '*' + word.substring(i + 1); + List pathWords = pathMap.get(path); + if (pathWords == null) { + pathWords = new LinkedList<>(); + pathMap.put(path, pathWords); + } else { + words.addAll(pathWords); + for (String nextWord : pathWords) { + wordMap.get(nextWord).add(word); + } + } + pathWords.add(word); + } + } + + if (!wordMap.containsKey(endWord)) { + return 0; + } + + Set beginSet = new HashSet<>(); + for (int i = 0; i < beginWord.length(); i++) { + String pathWord = beginWord.substring(0, i) + '*' + beginWord.substring(i + 1); + List words; + if ((words = pathMap.get(pathWord)) != null) { + beginSet.addAll(words); + } + } + + Set endSet = new HashSet<>(); + endSet.add(endWord); + + Set visited = new HashSet<>(); + visited.add(beginWord); + visited.add(endWord); + + int step = 1; + while (!beginSet.isEmpty() && !endSet.isEmpty()) { + step ++; + Set temp; + if (beginSet.size() < endSet.size()) { + temp = beginSet; + beginSet = endSet; + endSet = temp; + } + temp = new HashSet<>(); + for (String word : endSet) { + if (beginSet.contains(word)) { + return step; + } + for (String nextWord : wordMap.get(word)) { + if (!visited.contains(nextWord)) { + temp.add(nextWord); + } + } + } + endSet = temp; + } + + return 0; + } + + // 双向BFS 当前最优实现 33ms + private int path6(String beginWord, String endWord, List wordList) { + Map> wordMap = new HashMap<>(); + Map> pathMap = new HashMap<>(); + + for(String word : wordList) { + if (word.equals(beginWord)) { + continue; + } + Set words = new HashSet<>(); + wordMap.put(word, words); + char[] arr = word.toCharArray(); + for (int i = 0; i < word.length(); i++) { + char temp = arr[i]; + arr[i] = '*'; + String path = new String(arr); + arr[i] = temp; + List pathWords = pathMap.get(path); + if (pathWords == null) { + pathWords = new LinkedList<>(); + pathMap.put(path, pathWords); + } else { + words.addAll(pathWords); + for (String nextWord : pathWords) { + wordMap.get(nextWord).add(word); + } + } + pathWords.add(word); + } + } + + if (!wordMap.containsKey(endWord)) { + return 0; + } + + Set beginSet = new HashSet<>(); + char[] arr = beginWord.toCharArray(); + for (int i = 0; i < beginWord.length(); i++) { + char temp = arr[i]; + arr[i] = '*'; + String pathWord = new String(arr); + arr[i] = temp; + List words; + if ((words = pathMap.get(pathWord)) != null) { + beginSet.addAll(words); + } + } + + Set endSet = new HashSet<>(); + endSet.add(endWord); + + Set visited = new HashSet<>(); + visited.add(beginWord); + visited.add(endWord); + + int step = 1; + while (!beginSet.isEmpty() && !endSet.isEmpty()) { + step ++; + Set temp; + if (beginSet.size() < endSet.size()) { + temp = beginSet; + beginSet = endSet; + endSet = temp; + } + temp = new HashSet<>(); + for (String word : endSet) { + if (beginSet.contains(word)) { + return step; + } + for (String nextWord : wordMap.get(word)) { + if (!visited.contains(nextWord)) { + temp.add(nextWord); + } + } + } + endSet = temp; + } + + return 0; + } + + // 双向BFS 递归实现 + private int path7(String beginWord, String endWord, List wordList) { + Map> wordMap = new HashMap<>(); + Map> pathMap = new HashMap<>(); + + for(String word : wordList) { + Set words = new HashSet<>(); + wordMap.put(word, words); + char[] arr = word.toCharArray(); + for (int i = 0; i < word.length(); i++) { + char temp = arr[i]; + arr[i] = '*'; + String path = new String(arr); + arr[i] = temp; + List pathWords = pathMap.get(path); + if (pathWords == null) { + pathWords = new LinkedList<>(); + pathMap.put(path, pathWords); + } else { + words.addAll(pathWords); + for (String nextWord : pathWords) { + wordMap.get(nextWord).add(word); + } + } + pathWords.add(word); + } + } + + if (!wordMap.containsKey(endWord)) { + return 0; + } + + Set beginSet = new HashSet<>(); + char[] arr = beginWord.toCharArray(); + for (int i = 0; i < beginWord.length(); i++) { + char temp = arr[i]; + arr[i] = '*'; + String pathWord = new String(arr); + arr[i] = temp; + List words; + if ((words = pathMap.get(pathWord)) != null) { + beginSet.addAll(words); + } + } + + Set endSet = new HashSet<>(); + endSet.add(endWord); + + Set visited = new HashSet<>(); + visited.add(endWord); + + return getStep(wordMap, beginSet, endSet, visited, 1); + } + + private int getStep(Map> wordMap, + Set beginSet, Set endSet, + Set visited, int step) { + + Set temp = new HashSet<>(); + for (String word : endSet) { + if (beginSet.contains(word)) { + return step + 1; + } + for (String nextWord : wordMap.get(word)) { + if (!visited.contains(nextWord)) { + temp.add(nextWord); + } + } + } + if (temp.isEmpty()) { + return 0; + } + + if (beginSet.size() < temp.size()) { + endSet = beginSet; + beginSet = temp; + } else { + endSet = temp; + } + + return getStep(wordMap, beginSet, endSet, visited, step + 1); + } + + // 双向BFS 使用 meets + private int path8(String beginWord, String endWord, List wordList) { + // abc -> *bc, a*c, ab* + Map> map1 = new HashMap<>(wordList.size()); + // *bc -> abc, bbc, cbc + Map> map2 = new HashMap<>(wordList.size() * 3); + + for (String word : wordList) { + fillSetMap(map1, map2, word); + } + fillSetMap(map1, map2, beginWord); + + if (!map1.containsKey(endWord)) { + return 0; + } + + Set meets = new HashSet<>(wordList); + + Set beginSet = new HashSet<>(); + beginSet.add(beginWord); + Set endSet = new HashSet<>(); + endSet.add(endWord); + + int step = 1; + while (!beginSet.isEmpty() && !endSet.isEmpty()) { + step ++; + Set tempSet = new HashSet<>(); + meets.removeAll(beginSet); + for (String word : beginSet) { + for (String path: map1.get(word)) { + for (String nextWord : map2.get(path)) { + if (meets.contains(nextWord)) { + if (endSet.contains(nextWord)) { + return step; + } + tempSet.add(nextWord); + } + } + } + } + if (endSet.size() < tempSet.size()) { + beginSet = tempSet; + } else { + beginSet = endSet; + endSet = tempSet; + } + } + + return 0; + } + + private void fillSetMap(Map> map1, Map> map2, String word) { + Set paths = map1.computeIfAbsent(word, k -> new HashSet<>()); + char[] arr = word.toCharArray(); + for (int i = 0; i < word.length(); i++) { + char temp = arr[i]; + arr[i] = '*'; + String pathWord = String.valueOf(arr); + arr[i] = temp; + paths.add(pathWord); + map2.computeIfAbsent(pathWord, k -> new HashSet<>()).add(word); + } + } + + // 双向BFS 使用 meets 按字符遍历 + private int path9(String beginWord, String endWord, List wordList) { + Set meets = new HashSet<>(wordList); + if (!meets.contains(endWord)) { + return 0; + } + + int length = beginWord.length(); + + Set beginSet = new HashSet<>(); + beginSet.add(beginWord); + Set endSet = new HashSet<>(); + endSet.add(endWord); + + int step = 1; + while (!beginSet.isEmpty() && !endSet.isEmpty()) { + step ++; + Set tempSet = new HashSet<>(); + meets.removeAll(beginSet); + for (String word : beginSet) { + char[] arr = word.toCharArray(); + for (int i = 0; i < length; i++) { + char temp = arr[i]; + for (char j = 'a'; j <= 'z'; j++) { + if (temp == j) { + continue; + } + arr[i] = j; + String nextWord = String.valueOf(arr); + if (meets.contains(nextWord)) { + if (endSet.contains(nextWord)) { + return step; + } + tempSet.add(nextWord); + } + } + arr[i] = temp; + } + } + if (endSet.size() < tempSet.size()) { + beginSet = tempSet; + } else { + beginSet = endSet; + endSet = tempSet; + } + } + + return 0; + } + + + + // 双向BFS + private int path10(String beginWord, String endWord, List wordList) { + Map> wordMap = new HashMap<>(); + Map> pathMap = new HashMap<>(); + + for(String word : wordList) { + Set words = new HashSet<>(); + wordMap.put(word, words); + char[] arr = word.toCharArray(); + for (int i = 0; i < word.length(); i++) { + char temp = arr[i]; + arr[i] = '*'; + String path = new String(arr); + arr[i] = temp; + List pathWords = pathMap.get(path); + if (pathWords == null) { + pathWords = new LinkedList<>(); + pathMap.put(path, pathWords); + } else { + words.addAll(pathWords); + for (String nextWord : pathWords) { + wordMap.get(nextWord).add(word); + } + } + pathWords.add(word); + } + } + + if (!wordMap.containsKey(endWord)) { + return 0; + } + + Set beginSet = new HashSet<>(); + char[] arr = beginWord.toCharArray(); + for (int i = 0; i < beginWord.length(); i++) { + char temp = arr[i]; + arr[i] = '*'; + String pathWord = new String(arr); + arr[i] = temp; + List words; + if ((words = pathMap.get(pathWord)) != null) { + beginSet.addAll(words); + } + } + + Set endSet = new HashSet<>(); + endSet.add(endWord); + + Set meets = new HashSet<>(wordList); + + int step = 1; + while (!beginSet.isEmpty() && !endSet.isEmpty()) { + step ++; + Set temp = new HashSet<>(); + for (String word : endSet) { + if (beginSet.contains(word)) { + return step; + } + meets.remove(word); + for (String nextWord : wordMap.get(word)) { + if (meets.contains(nextWord)) { + temp.add(nextWord); + } + } + } + + if (temp.size() > beginSet.size()) { + endSet = temp; + } else { + endSet = beginSet; + beginSet = temp; + } + } + + return 0; + } + + private int path11(String beginWord, String endWord, List wordList) { + if (wordList == null || wordList.size() == 0) return 0; + HashSet start = new HashSet<>(); + HashSet end = new HashSet<>(); + HashSet dic = new HashSet<>(wordList); + start.add(beginWord); + end.add(endWord); + if (!dic.contains(endWord)) return 0; + return bfs(start, end, dic, 2); + } + + private int bfs(HashSet st, HashSet ed, HashSet dic, int l) { + //双端查找的时候,若是有任意一段出现了“断裂”,也就是说明不存在能够连上的路径,则直接返回0 + if (st.size() == 0) return 0; + if (st.size() > ed.size()) {//双端查找,为了优化时间,永远用少的去找多的,比如开始的时候塞进了1000个,而结尾只有3个,则肯定是从少的那一端开始走比较好 + return bfs(ed, st, dic, l); + } + //BFS的标记行为,即使用过的不重复使用 + dic.removeAll(st); + //收集下一层临近点 + HashSet next = new HashSet<>(); + for (String s : st) { + char[] arr = s.toCharArray(); + for (int i = 0; i < arr.length; i++) { + char tmp = arr[i]; + for (char c = 'a'; c <= 'z'; c++) { + if (tmp == c) continue; + arr[i] = c ; + String nstr = new String(arr); + if (dic.contains(nstr)) { + if (ed.contains(nstr)) return l; + else next.add(nstr); + } + } + arr[i] = tmp; + } + } + return bfs(next, ed, dic, l + 1); + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_466/LeetCode_153_466.java b/Week 03/id_466/LeetCode_153_466.java new file mode 100644 index 000000000..421510aee --- /dev/null +++ b/Week 03/id_466/LeetCode_153_466.java @@ -0,0 +1,84 @@ +//假设按照升序排序的数组在预先未知的某个点上进行了旋转。 +// +// ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 +// +// 请找出其中最小的元素。 +// +// 你可以假设数组中不存在重复元素。 +// +// 示例 1: +// +// 输入: [3,4,5,1,2] +//输出: 1 +// +// 示例 2: +// +// 输入: [4,5,6,7,0,1,2] +//输出: 0 +// Related Topics 数组 二分查找 +package com.aseara.leetcode.editor.cn.a153; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * desc: 153.寻找旋转排序数组中的最小值
+ * Date: 2019/11/3
+ * + * @author qiujingde + */ +class FindMinimumInRotatedSortedArray { + private Solution solution = new Solution(); + + @Test + void test1() { + int[] test = new int[] {3,4,5,1,2}; + assertEquals(1, solution.findMin(test)); + + test = new int[] {4,5,6,7,0,1,2}; + assertEquals(0, solution.findMin(test)); + + test = new int[] {1,2,3}; + assertEquals(1, solution.findMin(test)); + } + +} + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public int findMin(int[] nums) { + int index = binarySearch(nums, 0, nums.length - 1); + return nums[index]; + } + + private int binarySearch(int[] nums, int start, int end) { + if (start == end) { + return end; + } + + if (end - start == 1) { + if (nums[start] > nums[end]) { + return end; + } + return 0; + } + + int mid = start + (end - start) / 2; + // 从 mid 到 end 正序 + if (nums[mid] < nums[end]) { + if (nums[mid - 1] > nums[mid]) { + return mid; + } + end = mid - 1; + } else { + if (nums[mid] > nums[mid + 1]) { + return mid + 1; + } + start = mid + 1; + } + return binarySearch(nums, start, end); + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_466/LeetCode_200_466.java b/Week 03/id_466/LeetCode_200_466.java new file mode 100644 index 000000000..8530ec96c --- /dev/null +++ b/Week 03/id_466/LeetCode_200_466.java @@ -0,0 +1,99 @@ +//给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 +// +// 示例 1: +// +// 输入: +//11110 +//11010 +//11000 +//00000 +// +//输出: 1 +// +// +// 示例 2: +// +// 输入: +//11000 +//11000 +//00100 +//00011 +// +//输出: 3 +// +// Related Topics 深度优先搜索 广度优先搜索 并查集 +package com.aseara.leetcode.editor.cn.a200; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * desc: 200.岛屿数量
+ * Date: 2019/11/3
+ * + * @author qiujingde + */ +class NumberOfIslands { + private Solution solution = new Solution(); + + @Test + void test1() { + char[][] island = new char[][] { + new char[] {'1','1','1','1','0'}, + new char[] {'1','1','0','1','0'}, + new char[] {'1','1','0','0','0'}, + new char[] {'0','0','0','0','0'} + }; + assertEquals(1, solution.numIslands(island)); + + island = new char[][] { + new char[] {'1','1','0','0','0'}, + new char[] {'1','1','0','0','0'}, + new char[] {'0','0','1','0','0'}, + new char[] {'0','0','0','1','1'} + }; + assertEquals(3, solution.numIslands(island)); + } + +} + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + + public int numIslands(char[][] grid) { + int cnt = 0; + for (int i = 0; i < grid.length; i++) { + for (int j = 0; j < grid[i].length; j++) { + if (grid[i][j] == '1') { + cnt ++; + destroyIsland(grid, i, j); + } + } + } + return cnt; + } + + private void destroyIsland(char[][] grid, int x, int y) { + grid[x][y] = '0'; + + if (x - 1 >= 0 && grid[x - 1][y] == '1') { + destroyIsland(grid, x - 1, y); + } + + if (x + 1 < grid.length && grid[x + 1][y] == '1') { + destroyIsland(grid, x + 1, y); + } + + if (y - 1 >= 0 && grid[x][y - 1] == '1') { + destroyIsland(grid, x, y - 1); + } + + if (y + 1 < grid[x].length && grid[x][y + 1] == '1') { + destroyIsland(grid, x, y + 1); + } + } + +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_466/LeetCode_860_466.java b/Week 03/id_466/LeetCode_860_466.java new file mode 100644 index 000000000..a937ddaab --- /dev/null +++ b/Week 03/id_466/LeetCode_860_466.java @@ -0,0 +1,115 @@ +//在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 +// +// 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 +// +// 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 +// +// 注意,一开始你手头没有任何零钱。 +// +// 如果你能给每位顾客正确找零,返回 true ,否则返回 false 。 +// +// 示例 1: +// +// 输入:[5,5,5,10,20] +//输出:true +//解释: +//前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。 +//第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。 +//第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。 +//由于所有客户都得到了正确的找零,所以我们输出 true。 +// +// +// 示例 2: +// +// 输入:[5,5,10] +//输出:true +// +// +// 示例 3: +// +// 输入:[10,10] +//输出:false +// +// +// 示例 4: +// +// 输入:[5,5,10,10,20] +//输出:false +//解释: +//前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。 +//对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。 +//对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。 +//由于不是每位顾客都得到了正确的找零,所以答案是 false。 +// +// +// +// +// 提示: +// +// +// 0 <= bills.length <= 10000 +// bills[i] 不是 5 就是 10 或是 20 +// +// Related Topics 贪心算法 +package com.aseara.leetcode.editor.cn.a860; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * desc: 860.柠檬水找零
+ * Date: 2019/11/3
+ * + * @author qiujingde + */ +class LemonadeChange { + private Solution solution = new Solution(); + + @Test + void test1() { + assertTrue(solution.lemonadeChange(new int[] {5,5,5,10,20})); + assertTrue(solution.lemonadeChange(new int[] {5,5,10})); + assertFalse(solution.lemonadeChange(new int[] {10,10})); + assertFalse(solution.lemonadeChange(new int[] {5,5,10,10,20})); + } + +} + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public boolean lemonadeChange(int[] bills) { + // 各种钱的数量 5 10 20 + int[] cnt = new int[2]; + + for (int bill : bills) { + if (bill == 5) { + cnt[0] ++; + } else if (bill == 10) { + if (cnt[0] == 0) { + return false; + } + cnt[0] --; + cnt[1] ++; + } else if (bill == 20) { + if (cnt[0] == 0) { + return false; + } + if (cnt[0] < 3 && cnt[1] == 0) { + return false; + } + if (cnt[1] > 0) { + cnt[1] --; + cnt[0] --; + } else { + cnt[0] = cnt[0] -3; + } + } + } + + return true; + } +} +//leetcode submit region end(Prohibit modification and deletion) From 5e75c248831350238e21664aaeaf30b37067d9cf Mon Sep 17 00:00:00 2001 From: shniu Date: Sun, 3 Nov 2019 21:19:42 +0800 Subject: [PATCH 127/740] =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_716/NOTE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Week 03/id_716/NOTE.md b/Week 03/id_716/NOTE.md index 72dc7d516..fec01631a 100644 --- a/Week 03/id_716/NOTE.md +++ b/Week 03/id_716/NOTE.md @@ -198,6 +198,7 @@ public class ActivitySelection { 3. 最短路径:Dijkstra 算法 以上都是贪心算法的一些典型的实际应用,每一个总结起来都需要花费大量的精力,留在以后慢慢分析,在这里立一个 Flag. +此外,将贪心算法和动态规划放在一起做对比,放在学习完动态规划后的总结中。 #### 相关题目练习 From 0a94d763d9f3177271a185cf83f512a5e9bbc072 Mon Sep 17 00:00:00 2001 From: KarsonWu <32958671+KarsonWu@users.noreply.github.com> Date: Sun, 3 Nov 2019 21:21:41 +0800 Subject: [PATCH 128/740] 196-Week 03 --- Week 03/id_196/LeetCode_122_196.py | 8 ++++ Week 03/id_196/LeetCode_126_196.py | 36 ++++++++++++++++++ Week 03/id_196/LeetCode_127_196.py | 25 +++++++++++++ Week 03/id_196/LeetCode_33_196.py | 59 ++++++++++++++++++++++++++++++ Week 03/id_196/LeetCode_74_196.py | 22 +++++++++++ Week 03/id_196/LeetCode_860_196.py | 20 ++++++++++ 6 files changed, 170 insertions(+) create mode 100644 Week 03/id_196/LeetCode_122_196.py create mode 100644 Week 03/id_196/LeetCode_126_196.py create mode 100644 Week 03/id_196/LeetCode_127_196.py create mode 100644 Week 03/id_196/LeetCode_33_196.py create mode 100644 Week 03/id_196/LeetCode_74_196.py create mode 100644 Week 03/id_196/LeetCode_860_196.py diff --git a/Week 03/id_196/LeetCode_122_196.py b/Week 03/id_196/LeetCode_122_196.py new file mode 100644 index 000000000..a2715705b --- /dev/null +++ b/Week 03/id_196/LeetCode_122_196.py @@ -0,0 +1,8 @@ +class Solution: + def maxProfit(self, prices: List[int]) -> int: + profit = 0 + for i in range(1, len(prices)): + tmp = prices[i] - prices[i - 1] + if tmp > 0: profit += tmp + return profit + diff --git a/Week 03/id_196/LeetCode_126_196.py b/Week 03/id_196/LeetCode_126_196.py new file mode 100644 index 000000000..d33872eec --- /dev/null +++ b/Week 03/id_196/LeetCode_126_196.py @@ -0,0 +1,36 @@ +class Solution(object): + def findLadders(self, beginWord, endWord, wordList): + """ + :type beginWord: str + :type endWord: str + :type wordList: List[str] + :rtype: List[List[str]] + """ + + def backtrack(res, routine, path, endWord): + if len(routine[endWord]) == 0: + res.append([endWord] + path) + else: + for pre in routine[endWord]: + backtrack(res, routine, [endWord] + path, pre) + + lookup = set(wordList) | set([beginWord]) + res, cur, routine = [], set([beginWord]), {word: [] for word in lookup} + while cur and endWord not in cur: + next_queue = set() + for word in cur: + lookup.remove(word) + for word in cur: + for i in range(len(word)): + for j in range(97, 123): + tmp = word[:i] + chr(j) + word[i + 1:] + if tmp in lookup: + next_queue.add(tmp) + routine[tmp].append(word) + cur = next_queue + + if cur: + backtrack(res, routine, [], endWord) + return res + + diff --git a/Week 03/id_196/LeetCode_127_196.py b/Week 03/id_196/LeetCode_127_196.py new file mode 100644 index 000000000..cc8921f52 --- /dev/null +++ b/Week 03/id_196/LeetCode_127_196.py @@ -0,0 +1,25 @@ +class Solution: + def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: + if endWord not in wordList: + return 0 + wordict = set(wordList) + s1 = {beginWord} + s2 = {endWord} + n = len(beginWord) + step = 0 + wordict.remove(endWord) + while s1 and s2: + step += 1 + if len(s1) > len(s2): s1, s2 = s2, s1 + s = set() + for word in s1: + nextword = [word[:i] + chr(j) + word[i + 1:] for j in range(97, 123) for i in range(n)] + for w in nextword: + if w in s2: + return step + 1 + if w not in wordict: continue + wordict.remove(w) + s.add(w) + s1 = s + return 0 + diff --git a/Week 03/id_196/LeetCode_33_196.py b/Week 03/id_196/LeetCode_33_196.py new file mode 100644 index 000000000..516305be9 --- /dev/null +++ b/Week 03/id_196/LeetCode_33_196.py @@ -0,0 +1,59 @@ +class Solution: + def search(self, nums, target): + """ + :type nums: List[int] + :type target: int + :rtype: int + """ + + def find_rotate_index(left, right): + if nums[left] < nums[right]: + return 0 + + while left <= right: + pivot = (left + right) // 2 + if nums[pivot] > nums[pivot + 1]: + return pivot + 1 + else: + if nums[pivot] < nums[left]: + right = pivot - 1 + else: + left = pivot + 1 + + def search(left, right): + """ + Binary search + """ + while left <= right: + pivot = (left + right) // 2 + if nums[pivot] == target: + return pivot + else: + if target < nums[pivot]: + right = pivot - 1 + else: + left = pivot + 1 + return -1 + + n = len(nums) + + if n == 0: + return -1 + if n == 1: + return 0 if nums[0] == target else -1 + + rotate_index = find_rotate_index(0, n - 1) + + # if target is the smallest element + if nums[rotate_index] == target: + return rotate_index + # if array is not rotated, search in the entire array + if rotate_index == 0: + return search(0, n - 1) + if target < nums[0]: + # search on the right side + return search(rotate_index, n - 1) + # search on the left side + return search(0, rotate_index) + + diff --git a/Week 03/id_196/LeetCode_74_196.py b/Week 03/id_196/LeetCode_74_196.py new file mode 100644 index 000000000..73a199e14 --- /dev/null +++ b/Week 03/id_196/LeetCode_74_196.py @@ -0,0 +1,22 @@ +class Solution: + def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: + m = len(matrix) + if m == 0: + return False + n = len(matrix[0]) + + # 二分查找 + left, right = 0, m * n - 1 + while left <= right: + pivot_idx = (left + right) // 2 + pivot_element = matrix[pivot_idx // n][pivot_idx % n] + if target == pivot_element: + return True + else: + if target < pivot_element: + right = pivot_idx - 1 + else: + left = pivot_idx + 1 + return False + + diff --git a/Week 03/id_196/LeetCode_860_196.py b/Week 03/id_196/LeetCode_860_196.py new file mode 100644 index 000000000..a85b72266 --- /dev/null +++ b/Week 03/id_196/LeetCode_860_196.py @@ -0,0 +1,20 @@ +class Solution(object): #aw + def lemonadeChange(self, bills): + five = ten = 0 + for bill in bills: + if bill == 5: + five += 1 + elif bill == 10: + if not five: return False + five -= 1 + ten += 1 + else: + if ten and five: + ten -= 1 + five -= 1 + elif five >= 3: + five -= 3 + else: + return False + return True + From 61a0018f793fc966203c8a263b4b14d6edece3d6 Mon Sep 17 00:00:00 2001 From: show Date: Sun, 3 Nov 2019 21:21:53 +0800 Subject: [PATCH 129/740] 566-Week 03 --- Week 03/id_566/leetcode_33_566.php | 38 +++++++++++++++++++++++++++++ Week 03/id_566/leetcode_455_566.php | 35 ++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 Week 03/id_566/leetcode_33_566.php create mode 100644 Week 03/id_566/leetcode_455_566.php diff --git a/Week 03/id_566/leetcode_33_566.php b/Week 03/id_566/leetcode_33_566.php new file mode 100644 index 000000000..dbace9e69 --- /dev/null +++ b/Week 03/id_566/leetcode_33_566.php @@ -0,0 +1,38 @@ += $nums[$start] && $target < $nums[$mid]){ + $end = $mid - 1; + }else{ + $start = $mid + 1; + } + }else{ + if($target > $nums[$mid] && $target <= $nums[$end]){ + $start = $mid + 1; + }else{ + $end = $mid - 1; + } + } + } + return -1; + } +} +?> \ No newline at end of file diff --git a/Week 03/id_566/leetcode_455_566.php b/Week 03/id_566/leetcode_455_566.php new file mode 100644 index 000000000..5566fd89f --- /dev/null +++ b/Week 03/id_566/leetcode_455_566.php @@ -0,0 +1,35 @@ += gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 + +class Solution { + + /** + * @param Integer[] $g + * @param Integer[] $s + * @return Integer + */ + function findContentChildren($childrens, $cookies) { + $sum = 0; + //实际可以不用php的sort,自己写一个sort的函数 + sort($childrens); + sort($cookies); + foreach($cookies as $cookies_num => $cookie) + { + foreach($childrens as $children_num => $children) + { + if($cookie >= $children) + { + $sum++; + unset($childrens[$children_num]); + break; + } + } + } + return $sum; + } +} +?> \ No newline at end of file From a39edf56b42efc4da64daaccf3ed6ac5c3c2fc72 Mon Sep 17 00:00:00 2001 From: yanglibin Date: Sun, 3 Nov 2019 21:32:24 +0800 Subject: [PATCH 130/740] Week 03 --- .idea/misc.xml | 4 ++ Week 02/id_091/LeetCode_242_091.py | 30 ++++++----- Week 03/id_091/Leetcode_122_091.py | 18 +++++++ Week 03/id_091/Leetcode_127_091.py | 36 ++++++++++++++ Week 03/id_091/Leetcode_200_02_091.py | 56 +++++++++++++++++++++ Week 03/id_091/Leetcode_200_091.py | 71 +++++++++++++++++++++++++++ 6 files changed, 202 insertions(+), 13 deletions(-) create mode 100644 .idea/misc.xml create mode 100644 Week 03/id_091/Leetcode_122_091.py create mode 100644 Week 03/id_091/Leetcode_127_091.py create mode 100644 Week 03/id_091/Leetcode_200_02_091.py create mode 100644 Week 03/id_091/Leetcode_200_091.py diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 000000000..c998f3dc0 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Week 02/id_091/LeetCode_242_091.py b/Week 02/id_091/LeetCode_242_091.py index c6e0a0f3d..0d14e7d34 100644 --- a/Week 02/id_091/LeetCode_242_091.py +++ b/Week 02/id_091/LeetCode_242_091.py @@ -5,25 +5,29 @@ def isAnagram(self, s: str, t: str) -> bool: dic1[item] = dic1.get(item, 0) + 1 for item in t: dic2[item] = dic2.get(item, 0) + 1 + #print(dic1, dic2) {'a': 3, 'n': 1, 'g': 1, 'r': 1, 'm': 1} {'n': 1, 'a': 3, 'g': 1, 'r': 1, 'm': 1} return dic1 == dic2 + def isAnagram2(self, s, t): + dic1, dic2 = [0] * 26, [0] * 26 + print(dic1, dic2) + for item in s: + dic1[ord(item) - ord('a')] += 1 + for item in t: + dic2[ord(item) - ord('a')] += 1 + #print(dic1, dic2) [3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0] [3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0] + print(dic1, dic2) + return dic1 == dic2 -def isAnagram2(self, s, t): - dic1, dic2 = [0] * 26, [0] * 26 - for item in s: - dic1[ord(item) - ord('a')] += 1 - for item in t: - dic2[ord(item) - ord('a')] += 1 - return dic1 == dic2 - + def isAnagram3(self, s, t): + #print(sorted(s), sorted(t))['a', 'a', 'a', 'g', 'm', 'n', 'r'] ['a', 'a', 'a', 'g', 'm', 'n', 'r'] -def isAnagram3(self, s, t): - return sorted(s) == sorted(t) + return sorted(s) == sorted(t) if __name__ == '__main__': - s = "anagram" - t = "nagaram" + s = "a" + t = "n" solution = Solution() - res = solution.isAnagram(s, t) + res = solution.isAnagram2(s, t) print(res) diff --git a/Week 03/id_091/Leetcode_122_091.py b/Week 03/id_091/Leetcode_122_091.py new file mode 100644 index 000000000..205694753 --- /dev/null +++ b/Week 03/id_091/Leetcode_122_091.py @@ -0,0 +1,18 @@ +from typing import List + + +class Solution: + #只要第二天的利润大于第一天就买进 + def maxProfit(self, prices: List[int]) -> int: + profit = 0 + for i in range(0, len(prices)-1): + tmp = prices[i+1] - prices[i] + if tmp > 0: profit += tmp + return profit + + +if __name__ == '__main__': + solution = Solution() + priceList = [7,1,5,3,6,4,8] + res = solution.maxProfit(priceList) + print(res) diff --git a/Week 03/id_091/Leetcode_127_091.py b/Week 03/id_091/Leetcode_127_091.py new file mode 100644 index 000000000..58b44e5c4 --- /dev/null +++ b/Week 03/id_091/Leetcode_127_091.py @@ -0,0 +1,36 @@ +from typing import List + + +class Solution: + def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: + if endWord not in wordList: + return 0 + wordict = set(wordList) + s1 = {beginWord} + s2 = {endWord} + n = len(beginWord) + step = 0 + wordict.remove(endWord) + while s1 and s2: + step += 1 + if len(s1) > len(s2): s1, s2 = s2, s1 + s = set() + for word in s1: + nextword = [word[:i] + chr(j) + word[i + 1:] for j in range(97, 123) for i in range(n)] + for w in nextword: + if w in s2: + return step + 1 + if w not in wordict: continue + wordict.remove(w) + s.add(w) + s1 = s + return 0 + + +if __name__ == '__main__': + solution = Solution() + beginWord = "hit" + endWord = "cog" + wordList = ["hot", "dot", "dog", "lot", "log", "cog"] + res = solution.ladderLength(beginWord, endWord, wordList) + print(res) diff --git a/Week 03/id_091/Leetcode_200_02_091.py b/Week 03/id_091/Leetcode_200_02_091.py new file mode 100644 index 000000000..c2efd5acd --- /dev/null +++ b/Week 03/id_091/Leetcode_200_02_091.py @@ -0,0 +1,56 @@ +from typing import List +from collections import deque + + +class Solution: + # x-1,y + # x,y-1 x,y x,y+1 + # x+1,y + # 方向数组,它表示了相对于当前位置的 4 个方向的横、纵坐标的偏移量,这是一个常见的技巧 + directions = [(-1, 0), (0, -1), (1, 0), (0, 1)] + + def numIslands(self, grid: List[List[str]]) -> int: + m = len(grid) + if m == 0: + return 0 + n = len(grid[0]) + marked = [[False for _ in range(n)] for _ in range(m)] + count = 0 + # 从第 1 行、第 1 格开始,对每一格尝试进行一次 DFS 操作 + for i in range(m): + for j in range(n): + # 只要是陆地,且没有被访问过的,就可以使用 BFS 发现与之相连的陆地,并进行标记 + if not marked[i][j] and grid[i][j] == '1': + # count 可以理解为连通分量,你可以在广度优先遍历完成以后,再计数, + # 即这行代码放在【位置 1】也是可以的 + count += 1 + queue = deque() + queue.append((i, j)) + # 注意:这里要标记上已经访问过 + marked[i][j] = True + while queue: + cur_x, cur_y = queue.popleft() + # 得到 4 个方向的坐标 + for direction in self.directions: + new_i = cur_x + direction[0] + new_j = cur_y + direction[1] + # 如果不越界、没有被访问过、并且还要是陆地,我就继续放入队列,放入队列的同时,要记得标记已经访问过 + if 0 <= new_i < m and 0 <= new_j < n and not marked[new_i][new_j] and grid[new_i][ + new_j] == '1': + queue.append((new_i, new_j)) + # 【特别注意】在放入队列以后,要马上标记成已经访问过,语义也是十分清楚的:反正只要进入了队列,你迟早都会遍历到它 + # 而不是在出队列的时候再标记 + # 【特别注意】如果是出队列的时候再标记,会造成很多重复的结点进入队列,造成重复的操作,这句话如果你没有写对地方,代码会严重超时的 + marked[new_i][new_j] = True + # 【位置 1】 + return count + + +if __name__ == '__main__': + grid = [['1', '1', '1', '1', '0'], + ['1', '1', '0', '1', '0'], + ['1', '1', '0', '0', '0'], + ['0', '0', '0', '0', '0']] + solution = Solution() + result = solution.numIslands(grid) + print(result) diff --git a/Week 03/id_091/Leetcode_200_091.py b/Week 03/id_091/Leetcode_200_091.py new file mode 100644 index 000000000..e51d17c98 --- /dev/null +++ b/Week 03/id_091/Leetcode_200_091.py @@ -0,0 +1,71 @@ +from collections import deque +from typing import List + + +class Solution: + # x-1,y + # x,y-1 x,y x,y+1 + # x+1,y + # 方向数组,表示相对于当前位置的 4 个方向的横、纵坐标的偏移量 + directions = [(-1, 0), (0, -1), (1, 0), (0, 1)] + + def numIslands(self, grid: List[List[str]]) -> int: + m = len(grid) + if m == 0: + return 0 + n = len(grid[0]) + marked = [[False for _ in range(n)] for _ in range(m)] + count = 0 + for i in range(m): + for j in range(n): + # 只要是陆地,且没有被访问过的,就可以使用 DFS 发现与之相连的陆地,并进行标记 + if not marked[i][j] and grid[i][j] == '1': + count += 1 + self.__dfs(grid, i, j, m, n, marked) + return count + + def __dfs(self, grid, i, j, m, n, marked): + marked[i][j] = True + for direction in self.directions: + new_i = i + direction[0] + new_j = j + direction[1] + if 0 <= new_i < m and 0 <= new_j < n and not marked[new_i][new_j] and grid[new_i][new_j] == '1': + self.__dfs(grid, new_i, new_j, m, n, marked) + + def numIslands2(self, grid: List[List[str]]) -> int: + m = len(grid) + if m == 0: + return 0 + n = len(grid[0]) + marked = [[False for _ in range(n)] for _ in range(m)] + count = 0 + for i in range(m): + for j in range(n): + # 只要是陆地,且没有被访问过的,就可以使用 BFS 发现与之相连的陆地,并进行标记 + if not marked[i][j] and grid[i][j] == '1': + count += 1 + queue = deque() + queue.append((i, j)) + # 已经访问过 + marked[i][j] = True + while queue: + cur_x, cur_y = queue.popleft() + # 得到 4 个方向的坐标 + for direction in self.directions: + new_i = cur_x + direction[0] + new_j = cur_y + direction[1] + # 如果不越界、没有被访问过、并且还要是陆地,就继续放入队列,放入队列的同时,标记已经访问过 + if 0 <= new_i < m and 0 <= new_j < n and not marked[new_i][new_j] and grid[new_i][ + new_j] == '1': + queue.append((new_i, new_j)) + return count + + +if __name__ == '__main__': + grid = [['1', '1', '1', '1', '0'], + ['1', '1', '0', '1', '0'], + ['1', '1', '0', '0', '0'], + ['0', '0', '0', '0', '0']] + solution = Solution() + result = solution.numIslands2(grid) + print(result) From 481dd85452edb57190071a3d47879297a3d7147a Mon Sep 17 00:00:00 2001 From: yanglibin Date: Sun, 3 Nov 2019 21:32:43 +0800 Subject: [PATCH 131/740] Week 03 --- Week 03/id_091/Leetcode_200_02_091.py | 56 --------------------------- 1 file changed, 56 deletions(-) delete mode 100644 Week 03/id_091/Leetcode_200_02_091.py diff --git a/Week 03/id_091/Leetcode_200_02_091.py b/Week 03/id_091/Leetcode_200_02_091.py deleted file mode 100644 index c2efd5acd..000000000 --- a/Week 03/id_091/Leetcode_200_02_091.py +++ /dev/null @@ -1,56 +0,0 @@ -from typing import List -from collections import deque - - -class Solution: - # x-1,y - # x,y-1 x,y x,y+1 - # x+1,y - # 方向数组,它表示了相对于当前位置的 4 个方向的横、纵坐标的偏移量,这是一个常见的技巧 - directions = [(-1, 0), (0, -1), (1, 0), (0, 1)] - - def numIslands(self, grid: List[List[str]]) -> int: - m = len(grid) - if m == 0: - return 0 - n = len(grid[0]) - marked = [[False for _ in range(n)] for _ in range(m)] - count = 0 - # 从第 1 行、第 1 格开始,对每一格尝试进行一次 DFS 操作 - for i in range(m): - for j in range(n): - # 只要是陆地,且没有被访问过的,就可以使用 BFS 发现与之相连的陆地,并进行标记 - if not marked[i][j] and grid[i][j] == '1': - # count 可以理解为连通分量,你可以在广度优先遍历完成以后,再计数, - # 即这行代码放在【位置 1】也是可以的 - count += 1 - queue = deque() - queue.append((i, j)) - # 注意:这里要标记上已经访问过 - marked[i][j] = True - while queue: - cur_x, cur_y = queue.popleft() - # 得到 4 个方向的坐标 - for direction in self.directions: - new_i = cur_x + direction[0] - new_j = cur_y + direction[1] - # 如果不越界、没有被访问过、并且还要是陆地,我就继续放入队列,放入队列的同时,要记得标记已经访问过 - if 0 <= new_i < m and 0 <= new_j < n and not marked[new_i][new_j] and grid[new_i][ - new_j] == '1': - queue.append((new_i, new_j)) - # 【特别注意】在放入队列以后,要马上标记成已经访问过,语义也是十分清楚的:反正只要进入了队列,你迟早都会遍历到它 - # 而不是在出队列的时候再标记 - # 【特别注意】如果是出队列的时候再标记,会造成很多重复的结点进入队列,造成重复的操作,这句话如果你没有写对地方,代码会严重超时的 - marked[new_i][new_j] = True - # 【位置 1】 - return count - - -if __name__ == '__main__': - grid = [['1', '1', '1', '1', '0'], - ['1', '1', '0', '1', '0'], - ['1', '1', '0', '0', '0'], - ['0', '0', '0', '0', '0']] - solution = Solution() - result = solution.numIslands(grid) - print(result) From b61adb80d97e585a8f27301626cc47695dbfaa33 Mon Sep 17 00:00:00 2001 From: cotijoy Date: Sun, 3 Nov 2019 21:35:07 +0800 Subject: [PATCH 132/740] week 03 --- Week 03/id_366/Leetcode_127_366.java | 46 ++++++++++++++++++++++++++++ Week 03/id_366/Leetcode_200_366.java | 46 ++++++++++++++++++++++++++++ Week 03/id_366/Leetcode_33_366.java | 38 +++++++++++++++++++++++ Week 03/id_366/Leetcode_860_366.java | 30 ++++++++++++++++++ 4 files changed, 160 insertions(+) create mode 100644 Week 03/id_366/Leetcode_127_366.java create mode 100644 Week 03/id_366/Leetcode_200_366.java create mode 100644 Week 03/id_366/Leetcode_33_366.java create mode 100644 Week 03/id_366/Leetcode_860_366.java diff --git a/Week 03/id_366/Leetcode_127_366.java b/Week 03/id_366/Leetcode_127_366.java new file mode 100644 index 000000000..210ddcac2 --- /dev/null +++ b/Week 03/id_366/Leetcode_127_366.java @@ -0,0 +1,46 @@ +/* + * @lc app=leetcode.cn id=127 lang=java + * + * [127] 单词接龙 + */ + +// @lc code=start +class Solution { + public int ladderLength(String beginWord, String endWord, List wordList) { + Map map = new HashMap<>(); + for (int i = 0; i < wordList.size(); i++) { + map.put(wordList.get(i), wordList.get(i)); + } + if ( !map.containsKey(endWord)) return 0; + //Queue queue = new ArrayList(); ArrayList没有实现Queue + Queue queue = new LinkedList(); + queue.offer(beginWord); + int ladder = 1; + while (queue.size() != 0) { + int n = queue.size(); + for (int i = 0; i < n; i++) { + String processWord = queue.poll(); + char[] chars = processWord.toCharArray(); + if(processWord.equals(endWord)){ + return ladder; + } + map.remove(processWord); + for (int j = 0; j < chars.length; j++) { + char currentChar = chars[j]; + for (char c = 'a'; c <= 'z'; c++) { + chars[j] = c; + String temp = String.valueOf(chars); + if (map.containsKey(temp) && map.get(temp) != endWord) { + queue.offer(temp); + } + } + chars[j] = currentChar; + } + } + ladder ++; + } + return 0; + } +} +// @lc code=end + diff --git a/Week 03/id_366/Leetcode_200_366.java b/Week 03/id_366/Leetcode_200_366.java new file mode 100644 index 000000000..0ea747423 --- /dev/null +++ b/Week 03/id_366/Leetcode_200_366.java @@ -0,0 +1,46 @@ +/* + * @lc app=leetcode.cn id=200 lang=java + * + * [200] 岛屿数量 + */ + +// @lc code=start +/** + * 方法一:深度优先遍历 + */ +class Solution { + char[][] grid; + int rows; + int cols; + + public int numIslands(char[][] grid) { + this.grid = grid; + if (grid.length == 0) return 0; + //if (gird == null || grid.length == 0) return 0; + rows = grid.length; + cols = grid[0].length; + int countNum = 0; + for (int i = 0; i < rows; i++) { + for (int j = 0; j < cols; j++) { + countNum += sink(i, j); + } + } + return countNum; + } + + public int sink(int i, int j) { + if (i < 0 || i >= rows || j < 0 || j >= cols || grid[i][j] == '0') { + return 0; + } + grid[i][j] = '0'; + sink(i-1, j); + sink(i+1, j); + sink(i, j+1); + sink(i, j-1); + return 1; + } + +} + +// @lc code=end + diff --git a/Week 03/id_366/Leetcode_33_366.java b/Week 03/id_366/Leetcode_33_366.java new file mode 100644 index 000000000..9b561685e --- /dev/null +++ b/Week 03/id_366/Leetcode_33_366.java @@ -0,0 +1,38 @@ +/* + * @lc app=leetcode.cn id=33 lang=java + * + * [33] 搜索旋转排序数组 + */ + +// @lc code=start +class Solution { + public int search(int[] nums, int target) { + if (nums == null || nums.length ==0) return -1; + int lo = 0; + int hi = nums.length - 1; + + while (lo <= hi) { + int mid = lo + (hi - lo)/2; + if (nums[mid] == target) return mid; + //前半部分递增 + if (nums[lo] <= nums[mid]) { + //target在前半部分 + if (target >= nums[lo] && target < nums[mid]) { + hi = mid - 1; + } else { + lo = mid + 1; + } + } else { //前半部分含旋转 + //target在后半部分 + if (target > nums[mid] && target <= nums[hi]) { + lo = mid + 1; + } else { + hi = mid - 1; + } + } + } + return -1; + } +} +// @lc code=end + diff --git a/Week 03/id_366/Leetcode_860_366.java b/Week 03/id_366/Leetcode_860_366.java new file mode 100644 index 000000000..80d484e89 --- /dev/null +++ b/Week 03/id_366/Leetcode_860_366.java @@ -0,0 +1,30 @@ +/* + * @lc app=leetcode.cn id=860 lang=java + * + * [860] 柠檬水找零 + */ + +// @lc code=start +class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0; + int ten =0; + for (int i:bills) { + if (i == 5) { //顾客付5元 + five++; + }else if (i == 10) { //顾客付10元 + ten++; + five--; + } else if (ten > 0) { //顾客付20元,并且我们有10块零钱可以找零 + ten--; + five--; + } else { //顾客付20元,但是我们没有10块零钱可以找零 + five -= 3; + } + if (five < 0) return false; + } + return true; + } +} +// @lc code=end + From bd9cd6a3390a9cf31f72f4ac2191687ef3454aff Mon Sep 17 00:00:00 2001 From: laxlyt <1023894388@qq.com> Date: Sun, 3 Nov 2019 21:38:58 +0800 Subject: [PATCH 133/740] week 03 --- Week 03/id_246/LeetCode_122_246.py | 25 +++++++ Week 03/id_246/LeetCode_126_246.py | 90 +++++++++++++++++++++++++ Week 03/id_246/LeetCode_127_246.py | 55 +++++++++++++++ Week 03/id_246/LeetCode_153_246.py | 34 ++++++++++ Week 03/id_246/LeetCode_200_246.py | 104 +++++++++++++++++++++++++++++ Week 03/id_246/LeetCode_33_246.py | 41 ++++++++++++ Week 03/id_246/LeetCode_455_246.py | 36 ++++++++++ Week 03/id_246/LeetCode_45_246.py | 53 +++++++++++++++ Week 03/id_246/LeetCode_529_246.py | 83 +++++++++++++++++++++++ Week 03/id_246/LeetCode_55_246.py | 27 ++++++++ Week 03/id_246/LeetCode_74_246.py | 38 +++++++++++ Week 03/id_246/LeetCode_860_246.py | 43 ++++++++++++ Week 03/id_246/LeetCode_874_246.py | 42 ++++++++++++ Week 03/id_246/NOTE.md | 22 +++++- 14 files changed, 692 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_246/LeetCode_122_246.py create mode 100644 Week 03/id_246/LeetCode_126_246.py create mode 100644 Week 03/id_246/LeetCode_127_246.py create mode 100644 Week 03/id_246/LeetCode_153_246.py create mode 100644 Week 03/id_246/LeetCode_200_246.py create mode 100644 Week 03/id_246/LeetCode_33_246.py create mode 100644 Week 03/id_246/LeetCode_455_246.py create mode 100644 Week 03/id_246/LeetCode_45_246.py create mode 100644 Week 03/id_246/LeetCode_529_246.py create mode 100644 Week 03/id_246/LeetCode_55_246.py create mode 100644 Week 03/id_246/LeetCode_74_246.py create mode 100644 Week 03/id_246/LeetCode_860_246.py create mode 100644 Week 03/id_246/LeetCode_874_246.py diff --git a/Week 03/id_246/LeetCode_122_246.py b/Week 03/id_246/LeetCode_122_246.py new file mode 100644 index 000000000..62ab63d84 --- /dev/null +++ b/Week 03/id_246/LeetCode_122_246.py @@ -0,0 +1,25 @@ +''' +best-time-to-buy-and-sell-stock-ii_122 + +给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 + +设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 + +注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 + +示例: +输入: [7,1,5,3,6,4] +输出: 7 +''' + +def maxProfit(prices): + profit = 0 + for i in range(1, len(prices)): + tmp = prices[i] - prices[i-1] + if tmp > 0: profit += tmp + return profit + + +#优化 +def maxProfit_2(prices): + return sum(max(prices[i+1]-prices[i], 0) for i in range(len(prices) - 1)) \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_126_246.py b/Week 03/id_246/LeetCode_126_246.py new file mode 100644 index 000000000..cae33a480 --- /dev/null +++ b/Week 03/id_246/LeetCode_126_246.py @@ -0,0 +1,90 @@ +''' +word-ladder_126 + +给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: + +每次转换只能改变一个字母。 +转换过程中的中间单词必须是字典中的单词。 +说明: + +如果不存在这样的转换序列,返回一个空列表。 +所有单词具有相同的长度。 +所有单词只由小写字母组成。 +字典中不存在重复的单词。 +你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 +示例 1: + +输入: +beginWord = "hit", +endWord = "cog", +wordList = ["hot","dot","dog","lot","log","cog"] + +输出: +[ + ["hit","hot","dot","dog","cog"], +  ["hit","hot","lot","log","cog"] +] +''' + +#bfs + dfs +from collections import defaultdict + +def findLadders_1(beginWord, endWord, wordList): + neighbors = defaultdict(list) + for w in wordList: + for i in range(len(w)): + placeholder = w[:i] + '_' + w[i+1:] + neighbors[placeholder] += w + + #bfs + tree = defaultdict(set) + cur_layer = {beginWord} + + while cur_layer and not endWord in cur_layer: + next_layer = defaultdict(set) + for word in cur_layer: + for i in range(len(word)): + placeholder = word[:i] + '_' + word[i+1:] + for neigh in neighbors[placeholder]: + if not neigh in tree: + next_layer[neigh].add(word) + tree.update(next_layer) + cur_layer = next_layer + + #dfs + def dfs(source, dest): + if source == dest: + return [[source]] + return [pre_path + [dest] for parent in tree[dest] for pre_path in dfs(source, parent)] + + return dfs(beginWord,endWord) + + + # 优化 +from collections import defaultdict + +def findLadders_2(beginWord, endWord, wordList): + if endWord not in wordList: return [] + forword, backword, wordList, dic = {beginWord}, {endWord}, set(wordList), defaultdict(set) + flag, letters, length = True, set('qwertyuioplkjhgfdsazxcvbnm'), len(endWord) + while forword: + if len(forword) > len(backword): + forword, backword, flag = backword, forword, not flag + cur = set() + wordList -= forword + for word in forword: + for idx in range(length): + x,y = word[:idx], word[idx+1:] + for letter in letters: + temp = x + letter + y + if temp in wordList: + cur.add(temp) + if flag: dic[temp].add(word) + else: dic[word].add(temp) + if cur&backword: + res = [[endWord]] + while res[0][0] != beginWord: + res = [[x]+y for y in res for x in dic[y[0]]] + return res + forword = cur + return [] \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_127_246.py b/Week 03/id_246/LeetCode_127_246.py new file mode 100644 index 000000000..e704c724c --- /dev/null +++ b/Week 03/id_246/LeetCode_127_246.py @@ -0,0 +1,55 @@ +''' +word-ladder_127 + +给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: + +每次转换只能改变一个字母。 +转换过程中的中间单词必须是字典中的单词。 +说明: + +如果不存在这样的转换序列,返回 0。 +所有单词具有相同的长度。 +所有单词只由小写字母组成。 +字典中不存在重复的单词。 +你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 + +示例: +输入: +beginWord = "hit", +endWord = "cog", +wordList = ["hot","dot","dog","lot","log","cog"] + +输出: 5 + +解释: 一个最短转换序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog", + 返回它的长度 5。 +''' + +#bfs + +from collections import defaultdict + +def ladderLength(beginWord, endWord, wordList): + if endWord not in wordList or not endWord or not beginWord or not wordList: + return 0 + L = len(beginWord) + + all_combo_dict = defaultdict(list) + for word in wordList: + for i in range(L): + all_combo_dict[word[:i]+"*"+word[i+1:]].append(word) + + queue = [(beginWord,1)] + visited = {beginWord:True} + while queue: + current_word, level = queue.pop(0) + for i in range(L): + intermediate_word = current_word[:i] + "*" + current_word[i+1:] + for word in all_combo_dict[intermediate_word]: + if word == endWord: + return level+1 + if word not in visited: + visited[word] = True + queue.append((word, level+1)) + all_combo_dict[intermediate_word] = [] + return 0 \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_153_246.py b/Week 03/id_246/LeetCode_153_246.py new file mode 100644 index 000000000..8cfd43e92 --- /dev/null +++ b/Week 03/id_246/LeetCode_153_246.py @@ -0,0 +1,34 @@ +''' +find-minimum-in-rotated-sorted-array_153 + +假设按照升序排序的数组在预先未知的某个点上进行了旋转。 + +( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 + +请找出其中最小的元素。 + +你可以假设数组中不存在重复元素。 + +示例 1: + +输入: [3,4,5,1,2] +输出: 1 +''' + +def findMin(nums): + l, r = 0, len(nums)-1 + + # 找旋转点 + # 1. 如果某半边数组仍为旋转数组(头元素大于尾元素),则最小值在这半边; + # 2. 如果两半边数组均为有序数组,则最小值为左半边数组的头元素。 + while l < r: + m = (l+r)//2 + if nums[l] >= nums[m] >= nums[r]: #完全逆序 + return nums[r] + elif nums[m] > nums[r]: # 后半边旋转,前半边有序 + l = m+1 + elif nums[l] > nums[m]: # 前半边旋转,后半边有序 + r = m # 没有减1是为了考虑当前元素就是旋转点的情况 + else: # 完全有序(nums[l] < nums[mid] < nums[r]) + return nums[l] + return nums[l] \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_200_246.py b/Week 03/id_246/LeetCode_200_246.py new file mode 100644 index 000000000..ad0e071be --- /dev/null +++ b/Week 03/id_246/LeetCode_200_246.py @@ -0,0 +1,104 @@ +''' +number of islands_200 + +给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 + +示例 1: +输入: +11110 +11010 +11000 +00000 + +输出: 1 + +示例 2: +输入: +11000 +11000 +00100 +00011 + +输出: 3 +''' + +#dfs + +from typing import List + +class Solution: + directions = [(-1,0), (0,-1), (1,0), (0,1)] + + def numIslands(self, grid): + m = len(grid) + if m == 0: return 0 + n = len(grid[0]) + marked = [[False for _ in range(n)] for _ in range(m)] + count = 0 + + for i in range(m): + for j in range(n): + if not marked[i][j] and grid[i][j] == '1': + count += 1 + self.__dfs(grid, i, j, m, n, marked) + return count + + def __dfs(self,grid, i, j, m, n, marked): + marked[i][j] = True + for directions in self.directions: + new_i = i + directions[0] + new_j = j + directions[1] + if 0 <= new_i < m and 0 <= new_j < n and not marked[new_i][new_j] and grid[new_i][new_j] == '1': + self.__dfs(grid, new_i, new_j, m, n, marked) + +grid = [['1', '1', '1', '0', '0'], + ['1', '1', '0', '1', '0'], + ['1', '1', '0', '0', '0'], + ['0', '0', '0', '0', '1']] + +solution = Solution() +result = solution.numIslands(grid) +print(result) + + +#bfs +from typing import List +from collections import deque + +class Solution: + directions = [(-1,0), (0,-1), (1,0), (0,1)] + + def numIslands(self, grid): + m = len(grid) + if m == 0: return 0 + n = len(grid[0]) + marked = [[False for _ in range(n)] for _ in range(m)] + count = 0 + + for i in range(m): + for j in range(n): + if not marked[i][j] and grid[i][j] == '1': + count += 1 + queue = deque() + queue.append((i,j)) + marked[i][j] = True + while queue: + cur_x, cur_y = queue.popleft() + for direction in self.directions: + new_i = cur_x + direction[0] + new_j = cur_y + direction[1] + if 0 <= new_i < m and 0 <= new_j < n and not marked[new_i][new_j] and grid[new_i][new_j] == '1': + queue.append((new_i, new_j)) + marked[new_i][new_j] = True + return count + +grid = [['1', '1', '1', '0', '0'], + ['1', '1', '0', '1', '0'], + ['1', '1', '0', '0', '0'], + ['0', '0', '0', '0', '1']] + +solution = Solution() +result = solution.numIslands(grid) +print(result) + + diff --git a/Week 03/id_246/LeetCode_33_246.py b/Week 03/id_246/LeetCode_33_246.py new file mode 100644 index 000000000..a8e3e8b6c --- /dev/null +++ b/Week 03/id_246/LeetCode_33_246.py @@ -0,0 +1,41 @@ +''' +search-in-rotated-sorted-array_33 + +假设按照升序排序的数组在预先未知的某个点上进行了旋转。 + +( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 + +搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 + +你可以假设数组中不存在重复的元素。 + +你的算法时间复杂度必须是 O(log n) 级别。 + +示例 1: +输入: nums = [4,5,6,7,0,1,2], target = 0 +输出: 4 + +示例 2: +输入: nums = [4,5,6,7,0,1,2], target = 3 +输出: -1 +''' + +#二分 +def search(nums, target): + left, right = 0, len(nums)-1 + mid = (left+right) //2 + + while left <= right: + if nums[mid] == target: + return mid + judge1 = nums[left] < nums[mid] and target < nums[mid] and target >= nums[left] + #半边有序 + judge2 = nums[left] > nums[mid] and (target < nums[mid] or target >= nums[left]) + #半边旋转 + if judge1 or judge2: #半边有序 + right = mid - 1 + mid = (left + right)//2 + else: + left = mid + 1 + mid = (left + right)//2 + return -1 \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_455_246.py b/Week 03/id_246/LeetCode_455_246.py new file mode 100644 index 000000000..88e80ae57 --- /dev/null +++ b/Week 03/id_246/LeetCode_455_246.py @@ -0,0 +1,36 @@ +''' +assign-cookies_455 + +假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 + +注意: + +你可以假设胃口值为正。 +一个小朋友最多只能拥有一块饼干。 + +示例 1: +输入: [1,2,3], [1,1] +输出: 1 + +示例 2: +输入: [1,2], [1,2,3] +输出: 2 + +''' + +def findContentChildren(g,s): #g:胃口, s: 饼干 + res = 0 + g.sort() + s.sort() + g_length = len(g) + s_length = len(s) + i = 0 + j = 0 + while i< g_length and j < s_length: + if g[i] <= s[j]: + res += 1 + i += 1 + j += 1 + else: + j += 1 + return res \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_45_246.py b/Week 03/id_246/LeetCode_45_246.py new file mode 100644 index 000000000..f7b359b3f --- /dev/null +++ b/Week 03/id_246/LeetCode_45_246.py @@ -0,0 +1,53 @@ +''' + +jump-game-ii_45 + +给定一个非负整数数组,你最初位于数组的第一个位置。 + +数组中的每个元素代表你在该位置可以跳跃的最大长度。 + +你的目标是使用最少的跳跃次数到达数组的最后一个位置。 + +示例: + +输入: [2,3,1,1,4] + +输出: 2 + +说明: +假设你总是可以到达数组的最后一个位置。 +''' + +def jump(nums): + last_max_reach, current_max_reach = 0, 0 + njump, i = 0, 0 + while current_max_reach < len(nums)-1: + while i <= last_max_reach: + current_max_reach = max(i+nums[i], current_max_reach) + i += 1 + if last_max_reach == current_max_reach: + return -1 + last_max_reach = current_max_reach + njump += 1 + return njump + + +#优化 +def jump_2(nums): + if len(nums) == 1: + return 0 + cur = 0 + max_jump = 0 + k = nums[0] + tm = 1 + while cur <= max_jump: + max_jump = max(cur+nums[cur], max_jump) + if cur == k: + k = max_jump + tm += 1 + cur +=1 + if max_jump >= len(nums)-1: + if k >= len(nums)-1: + return tm + else: + return tm+1 diff --git a/Week 03/id_246/LeetCode_529_246.py b/Week 03/id_246/LeetCode_529_246.py new file mode 100644 index 000000000..736ee0d4c --- /dev/null +++ b/Week 03/id_246/LeetCode_529_246.py @@ -0,0 +1,83 @@ +''' +minesweeper_529 + +给定一个代表游戏板的二维字符矩阵。 'M' 代表一个未挖出的地雷,'E' 代表一个未挖出的空方块,'B' 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已挖出的方块相邻,'X' 则表示一个已挖出的地雷。 + +现在给出在所有未挖出的方块中('M'或者'E')的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板: + +如果一个地雷('M')被挖出,游戏就结束了- 把它改为 'X'。 +如果一个没有相邻地雷的空方块('E')被挖出,修改它为('B'),并且所有和其相邻的方块都应该被递归地揭露。 +如果一个至少与一个地雷相邻的空方块('E')被挖出,修改它为数字('1'到'8'),表示相邻地雷的数量。 +如果在此次点击中,若无更多方块可被揭露,则返回面板。 +  + +示例 1: + +输入: + +[['E', 'E', 'E', 'E', 'E'], + ['E', 'E', 'M', 'E', 'E'], + ['E', 'E', 'E', 'E', 'E'], + ['E', 'E', 'E', 'E', 'E']] +Click : [3,0] + +输出: +[['B', '1', 'E', '1', 'B'], + ['B', '1', 'M', '1', 'B'], + ['B', '1', '1', '1', 'B'], + ['B', 'B', 'B', 'B', 'B']] + + +示例 2: +输入: + +[['B', '1', 'E', '1', 'B'], + ['B', '1', 'M', '1', 'B'], + ['B', '1', '1', '1', 'B'], + ['B', 'B', 'B', 'B', 'B']] + +Click : [1,2] + +输出: + +[['B', '1', 'E', '1', 'B'], + ['B', '1', 'X', '1', 'B'], + ['B', '1', '1', '1', 'B'], + ['B', 'B', 'B', 'B', 'B']] + +注意: + +输入矩阵的宽和高的范围为 [1,50]。 +点击的位置只能是未被挖出的方块 ('M' 或者 'E'),这也意味着面板至少包含一个可点击的方块。 +输入面板不会是游戏结束的状态(即有地雷已被挖出)。 +简单起见,未提及的规则在这个问题中可被忽略。例如,当游戏结束时你不需要挖出所有地雷,考虑所有你可能赢得游戏或标记方块的情况。 +''' + +#dfs + +def updateBoard(board, click): + click = tuple(click) + R,C = len(board), len(board[0]) + + def neighbors(r, c): + for dr in range(-1,2): + for dc in range(-1,2): + if (dr or dc) and 0 <= r + dr < R and 0 <= c + dc < C: + yield r+dr, c+dc + stack = [click] + seen = {click} + while stack: + r, c = stack.pop() + if board[r][c] == 'M': + board[r][c] = 'X' + else: + mines_adj = sum( board[nr][nc] in 'MX' for nr, nc in neighbors(r, c) ) + if mines_adj: + board[r][c] = str(mines_adj) + else: + board[r][c] = 'B' + for nei in neighbors(r, c): + if board[nei[0]][nei[1]] in 'ME' and nei not in seen: + stack.append(nei) + seen.add(nei) + return board \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_55_246.py b/Week 03/id_246/LeetCode_55_246.py new file mode 100644 index 000000000..27b9bb28e --- /dev/null +++ b/Week 03/id_246/LeetCode_55_246.py @@ -0,0 +1,27 @@ +''' +jump-game_55 + +给定一个非负整数数组,你最初位于数组的第一个位置。 + +数组中的每个元素代表你在该位置可以跳跃的最大长度。 + +判断你是否能够到达最后一个位置。 + +示例 1: +输入: [2,3,1,1,4] +输出: true +解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 + +示例 2: +输入: [3,2,1,0,4] +输出: false +解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。 +''' + +def canJump(nums): + m = 0 #m tells the maximum index we can reach so far. + for i, n in enumerate(nums): + if i > m: + return False + m = max(m, i+n) + return True \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_74_246.py b/Week 03/id_246/LeetCode_74_246.py new file mode 100644 index 000000000..fc88b8e5c --- /dev/null +++ b/Week 03/id_246/LeetCode_74_246.py @@ -0,0 +1,38 @@ +''' +search-a-2d-matrix_74 + +编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: + +每行中的整数从左到右按升序排列。 +每行的第一个整数大于前一行的最后一个整数。 +示例 1: + +输入: +matrix = [ + [1, 3, 5, 7], + [10, 11, 16, 20], + [23, 30, 34, 50] + ] +target = 3 +输出: true + +''' + +def searchMatrix(matrix): + m = len(matrix) + if m == 0: + return False + n = len(matrix[0]) + + left, right = 0, m*n-1 + while left<=right: + pivot_idx = (left+right)//2 + pivot_element = matrix[pivot_idx//n][pivot_idx%n] + if target == pivot_element: + return True + else: + if target < pivot_element: + right = pivot_idx - 1 + else: + left = pivot_idx + 1 + return False \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_860_246.py b/Week 03/id_246/LeetCode_860_246.py new file mode 100644 index 000000000..e1a170c9c --- /dev/null +++ b/Week 03/id_246/LeetCode_860_246.py @@ -0,0 +1,43 @@ +''' +lemonade-change_860 + +在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 + +顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 + +每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 + +注意,一开始你手头没有任何零钱。 + +如果你能给每位顾客正确找零,返回 true ,否则返回 false 。 + +示例 1: + +输入:[5,5,5,10,20] +输出:true +解释: +前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。 +第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。 +第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。 +由于所有客户都得到了正确的找零,所以我们输出 true。 +''' + + +def lemonadeChange(bills): + five = ten = 0 + for bill in bills: + if bill == 5: + five += 1 + elif bill == 10: + if not five: return False + five -= 1 + ten += 1 + else: + if ten and five: + ten -= 1 + five -= 1 + elif five >= 3: + five -= 3 + else: + return False + return True \ No newline at end of file diff --git a/Week 03/id_246/LeetCode_874_246.py b/Week 03/id_246/LeetCode_874_246.py new file mode 100644 index 000000000..8bb2c454b --- /dev/null +++ b/Week 03/id_246/LeetCode_874_246.py @@ -0,0 +1,42 @@ +''' +walking-robot-simulation_874 + +机器人在一个无限大小的网格上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令: + +-2:向左转 90 度 +-1:向右转 90 度 +1 <= x <= 9:向前移动 x 个单位长度 +在网格上有一些格子被视为障碍物。 + +第 i 个障碍物位于网格点  (obstacles[i][0], obstacles[i][1]) + +如果机器人试图走到障碍物上方,那么它将停留在障碍物的前一个网格方块上,但仍然可以继续该路线的其余部分。 + +返回从原点到机器人的最大欧式距离的平方。 + +示例: + +输入: commands = [4,-1,3], obstacles = [] +输出: 25 +解释: 机器人将会到达 (3, 4) +''' + +def robotSim(commands, obstacles): + dx = [0,1,0,-1] + dy = [1,0,-1,0] + x = y = di = 0 + obstaclesSet = set(map(tuple, obstacles)) + ans = 0 + + for cmd in commands: + if cmd == -2: + di = (di-1)%4 + elif cmd == -1: + di = (di+1)%4 + else: + for k in range(cmd): + if (x+dx[di], y+dy[di]) not in obstaclesSet: + x += dx[di] + y += dy[di] + ans = max(ans, x*x+y*y) + return ans \ No newline at end of file diff --git a/Week 03/id_246/NOTE.md b/Week 03/id_246/NOTE.md index a6321d6e2..2024b4c69 100644 --- a/Week 03/id_246/NOTE.md +++ b/Week 03/id_246/NOTE.md @@ -1,4 +1,24 @@ # NOTE - +第九课: +深度优先搜索(DFS): +1、从根节点开始, 沿着树的分支一直往下找子节点 +2、直到没有子节点, 再往回上一级, 重复第一步 +3、直到所有的子节点都遍历了一遍 +需要熟练掌握内容: DFS模板(递归、非递归写法) +广度优先搜索(BFS): 每个节点仅访问一次 +1、从根节点开始, 沿着树的分支往下找,每层的节点。 +2、每个节点仅访问一次 +3、直到最后一层没有节点的时候结束 +需要熟练掌握内容: BFS模板 + + +第十课: +贪心算法: +1. 每一步选择当前最优解,特定情况下能得到全局最优解 +2. 与动态规划区别:不能回退;动态规划会保存以前的运算结果,具有回退功能 + +第十一课: +二分查找 : +1、前提:目标函数单调;存在上下界;能够通过索引访问; \ No newline at end of file From 227aaba035299b4c2be701bd4618203b8a363b38 Mon Sep 17 00:00:00 2001 From: wzwwwxmly Date: Sun, 3 Nov 2019 21:42:08 +0800 Subject: [PATCH 134/740] week-03 leetcode-153-jsva --- Week 03/id_156/153_java.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Week 03/id_156/153_java.java diff --git a/Week 03/id_156/153_java.java b/Week 03/id_156/153_java.java new file mode 100644 index 000000000..89f0efdb9 --- /dev/null +++ b/Week 03/id_156/153_java.java @@ -0,0 +1,19 @@ +class Solution { + public int findMin(int[] nums) { + //取一个基准值,这里取最右边 + int left = 0; + int right = nums.length - 1; + int mid; + + while (left < right) { + mid = (left + right) / 2; + if (nums[mid] <= nums[right]) { + right = mid; + } else { + left = mid + 1; + } + } + + return nums[right]; + } +} From 34c35e0bea3ccd5c177c067e401a003566a68314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=A5=E4=BA=91?= Date: Sun, 3 Nov 2019 21:43:42 +0800 Subject: [PATCH 135/740] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_641/lesson10/LeetCode_455_641.java | 33 +++++ Week 03/id_641/lesson10/LeetCode_874_641.java | 59 +++++++++ Week 03/id_641/lesson11/LeetCode_33_641.java | 48 ++++++++ Week 03/id_641/lesson11/LeetCode_74_641.java | 38 ++++++ Week 03/id_641/lesson9/LeetCode_127_641.java | 116 ++++++++++++++++++ Week 03/id_641/lesson9/LeetCode_200_641.java | 84 +++++++++++++ 6 files changed, 378 insertions(+) create mode 100644 Week 03/id_641/lesson10/LeetCode_455_641.java create mode 100644 Week 03/id_641/lesson10/LeetCode_874_641.java create mode 100644 Week 03/id_641/lesson11/LeetCode_33_641.java create mode 100644 Week 03/id_641/lesson11/LeetCode_74_641.java create mode 100644 Week 03/id_641/lesson9/LeetCode_127_641.java create mode 100644 Week 03/id_641/lesson9/LeetCode_200_641.java diff --git a/Week 03/id_641/lesson10/LeetCode_455_641.java b/Week 03/id_641/lesson10/LeetCode_455_641.java new file mode 100644 index 000000000..f494fa433 --- /dev/null +++ b/Week 03/id_641/lesson10/LeetCode_455_641.java @@ -0,0 +1,33 @@ +package vip.ruoyun.week3.lesson10; + +import java.util.Arrays; + +/** + * 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 + * 对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j , + * 都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。 + * 你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 + *

+ * 链接:https://leetcode-cn.com/problems/assign-cookies + */ +public class LeetCode_455_641 { + + public static int findContentChildren(int[] grid, int[] size) { + if (grid == null || size == null) return 0; + Arrays.sort(grid);//先排序 + Arrays.sort(size); + int gi = 0, si = 0; + while (gi < grid.length && si < size.length) { + if (grid[gi] <= size[si]) { + gi++; + } + si++; + } + return gi; + } + + public static void main(String[] args) { + System.out.println(findContentChildren(new int[]{1, 2, 3}, new int[]{1, 1})); + } + +} diff --git a/Week 03/id_641/lesson10/LeetCode_874_641.java b/Week 03/id_641/lesson10/LeetCode_874_641.java new file mode 100644 index 000000000..a87651690 --- /dev/null +++ b/Week 03/id_641/lesson10/LeetCode_874_641.java @@ -0,0 +1,59 @@ +package vip.ruoyun.week3.lesson10; + +import java.util.HashSet; +import java.util.Set; + +/** + * 机器人在一个无限大小的网格上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令: + *

+ * -2:向左转 90 度 + * -1:向右转 90 度 + * 1 <= x <= 9:向前移动 x 个单位长度 + * 在网格上有一些格子被视为障碍物。 + *

+ * 第 i 个障碍物位于网格点  (obstacles[i][0], obstacles[i][1]) + *

+ * 如果机器人试图走到障碍物上方,那么它将停留在障碍物的前一个网格方块上,但仍然可以继续该路线的其余部分。 + *

+ * 返回从原点到机器人的最大欧式距离的平方。 + *

+ * 链接:https://leetcode-cn.com/problems/walking-robot-simulation + */ +public class LeetCode_874_641 { + + public static int robotSim(int[] commands, int[][] obstacles) { + int[][] dir = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; + int x = 0, y = 0; + int dir_index = 0; + int ans = 0; + Set blockSet = new HashSet<>(); + for (int i = 0; i < obstacles.length; i++) { + blockSet.add(obstacles[i][0] + "," + obstacles[i][1]); + } + + for (int i = 0; i < commands.length; i++) { + if (commands[i] == -1) { + dir_index = (dir_index + 1) % 4; + } else if (commands[i] == -2) { + dir_index = (dir_index + 3) % 4; + } else if (commands[i] > 0) { + for (int j = 1; j <= commands[i]; j++) { + int next_x = x + dir[dir_index][0]; + int next_y = y + dir[dir_index][1]; + if (blockSet.contains(next_x + "," + next_y)) { + break; + } else { + x = next_x; + y = next_y; + ans = Math.max(ans, x * x + y * y); + } + } + } + } + return ans; + } + + public static void main(String[] args) { + System.out.println(robotSim(new int[]{4, -1, 3}, new int[][]{})); + } +} diff --git a/Week 03/id_641/lesson11/LeetCode_33_641.java b/Week 03/id_641/lesson11/LeetCode_33_641.java new file mode 100644 index 000000000..aee05c556 --- /dev/null +++ b/Week 03/id_641/lesson11/LeetCode_33_641.java @@ -0,0 +1,48 @@ +package vip.ruoyun.week3.lesson11; + +/** + * 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 + * ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 + * 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 + * 你可以假设数组中不存在重复的元素。 + * 你的算法时间复杂度必须是 O(log n) 级别 + *

+ * 链接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array + */ +public class LeetCode_33_641 { + + public static int search(int[] nums, int target) { + int start = 0; + int end = nums.length - 1; + while (start <= end) { + int mid = (start + end) / 2; + if (target == nums[mid]) { + return mid; + } + //左半段是有序的 + if (nums[start] <= nums[mid]) { + //target 在这段里 + if (target >= nums[start] && target < nums[mid]) { + end = mid - 1; + } else { + start = mid + 1; + } + //右半段是有序的 + } else { + if (target > nums[mid] && target <= nums[end]) { + start = mid + 1; + } else { + end = mid - 1; + } + } + + } + return -1; + } + + public static void main(String[] args) { + System.out.println(search(new int[]{4, 5, 6, 7, 0, 1, 2}, 0)); + System.out.println(search(new int[]{4, 5, 6, 7, 0, 1, 2}, 3)); + } + +} diff --git a/Week 03/id_641/lesson11/LeetCode_74_641.java b/Week 03/id_641/lesson11/LeetCode_74_641.java new file mode 100644 index 000000000..cbc91247d --- /dev/null +++ b/Week 03/id_641/lesson11/LeetCode_74_641.java @@ -0,0 +1,38 @@ +package vip.ruoyun.week3.lesson11; + +/** + * 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: + * 每行中的整数从左到右按升序排列。 + * 每行的第一个整数大于前一行的最后一个整数。 + *

+ * 链接:https://leetcode-cn.com/problems/search-a-2d-matrix + */ +public class LeetCode_74_641 { + + public static boolean searchMatrix(int[][] matrix, int target) { + int m = matrix.length; + if (m == 0) return false; + int n = matrix[0].length; + + // 二分查找 + int left = 0, right = m * n - 1; + int pivotIdx, pivotElement; + while (left <= right) { + pivotIdx = (left + right) / 2; + pivotElement = matrix[pivotIdx / n][pivotIdx % n]; + if (target == pivotElement) return true; + else { + if (target < pivotElement) right = pivotIdx - 1; + else left = pivotIdx + 1; + } + } + return false; + } + + + public static void main(String[] args) { + int[][] matrix = new int[][]{{1, 3, 5, 7}, {10, 11, 16, 20}, {23, 30, 34, 50}}; + System.out.println(searchMatrix(matrix, 20)); + } + +} diff --git a/Week 03/id_641/lesson9/LeetCode_127_641.java b/Week 03/id_641/lesson9/LeetCode_127_641.java new file mode 100644 index 000000000..074c9c1ef --- /dev/null +++ b/Week 03/id_641/lesson9/LeetCode_127_641.java @@ -0,0 +1,116 @@ +package vip.ruoyun.week3.lesson9; + + +import java.util.*; + +/** + * 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: + *

+ * 每次转换只能改变一个字母。 + * 转换过程中的中间单词必须是字典中的单词。 + */ +public class LeetCode_127_641 { + + + //双端广度优先 + public int ladderLength(String beginWord, String endWord, List wordList) { + if (!wordList.contains(endWord)) return 0; // 不存在结束字符 + if (beginWord.equals(endWord)) return 2;//等于 结束字符 + + // 预处理 双端广度优先 避免重复访问 递归 总是从少找向多 + // 预处理 + Map> patternMap = _getPatternMap(wordList); + + // 双端广度优先 + Set beginSet = new HashSet<>(), endSet = new HashSet<>(); + beginSet.add(beginWord); + endSet.add(endWord); + + Set visited = new HashSet<>(); + + // 递归 + return this._search(1, beginSet, endSet, visited, patternMap); + } + + private int _search(int level, Set beginSet, Set endSet, + Set visited, Map> patternMap) { + // terminator + if (beginSet.size() == 0 || endSet.size() == 0) return 0; // 双端都找不到了 + + // process + visited.addAll(beginSet); + level++; + Set nextLevelSet = new HashSet<>(); + + // 遍历beginSet + for (String beginWord : beginSet) { + Set neighbors = _getNeighbors(beginWord, patternMap); + // 遍历所有相邻词 + for (String neighbor : neighbors) { + if (visited.contains(neighbor)) continue; // 避免重复访问 + if (endSet.contains(neighbor)) return level; // 已找到 + // 未找到,把相邻词记入下一层 + nextLevelSet.add(neighbor); + } + // 不能再此处 nextLevelSet.addAll(neighbors); 因为不能将 visited.contains(neighbor) 的节点放入 nextLevelSet + } + + // drill down + // 总是从少找向多 + if (nextLevelSet.size() <= endSet.size()) { + beginSet = nextLevelSet; + } else { + beginSet = endSet; + endSet = nextLevelSet; + } + + return this._search(level, beginSet, endSet, visited, patternMap); + + // reverse state + } + + // 返回给定单词表的所有匹映射,key为带*的匹配键,value为改匹配键可对应的单词集合 + private Map> _getPatternMap(List wordList) { + Map> map = new HashMap<>(); + for (String word : wordList) { + Set keys = _getPatterns(word); + for (String key : keys) { + if (!map.containsKey(key)) map.put(key, new HashSet<>()); + map.get(key).add(word); + } + } + return map; + } + + // 返回给定单词的所有可能的带*匹配键 + private Set _getPatterns(String word) { + Set res = new HashSet<>(); + char[] arr = word.toCharArray(); + for (int i = 0; i < arr.length; i++) { + char temp = arr[i]; + arr[i] = '*'; + res.add(String.valueOf(arr)); + arr[i] = temp; + } + return res; + } + + // 返回给定单词、在给定匹配映射中的所有可能的相邻单词 + private Set _getNeighbors(String word, Map> patternMap) { + Set res = new HashSet<>(); + Set patterns = _getPatterns(word); + for (String pattern : patterns) { + if (!patternMap.containsKey(pattern)) continue; + res.addAll(patternMap.get(pattern)); + } + return res; + } + + public static void main(String[] args) { + String beginWord = "hit", endWord = "cog"; + String[] wordList = {"hot", "dot", "dog", "lot", "log", "cog"}; + LeetCode_127_641 sol = new LeetCode_127_641(); + System.out.println("" + sol.ladderLength(beginWord, endWord, Arrays.asList(wordList))); + } + +} diff --git a/Week 03/id_641/lesson9/LeetCode_200_641.java b/Week 03/id_641/lesson9/LeetCode_200_641.java new file mode 100644 index 000000000..7b36bfc0b --- /dev/null +++ b/Week 03/id_641/lesson9/LeetCode_200_641.java @@ -0,0 +1,84 @@ +package vip.ruoyun.week3.lesson9; + + +/** + * 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。 + * 一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。 + * 你可以假设网格的四个边均被水包围。 + */ +public class LeetCode_200_641 { + // 上 左 下 右 + private static final int[][] directions = {{-1, 0}, {0, -1}, {1, 0}, {0, 1}}; + //标记数组,标记是否被访问过 + private boolean[][] marked; + //行 + private int rows; + //列 + private int cols; + // + private char[][] grid; + + public int numIslands(char[][] grid) { + rows = grid.length; + if (rows == 0) { + return 0; + } + this.grid = grid; + cols = grid[0].length; + // + marked = new boolean[rows][cols]; + + int count = 0; + for (int i = 0; i < rows; i++) { + for (int j = 0; j < cols; j++) { + if (!marked[i][j] && grid[i][j] == '1') { + count++; + dfs(i, j); + } + } + + } + return count; + } + + //深度遍历 + private void dfs(int i, int j) { + marked[i][j] = true; + + for (int k = 0; k < 4; k++) { + int newX = i + directions[k][0]; + int newY = j + directions[k][1]; + // 如果不越界、没有被访问过、并且还要是陆地 + if (inArea(newX, newY) && grid[newX][newY] == '1' && !marked[newX][newY]) { + dfs(newX, newY); + } + } + } + + // 是否越界 + private boolean inArea(int x, int y) { + // 等于号不要忘了 + return x >= 0 && x < rows && y >= 0 && y < cols; + } + + public static void main(String[] args) { + LeetCode_200_641 solution = new LeetCode_200_641(); + char[][] grid1 = { + {'1', '1', '1', '1', '0'}, + {'1', '1', '0', '1', '0'}, + {'1', '1', '0', '0', '0'}, + {'0', '0', '0', '0', '0'}}; + int numIslands1 = solution.numIslands(grid1); + System.out.println(numIslands1); + + char[][] grid2 = { + {'1', '1', '0', '0', '0'}, + {'1', '1', '0', '0', '0'}, + {'0', '0', '1', '0', '0'}, + {'0', '0', '0', '1', '1'}}; + int numIslands2 = solution.numIslands(grid2); + System.out.println(numIslands2); + } + + +} From af750d4c365d02560272c893c50bcc7370854f13 Mon Sep 17 00:00:00 2001 From: Fangbaso4 <44719631+Fangbaso4@users.noreply.github.com> Date: Sun, 3 Nov 2019 21:49:45 +0800 Subject: [PATCH 136/740] Update leetcode_127_111.py --- Week 03/id_111/leetcode_127_111.py | 67 +++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/Week 03/id_111/leetcode_127_111.py b/Week 03/id_111/leetcode_127_111.py index d9a3bac54..5d17bdf70 100644 --- a/Week 03/id_111/leetcode_127_111.py +++ b/Week 03/id_111/leetcode_127_111.py @@ -10,4 +10,69 @@ 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 -""" \ No newline at end of file +""" +#广度优先 BFS 代码模板: +def BFS(graph, start, end): + queue = [] + queue.append([start]) + visited.add(start) + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) +#代码解决:(实在写不出来抄了一遍) +class Solution: + def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: + + if endWord not in wordList: + return 0 + # 前提:单词字典中所有单词长度一致 + L = len(beginWord) + + # Dictionary to hold combination of words that can be formed, + # from any given word. By changing one letter at a time. + all_combo_dict = defaultdict(list) + for word in wordList: + for i in range(L): + # Key is the generic word + # Value is a list of words which have the same intermediate generic word. + all_combo_dict[word[:i] + "*" + word[i+1:]].append(word) + + + # 建立 BFS 队列 + queue = collections.deque([(beginWord, 1)]) + # 建立是否访问 避免重复访问 + visited = {beginWord: True} + while queue: + current_word, level = queue.popleft() + for i in range(L): + # Intermediate words for current word + intermediate_word = current_word[:i] + "*" + current_word[i+1:] + + # Next states are all the words which share the same intermediate state. + for word in all_combo_dict[intermediate_word]: + # If at any point if we find what we are looking for + # i.e. the end word - we can return with the answer. + if word == endWord: + return level + 1 + # Otherwise, add it to the BFS Queue. Also mark it visited + if word not in visited: + visited[word] = True + queue.append((word, level + 1)) + all_combo_dict[intermediate_word] = [] + return 0 + + # queue = set() + # visited = set() + # visitied.add(beginWord) + + # word_len = len(beginWord) + # res = 1 + # #BFS + # while queue: + # node = queue + From 7ffb11f3f75c2d5416c16da8cb3f2cf59f78d4fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E4=BB=9F?= Date: Sun, 3 Nov 2019 21:52:09 +0800 Subject: [PATCH 137/740] =?UTF-8?q?=E7=AC=AC3=E5=91=A8=E4=BD=9C=E4=B8=9A(1?= =?UTF-8?q?22,455)=E6=8F=90=E4=BA=A4=E5=8F=8A=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_721/LeetCode_122_721.java | 34 +++++++++++++++++++++++++++ Week 03/id_721/LeetCode_455_721.java | 35 ++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 Week 03/id_721/LeetCode_122_721.java create mode 100644 Week 03/id_721/LeetCode_455_721.java diff --git a/Week 03/id_721/LeetCode_122_721.java b/Week 03/id_721/LeetCode_122_721.java new file mode 100644 index 000000000..952f8d636 --- /dev/null +++ b/Week 03/id_721/LeetCode_122_721.java @@ -0,0 +1,34 @@ +package greedy; + +/** + * 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 + * 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 + * 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 + *

+ * 示例 1: + * 输入: [7,1,5,3,6,4] + * 输出: 7 + * 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 + *   随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。 + */ +public class LC_122_StockTradeMaxProfit { + + /** + * 11:34 AM info + * Success: + * Runtime:1 ms,faster than 99.99% of Java online submissions. + * Memory Usage:36.7 MB, less than 93.36% of Java online submissions. + * 最大股票收益: + * 思路:如果前一天价格比后一天低,买入,并且在第二天卖出,并且继续走买入逻辑,判断当天低价格是否比后一天低(天眼模式) + */ + public int maxProfit(int[] prices) { + int profit = 0; + if (prices.length == 0) return profit; + for (int i = 0; i < prices.length; i++) { + if (i + 1 < prices.length && prices[i + 1] - prices[i] > 0) { + profit += prices[i + 1] - prices[i]; + } + } + return profit; + } +} diff --git a/Week 03/id_721/LeetCode_455_721.java b/Week 03/id_721/LeetCode_455_721.java new file mode 100644 index 000000000..c8bc24078 --- /dev/null +++ b/Week 03/id_721/LeetCode_455_721.java @@ -0,0 +1,35 @@ +package greedy; + +import java.util.Arrays; + +/** + * 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。 + * 但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi , + * 这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j , + * 都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i , + * 这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 + * 思路: + * 1. 给一个孩子的饼干应当尽量小并且又能满足该孩子,这样大饼干才能拿来满足满足度比较大的孩子 + * 2. 因为满足度最小的孩子最容易满足,所以先满足满足度最小的孩子 + * 最优:尽量多的孩子分到饼干,那么每个孩子的饼干最接近其满足度 + */ +public class LC_455_AssignCookie { + + /** + * 满足孩子,胃口最小的孩子,优先满足,并且使用最靠近的饼干 + */ + public int findContentChildren(int[] g, int[] s) { + if (g.length == 0 || s.length == 0) return 0; + Arrays.sort(g); + Arrays.sort(s); + int gi = 0, sj = 0; + while (gi < g.length && sj < s.length) { + if (g[gi] <= s[sj]) { + // 当前最优解,用最小饼干满足小孩子最小的胃口 + gi++; + } + sj++; + } + return gi; + } +} From ae99c62cebac2a02e39effdc663232bcb6c45da0 Mon Sep 17 00:00:00 2001 From: anapple00 <50798091+anapple00@users.noreply.github.com> Date: Sun, 3 Nov 2019 21:54:41 +0800 Subject: [PATCH 138/740] Create 266-Week 03 --- Week 03/id_266/266-Week 03 | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Week 03/id_266/266-Week 03 diff --git a/Week 03/id_266/266-Week 03 b/Week 03/id_266/266-Week 03 new file mode 100644 index 000000000..1351f630a --- /dev/null +++ b/Week 03/id_266/266-Week 03 @@ -0,0 +1,48 @@ +1.搜索二维矩阵search-a-2d-matrix + +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + int m = matrix.length; + if (m == 0) return false; + int n = matrix[0].length; + + // 二分查找 + int left = 0, right = m * n - 1; + int pivotIdx, pivotElement; + while (left <= right) { + pivotIdx = (left + right) / 2; + pivotElement = matrix[pivotIdx / n][pivotIdx % n]; + if (target == pivotElement) return true; + else { + if (target < pivotElement) right = pivotIdx - 1; + else left = pivotIdx + 1; + } + } + return false; + } +} + +2.搜索旋转排序数组search-in-rotated-sorted-array + +class Solution { + public int search(int[] nums, int target) { + int left = 0; + int right = nums.length - 1; + + while (left <= right) { + int mid = (left + right) / 2; + if (nums[mid] == target) + return mid; + else if (nums[left] <= nums[mid] && (target > nums[mid] || target < nums[left])) { + left = mid + 1; + } + else if (target > nums[mid] && target < nums[left]) { + left = mid + 1; + } + else { + right = mid - 1; + } + } + return -1; + } +} From 2f504a53c65209e54490f28bd139600392a53631 Mon Sep 17 00:00:00 2001 From: Wang Yang Date: Sun, 3 Nov 2019 21:56:44 +0800 Subject: [PATCH 139/740] =?UTF-8?q?Week=2003=20LeetCode=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Week 03 LeetCode作业 --- Week 03/id_546/LeetCode_122_546.cs | 28 ++++++ Week 03/id_546/LeetCode_127_546.cs | 120 ++++++++++++++++++++++++++ Week 03/id_546/LeetCode_200_546.cs | 45 ++++++++++ Week 03/id_546/LeetCode_33_546.cs | 50 +++++++++++ Week 03/id_546/LeetCode_455_546.cs | 29 +++++++ Week 03/id_546/LeetCode_45_546.cs | 30 +++++++ Week 03/id_546/LeetCode_529_546.cs | 133 +++++++++++++++++++++++++++++ Week 03/id_546/LeetCode_55_546.cs | 25 ++++++ Week 03/id_546/LeetCode_860_546.cs | 28 ++++++ Week 03/id_546/LeetCode_874_546.cs | 61 +++++++++++++ 10 files changed, 549 insertions(+) create mode 100644 Week 03/id_546/LeetCode_122_546.cs create mode 100644 Week 03/id_546/LeetCode_127_546.cs create mode 100644 Week 03/id_546/LeetCode_200_546.cs create mode 100644 Week 03/id_546/LeetCode_33_546.cs create mode 100644 Week 03/id_546/LeetCode_455_546.cs create mode 100644 Week 03/id_546/LeetCode_45_546.cs create mode 100644 Week 03/id_546/LeetCode_529_546.cs create mode 100644 Week 03/id_546/LeetCode_55_546.cs create mode 100644 Week 03/id_546/LeetCode_860_546.cs create mode 100644 Week 03/id_546/LeetCode_874_546.cs diff --git a/Week 03/id_546/LeetCode_122_546.cs b/Week 03/id_546/LeetCode_122_546.cs new file mode 100644 index 000000000..2742ca17f --- /dev/null +++ b/Week 03/id_546/LeetCode_122_546.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Easy +{ + ///

+ /// 122. 买卖股票的最佳时机 II + /// + public class BestTimeToBuyAndSellStockii + { + public int MaxProfit(int[] prices) + { + int total = 0; + for (int i = 0; i < prices.Length - 1; i++) + { + if (prices[i + 1] > prices[i]) + { + total += prices[i + 1] - prices[i]; + } + } + + return total; + } + } +} diff --git a/Week 03/id_546/LeetCode_127_546.cs b/Week 03/id_546/LeetCode_127_546.cs new file mode 100644 index 000000000..2f14dd4e1 --- /dev/null +++ b/Week 03/id_546/LeetCode_127_546.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Medium +{ + /// + /// 127. 单词接龙 + /// + public class WordLadder + { + + + public int LadderLength(String beginWord, String endWord, IList wordList) + { + if (!wordList.Contains(endWord)) return 0; + + HashSet beginSet = new HashSet(), endSet = new HashSet(); + + int len = 1; + int strLen = beginWord.Length; + HashSet visited = new HashSet(); + + beginSet.Add(beginWord); + endSet.Add(endWord); + while (beginSet.Any() && endSet.Any()) + { + if (beginSet.Count > endSet.Count) + { + HashSet set = beginSet; + beginSet = endSet; + endSet = set; + } + + HashSet temp = new HashSet(); + foreach (string word in beginSet) + { + char[] chs = word.ToCharArray(); + + for (int i = 0; i < chs.Length; i++) + { + for (char c = 'a'; c <= 'z'; c++) + { + char old = chs[i]; + chs[i] = c; + String target =new string( chs); + + if (endSet.Contains(target)) + { + return len + 1; + } + + if (!visited.Contains(target) && wordList.Contains(target)) + { + temp.Add(target); + visited.Add(target); + } + chs[i] = old; + } + } + } + + beginSet = temp; + len++; + } + + return 0; + } + + + + public int LadderLength2(string beginWord, string endWord, IList wordList) + { + // IList dict = new List(wordList); + IList qs = new List(); + IList qe = new List(); + IList vis = new List(); + + qs.Add(beginWord); + + if (wordList.Contains(endWord)) + qe.Add(endWord); + + for (int len = 2; qs.Any(); len++) + { + List nq = new List(); + foreach (string w in qs) + { + for (int j = 0; j < w.Length; j++) + { + char[] ch = w.ToCharArray(); + for (char c = 'a'; c <= 'z'; c++) + { + if (c == w[j]) + continue; + + ch[j] = c; + string nb = new string(ch); + + if (qe.Contains(nb)) + return len; + if (wordList.Contains(nb)) + { + vis.Add(nb); + nq.Add(nb); + } + } + } + } + qs = (nq.Count() < qe.Count()) ? nq : qe; + qe = (qs == nq) ? qe : nq; + } + return 0; + } + + + } +} diff --git a/Week 03/id_546/LeetCode_200_546.cs b/Week 03/id_546/LeetCode_200_546.cs new file mode 100644 index 000000000..e0b69c293 --- /dev/null +++ b/Week 03/id_546/LeetCode_200_546.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Medium +{ + /// + /// 200. 岛屿数量 + /// + public class NumberOfIslands + { + private int n; + private int m; + + public int NumIslands(char[][] grid) + { + int count = 0; + n = grid.Length; + if (n == 0) return 0; + m = grid[0].Length; + for (int i = 0; i < n; i++) + { + for (int j = 0; j < m; j++) + if (grid[i][j] == '1') + { + DFSMarking(grid, i, j); + ++count; + } + } + return count; + } + + private void DFSMarking(char[][] grid, int i, int j) + { + if (i < 0 || j < 0 || i >= n || j >= m || grid[i][j] != '1') return; + grid[i][j] = '0'; + DFSMarking(grid, i + 1, j); + DFSMarking(grid, i - 1, j); + DFSMarking(grid, i, j + 1); + DFSMarking(grid, i, j - 1); + } + } +} diff --git a/Week 03/id_546/LeetCode_33_546.cs b/Week 03/id_546/LeetCode_33_546.cs new file mode 100644 index 000000000..98a1719e8 --- /dev/null +++ b/Week 03/id_546/LeetCode_33_546.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Medium +{ + /// + /// 33. 搜索旋转排序数组 + /// + public class SearchInRotatedSortedArray + { + // 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 0->4 + + public int Search(int[] nums, int target) + { + int left = 0; + int right = nums.Length-1; + + while (left <= right) + { + + int mid = (left + right) / 2; + + int _num = 0; + + //如果第一个元素同时大于中间元素和target,或者第一个元素同时小于中间元素和target,就获取中间值 + if (nums[mid] < nums[0] == (target < nums[0])) + { + _num = nums[mid]; + } + else + { + //如果第一个元素大于指定的元素,指定其位最小值,否则指定为最大值,以便进行二分查找 + _num = target < nums[0] ? int.MinValue : int.MaxValue; + } + //进行二分查找 + if (_num < target) + left = mid + 1; + else if (_num > target) + right = mid-1; + else + return mid; + } + return -1; + + } + } +} diff --git a/Week 03/id_546/LeetCode_455_546.cs b/Week 03/id_546/LeetCode_455_546.cs new file mode 100644 index 000000000..bccdad890 --- /dev/null +++ b/Week 03/id_546/LeetCode_455_546.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Easy +{ + /// + /// 455. 分发饼干 + /// + public class AssignCookies + { + public int FindContentChildren(int[] g, int[] s) + { + Array.Sort(g); + Array.Sort(s); + int i = 0; + for (int j = 0; i < g.Length && j < s.Length; j++) + { + if (g[i] <= s[j]) + { + i++; + } + } + return i; + } + } +} diff --git a/Week 03/id_546/LeetCode_45_546.cs b/Week 03/id_546/LeetCode_45_546.cs new file mode 100644 index 000000000..313ddd29d --- /dev/null +++ b/Week 03/id_546/LeetCode_45_546.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Hard +{ + /// + /// 45. 跳跃游戏 II + /// + public class JumpGameii + { + public int Jump(int[] nums) + { + int jumps = 0, curEnd = 0, curFarthest = 0; + for (int i = 0; i < nums.Length - 1; i++) + { + curFarthest = Math.Max(curFarthest, i + nums[i]); + if (i == curEnd) + { + jumps++; + curEnd = curFarthest; + } + } + return jumps; + + } + } +} diff --git a/Week 03/id_546/LeetCode_529_546.cs b/Week 03/id_546/LeetCode_529_546.cs new file mode 100644 index 000000000..2a3877c25 --- /dev/null +++ b/Week 03/id_546/LeetCode_529_546.cs @@ -0,0 +1,133 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Medium +{ + /// + /// 529. 扫雷游戏 + /// + public class Minesweeper + { + + + /// + /// DFS + /// + /// + /// + /// + public char[][] UpdateBoard(char[][] board, int[] click) + { + int m = board.Length, n = board[0].Length; + int row = click[0], col = click[1]; + + if (board[row][col] == 'M') + { // Mine + board[row][col] = 'X'; + } + else + { // Empty + // Get number of mines first. + int count = 0; + for (int i = -1; i < 2; i++) + { + for (int j = -1; j < 2; j++) + { + if (i == 0 && j == 0) continue; + int r = row + i, c = col + j; + if (r < 0 || r >= m || c < 0 || c < 0 || c >= n) continue; + if (board[r][c] == 'M' || board[r][c] == 'X') count++; + } + } + + if (count > 0) + { // If it is not a 'B', stop further DFS. + board[row][col] = (char)(count + '0'); + } + else + { // Continue DFS to adjacent cells. + board[row][col] = 'B'; + for (int i = -1; i < 2; i++) + { + for (int j = -1; j < 2; j++) + { + if (i == 0 && j == 0) continue; + int r = row + i, c = col + j; + if (r < 0 || r >= m || c < 0 || c < 0 || c >= n) continue; + if (board[r][c] == 'E') UpdateBoard(board, new int[] { r, c }); + } + } + } + } + + return board; + } + + /// + /// BFS + /// + /// + /// + /// + public char[][] UpdateBoard2(char[][] board, int[] click) + { + int m = board.Length, n = board[0].Length; + Queue queue = new Queue(); + queue.Enqueue(click); + + while (queue.Any()) + { + int[] cell = queue.Dequeue(); + int row = cell[0], col = cell[1]; + + if (board[row][col] == 'M') + { // Mine + board[row][col] = 'X'; + } + else + { // Empty + // Get number of mines first. + int count = 0; + for (int i = -1; i < 2; i++) + { + for (int j = -1; j < 2; j++) + { + if (i == 0 && j == 0) continue; + int r = row + i, c = col + j; + if (r < 0 || r >= m || c < 0 || c < 0 || c >= n) continue; + if (board[r][c] == 'M' || board[r][c] == 'X') count++; + } + } + + if (count > 0) + { // If it is not a 'B', stop further BFS. + board[row][col] = (char)(count + '0'); + } + else + { // Continue BFS to adjacent cells. + board[row][col] = 'B'; + for (int i = -1; i < 2; i++) + { + for (int j = -1; j < 2; j++) + { + if (i == 0 && j == 0) continue; + int r = row + i, c = col + j; + if (r < 0 || r >= m || c < 0 || c < 0 || c >= n) continue; + if (board[r][c] == 'E') + { + queue.Enqueue(new int[] { r, c }); + board[r][c] = 'B'; + } + } + } + } + } + } + + return board; + } + } +} diff --git a/Week 03/id_546/LeetCode_55_546.cs b/Week 03/id_546/LeetCode_55_546.cs new file mode 100644 index 000000000..f01dd1e23 --- /dev/null +++ b/Week 03/id_546/LeetCode_55_546.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Medium +{ + /// + /// 55. 跳跃游戏 + /// + public class JumpGame + { + public bool CanJump(int[] nums) + { + int curMax = nums[0]; + for (int i = 1; i < nums.Length; i++) + { + if (curMax < i) return false; + curMax = Math.Max(curMax, i + nums[i]); + } + return true; + } + } +} diff --git a/Week 03/id_546/LeetCode_860_546.cs b/Week 03/id_546/LeetCode_860_546.cs new file mode 100644 index 000000000..1feab6eaa --- /dev/null +++ b/Week 03/id_546/LeetCode_860_546.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Easy +{ + /// + /// 860. 柠檬水找零 + /// + public class LemonadeChange + { + public bool LemonadeChange1(int[] bills) + { + int five = 0, ten = 0; + foreach (int i in bills) + { + if (i == 5) five++; + else if (i == 10) { five--; ten++; } + else if (ten > 0) { ten--; five--; } + else five -= 3; + if (five < 0) return false; + } + return true; + } + } +} diff --git a/Week 03/id_546/LeetCode_874_546.cs b/Week 03/id_546/LeetCode_874_546.cs new file mode 100644 index 000000000..7b6022632 --- /dev/null +++ b/Week 03/id_546/LeetCode_874_546.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Easy +{ + /// + /// 874. 模拟行走机器人 + /// + public class WalkingRobotSimulation + { + public int RobotSim(int[] commands, int[][] obstacles) + { + List list = new List(); + foreach (int[] obs in obstacles) + { + list.Add(obs[0] + " " + obs[1]); + } + int[][] dirs = new int[][] { + new []{ 0, 1 }, + new []{ 1, 0 }, + new []{ 0, -1 }, + new []{ -1, 0 } + }; + + int d = 0, x = 0, y = 0, result = 0; + + for(int w=0;w 0 && !list.Contains((x + dirs[d][0]) + " " + (y + dirs[d][1]))) + { + x += dirs[d][0]; + y += dirs[d][1]; + } + } + result = Math.Max(result, x * x + y * y); + } + return result; + } + } +} From d91f2877d0b81d451d06fe52bdd489589cace171 Mon Sep 17 00:00:00 2001 From: xiaozhubao <32889286+xiaozhubao@users.noreply.github.com> Date: Sun, 3 Nov 2019 21:59:19 +0800 Subject: [PATCH 140/740] Create LeetCode_860 --- Week 03/id_036/LeetCode_860 | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Week 03/id_036/LeetCode_860 diff --git a/Week 03/id_036/LeetCode_860 b/Week 03/id_036/LeetCode_860 new file mode 100644 index 000000000..a978d4957 --- /dev/null +++ b/Week 03/id_036/LeetCode_860 @@ -0,0 +1,27 @@ +public class LeetCode_860 { + + + public boolean lemonadeChange(int[] bills) { + int five = 0; + int ten = 0; + for (int i : bills) { + if (i == 5) { + five++; + } else if (i == 10) { + if (five == 0) return false; + five--; + ten++; + } else if (i == 20) { + if (five > 0 && ten > 0) { + five--; + ten--; + } else if (five >= 3) { + five = five - 3; + } else { + return false; + } + } + } + return true; + } +} From 2f5cbc7f73c7ada5f52bf014efac8e31154ba0ef Mon Sep 17 00:00:00 2001 From: xiaozhubao <32889286+xiaozhubao@users.noreply.github.com> Date: Sun, 3 Nov 2019 22:01:59 +0800 Subject: [PATCH 141/740] Add files via upload --- Week 03/id_036/Leetcode_455.java | 23 ++++++++++++++++++++ Week 03/id_036/Leetcode_69.java | 36 ++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 Week 03/id_036/Leetcode_455.java create mode 100644 Week 03/id_036/Leetcode_69.java diff --git a/Week 03/id_036/Leetcode_455.java b/Week 03/id_036/Leetcode_455.java new file mode 100644 index 000000000..05fe29370 --- /dev/null +++ b/Week 03/id_036/Leetcode_455.java @@ -0,0 +1,23 @@ +package com.sslz.leetcode.Week3; + +import java.util.Arrays; + +public class Leetcode_455 { + + public int findContentChildren(int[] g, int[] s) { + if (g == null || s == null) { + return 0; + } + Arrays.sort(g); + Arrays.sort(s); + int gi = 0; + int si = 0; + while (gi < g.length && si < s.length) { + if (g[gi] <= s[si]) { + gi++; + } + si++; + } + return gi; + } +} diff --git a/Week 03/id_036/Leetcode_69.java b/Week 03/id_036/Leetcode_69.java new file mode 100644 index 000000000..3b5faa8d8 --- /dev/null +++ b/Week 03/id_036/Leetcode_69.java @@ -0,0 +1,36 @@ +package com.sslz.leetcode.Week3; + +public class Leetcode_69 { + + public int mySqrt(int x) { + if (x == 0 || x == 1) { + return x; + } + long left = 0; + //最大边界问题 + long right = Integer.MAX_VALUE; + while (left < right) { + + // 这里因为是正整数 所以采用的 >>> 或 >> 是一样的性质 如果包含负数则 大不一样 + //(left + right + 1) >> 1 而不是(left + right) >> 1 这里的 1 是干嘛的 + long mid = (left + right + 1) >> 1; + if (mid * mid > x) { + right = mid - 1; + } else { + left = mid; + } + } + return (int) right; + } + + // 牛顿法 + public int mySqrt01(int a) { + long x = a; + while (x * x > a) { + x = (x + a / x) / 2; + } + return (int) x; + } + + +} From b7eab203cb0a95a1bdbab69fec29eeb7a4a689e6 Mon Sep 17 00:00:00 2001 From: wuxiaohui <391394275@qq.com> Date: Sun, 3 Nov 2019 22:03:20 +0800 Subject: [PATCH 142/740] week 03 --- ...33\345\261\277\346\225\260\351\207\217.py" | 54 ++++++++++++++ ...22\345\272\217\346\225\260\347\273\204.py" | 55 ++++++++++++++ ...54\346\260\264\346\211\276\351\233\266.py" | 73 +++++++++++++++++++ 3 files changed, 182 insertions(+) create mode 100644 "Week 03/id_116/[200]\345\262\233\345\261\277\346\225\260\351\207\217.py" create mode 100644 "Week 03/id_116/[33]\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204.py" create mode 100644 "Week 03/id_116/[860]\346\237\240\346\252\254\346\260\264\346\211\276\351\233\266.py" diff --git "a/Week 03/id_116/[200]\345\262\233\345\261\277\346\225\260\351\207\217.py" "b/Week 03/id_116/[200]\345\262\233\345\261\277\346\225\260\351\207\217.py" new file mode 100644 index 000000000..761cce706 --- /dev/null +++ "b/Week 03/id_116/[200]\345\262\233\345\261\277\346\225\260\351\207\217.py" @@ -0,0 +1,54 @@ +#给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 +# +# 示例 1: +# +# 输入: +#11110 +#11010 +#11000 +#00000 +# +#输出: 1 +# +# +# 示例 2: +# +# 输入: +#11000 +#11000 +#00100 +#00011 +# +#输出: 3 +# +# Related Topics 深度优先搜索 广度优先搜索 并查集 + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def numIslands(self, grid): + """ + :type grid: List[List[str]] + :rtype: int + """ + if not grid: + return 0 + + count = 0 + for i in range(len(grid)): + for j in range(len(grid[0])): + if grid[i][j] == '1': + self.dfs(grid, i, j) + count += 1 + return count + + def dfs(self, grid, i, j): + if i < 0 or j < 0 or i >= len(grid) or j >= len(grid[0]) or grid[i][j] != '1': + return + grid[i][j] = '#' + self.dfs(grid, i + 1, j) + self.dfs(grid, i - 1, j) + self.dfs(grid, i, j + 1) + self.dfs(grid, i, j - 1) +#leetcode submit region end(Prohibit modification and deletion) diff --git "a/Week 03/id_116/[33]\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204.py" "b/Week 03/id_116/[33]\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204.py" new file mode 100644 index 000000000..f09942c3c --- /dev/null +++ "b/Week 03/id_116/[33]\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204.py" @@ -0,0 +1,55 @@ +#假设按照升序排序的数组在预先未知的某个点上进行了旋转。 +# +# ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 +# +# 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 +# +# 你可以假设数组中不存在重复的元素。 +# +# 你的算法时间复杂度必须是 O(log n) 级别。 +# +# 示例 1: +# +# 输入: nums = [4,5,6,7,0,1,2], target = 0 +#输出: 4 +# +# +# 示例 2: +# +# 输入: nums = [4,5,6,7,0,1,2], target = 3 +#输出: -1 +# Related Topics 数组 二分查找 + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def search(self, nums, target): + """ + :type nums: List[int] + :type target: int + :rtype: int + """ + if not nums: + return -1 + + low, high = 0, len(nums) - 1 + + while low <= high: + mid = (low + high) / 2 + if target == nums[mid]: + return mid + + if nums[low] <= nums[mid]: + if nums[low] <= target <= nums[mid]: + high = mid - 1 + else: + low = mid + 1 + else: + if nums[mid] <= target <= nums[high]: + low = mid + 1 + else: + high = mid - 1 + + return -1 +#leetcode submit region end(Prohibit modification and deletion) diff --git "a/Week 03/id_116/[860]\346\237\240\346\252\254\346\260\264\346\211\276\351\233\266.py" "b/Week 03/id_116/[860]\346\237\240\346\252\254\346\260\264\346\211\276\351\233\266.py" new file mode 100644 index 000000000..f2e2c0405 --- /dev/null +++ "b/Week 03/id_116/[860]\346\237\240\346\252\254\346\260\264\346\211\276\351\233\266.py" @@ -0,0 +1,73 @@ +#在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 +# +# 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 +# +# 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 +# +# 注意,一开始你手头没有任何零钱。 +# +# 如果你能给每位顾客正确找零,返回 true ,否则返回 false 。 +# +# 示例 1: +# +# 输入:[5,5,5,10,20] +#输出:true +#解释: +#前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。 +#第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。 +#第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。 +#由于所有客户都得到了正确的找零,所以我们输出 true。 +# +# +# 示例 2: +# +# 输入:[5,5,10] +#输出:true +# +# +# 示例 3: +# +# 输入:[10,10] +#输出:false +# +# +# 示例 4: +# +# 输入:[5,5,10,10,20] +#输出:false +#解释: +#前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。 +#对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。 +#对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。 +#由于不是每位顾客都得到了正确的找零,所以答案是 false。 +# +# +# +# +# 提示: +# +# +# 0 <= bills.length <= 10000 +# bills[i] 不是 5 就是 10 或是 20 +# +# Related Topics 贪心算法 + + + +#leetcode submit region begin(Prohibit modification and deletion) +class Solution(object): + def lemonadeChange(self, bills): + """ + :type bills: List[int] + :rtype: bool + """ + five = ten = 0 + for i in bills: + if i == 5: five += 1 + elif i == 10: five, ten = five - 1, ten + 1 + elif ten > 0: five, ten = five - 1, ten - 1 + else: five -= 3 + if five < 0: return False + return True + +#leetcode submit region end(Prohibit modification and deletion) From 5d49665293d681bcd54728068d69f25822b03269 Mon Sep 17 00:00:00 2001 From: Maxlychee <30388142+Maxlychee@users.noreply.github.com> Date: Sun, 3 Nov 2019 22:04:31 +0800 Subject: [PATCH 143/740] 731-Week 03 add 2 files --- Week 03/id_731/LeetCode_127_731.txt | 29 +++++++++++++++++++++++++++++ Week 03/id_731/LeetCode_74_731.txt | 25 +++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 Week 03/id_731/LeetCode_127_731.txt create mode 100644 Week 03/id_731/LeetCode_74_731.txt diff --git a/Week 03/id_731/LeetCode_127_731.txt b/Week 03/id_731/LeetCode_127_731.txt new file mode 100644 index 000000000..2dfc2d69f --- /dev/null +++ b/Week 03/id_731/LeetCode_127_731.txt @@ -0,0 +1,29 @@ +class Solution { +public: + int ladderLength(string beginWord, string endWord, vector& wordList) { + unordered_set wordSet(wordList.begin(), wordList.end()); + if (wordSet.count(endWord) == 0) { + return 0; + } + unordered_map pathCnt = {{beginWord, 1}}; + queue q{{beginWord}}; + while (!q.empty()) { + string word = q.front(); + q.pop(); + for (int i = 0; i < word.size(); ++i) { + string newWord = word; + for (char ch = 'a'; ch <= 'z'; ++ch) { + newWord[i] = ch; + if (wordSet.count(newWord) > 0 && newWord == endWord) { + return pathCnt[word] + 1; + } + if (wordSet.count(newWord) > 0 && !pathCnt.count(newWord)) { + q.push(newWord); + pathCnt[newWord] = pathCnt[word] + 1; + } + } + } + } + return 0; + } +}; \ No newline at end of file diff --git a/Week 03/id_731/LeetCode_74_731.txt b/Week 03/id_731/LeetCode_74_731.txt new file mode 100644 index 000000000..7d238313b --- /dev/null +++ b/Week 03/id_731/LeetCode_74_731.txt @@ -0,0 +1,25 @@ +class Solution { +public: + bool searchMatrix(vector>& matrix, int target) { + int m = matrix.size(); + if (m == 0) return false; + int n = matrix[0].size(); + if (n == 0) return false; + int l = 0; + int r = m * n; + while(l < r) { + int mid = l + (r - l)/2; + int tm = mid / n; + int tn = mid - n * tm; + int tmp = matrix[tm][tn]; + if (tmp == target) { + return true; + } else if (tmp < target) { + l = mid + 1; + } else { + r = mid; + } + } + return false; + } +}; \ No newline at end of file From bfade6064630029a32a373d48d4c28a3944e0206 Mon Sep 17 00:00:00 2001 From: huyong007 <1341696804@qq.com> Date: Sun, 3 Nov 2019 22:05:30 +0800 Subject: [PATCH 144/740] 646-Week 03 --- ...25\350\257\215\346\216\245\351\276\231.md" | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 "Week 03/id_646/\345\215\225\350\257\215\346\216\245\351\276\231.md" diff --git "a/Week 03/id_646/\345\215\225\350\257\215\346\216\245\351\276\231.md" "b/Week 03/id_646/\345\215\225\350\257\215\346\216\245\351\276\231.md" new file mode 100644 index 000000000..c0d96f6d9 --- /dev/null +++ "b/Week 03/id_646/\345\215\225\350\257\215\346\216\245\351\276\231.md" @@ -0,0 +1,41 @@ +> 这一题,不会,找了一个别人的题解,看了几遍,默写下来了 +```js +var ladderLength = function(beginWord, endWord, wordList) { + var index=wordList.indexOf(beginWord); + if(index!==-1) + wordList.splice(index,1); + if(wordList.length===0) + return 0; + var queue=[beginWord], + res=2; + while(queue.length!==0){ + var len=queue.length; + for(var ii=0;ii1) + return false; + } + return true; + } +}; +``` \ No newline at end of file From 1f0b404e7fa79bad2cbfa06c6da11be566c642bc Mon Sep 17 00:00:00 2001 From: liyeping <2362033@qq.com> Date: Sun, 3 Nov 2019 22:10:06 +0800 Subject: [PATCH 145/740] week_03 homework --- Week 03/id_041/Search_a_2d_matrix.java | 93 +++++++++++++++++++ .../Search_in_rotated_sorted_array.java | 53 +++++++++++ 2 files changed, 146 insertions(+) create mode 100644 Week 03/id_041/Search_a_2d_matrix.java create mode 100644 Week 03/id_041/Search_in_rotated_sorted_array.java diff --git a/Week 03/id_041/Search_a_2d_matrix.java b/Week 03/id_041/Search_a_2d_matrix.java new file mode 100644 index 000000000..30a27e97f --- /dev/null +++ b/Week 03/id_041/Search_a_2d_matrix.java @@ -0,0 +1,93 @@ +package search_a_2d_matrix; + +import org.junit.Test; + +class Solution { + /** + * 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: + + 每行中的整数从左到右按升序排列。 + 每行的第一个整数大于前一行的最后一个整数。 + + 输入: + matrix = [ + [1, 3, 5, 7], + [10, 11, 16, 20], + [23, 30, 34, 50] + ] + target = 3 + 输出: true + + + * */ + static int row = 0; + static int leftR = 0; + public static boolean searchMatrix(int[][] matrix, int target) { + /** + * 自己的实现:先用二分搜索判断元素的范围在那个一行(数组)里;再二分搜索改行; + * */ + if(matrix.length == 0) return false; + leftR = 0; + row = matrix.length-1; + if(matrix[row].length==0) return false; + int cols = matrix[row].length-1; + if(matrix[row][cols] < target || matrix[0][0] > target ) return false; + while (leftR <= row ){ + int mid = ( leftR + row )/2; + if (matrix[mid][0] > target){ + row = mid - 1; + }else if(matrix[mid][0] < target){ + leftR = mid + 1; + }else { + return true; + } + } + int left = 0; int right = matrix[leftR-1].length-1; + boolean result = false; + while (left <= right){ + + int mid = ( left + right )/2; + if(matrix[leftR-1][mid] == target){ + return true; + }else if(matrix[leftR-1][mid] < target){ + left = mid + 1; + }else { + right = mid - 1; + } + + } + return result; + + } + public static boolean searchMatrix2(int[][] matrix, int target) { + /** + * 官方题解:将二维数组视为一个有序的m * n个一维数组 + * */ + int m = matrix.length; + if(m == 0) return false; + int n = matrix[0].length; + int left = 0; int right = m * n -1; + while (left <= right){ + int mid = (left + right)/2; + int elm = matrix[mid / n][mid % n]; + if(elm == target) { + return true; + }else { + if(elm < target){ + left = mid + 1; + }else { + right = mid - 1; + } + } + } + return false; + } + + public static void main(String[] args){ +// int[][] matrix = {{1,3,5,6,7},{9,11,12,15,16},{18,20,22,23,25}}; + int[][] matrix = {{}}; + boolean result = searchMatrix(matrix,3); + System.out.println("row = " + row + " leftR= " + leftR + " result = " + result); + } + +} \ No newline at end of file diff --git a/Week 03/id_041/Search_in_rotated_sorted_array.java b/Week 03/id_041/Search_in_rotated_sorted_array.java new file mode 100644 index 000000000..c58976807 --- /dev/null +++ b/Week 03/id_041/Search_in_rotated_sorted_array.java @@ -0,0 +1,53 @@ +package search_in_rotated_sorted_array; + +class Solution { + /** + * 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 + + ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 + + 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 + + 你可以假设数组中不存在重复的元素。 + + 你的算法时间复杂度必须是 O(log n) 级别。 + + 示例 1: + + 输入: nums = [4,5,6,7,0,1,2], target = 0 + 输出: 4 + 示例 2: + + 输入: nums = [4,5,6,7,0,1,2], target = 3 + 输出: -1 + + * */ + public int search(int[] nums, int target) { + /** + *将数组一分为二,分别对两边进行区间二分 + * */ + int left = 0; + int rigth = nums.length-1; + while (left <= rigth){ + int mid = (left + rigth)/2; + if(nums[mid] == target) return mid; + //当左半天有序时 + if(nums[left] <= nums[mid]){ + if(target >= nums[left] && target < nums[mid] ){ + rigth = mid -1; + }else { + left = mid + 1; + } + }else {//当右半边有序时 + if(target > nums[mid] && target <= nums[rigth]){ + left = mid + 1; + }else { + rigth = mid -1; + } + } + } + + return -1; + } + +} \ No newline at end of file From f1723b597f649889bca5ca97cc2b3245faccbcf5 Mon Sep 17 00:00:00 2001 From: lijing Date: Sun, 3 Nov 2019 22:12:54 +0800 Subject: [PATCH 146/740] Week-03 --- Week 03/id_476/LeetCode_153_476.java | 24 ++++++ Week 03/id_476/LeetCode_200_476.java | 110 +++++++++++++++++++++++++++ Week 03/id_476/LeetCode_33_476.java | 108 ++++++++++++++++++++++++++ Week 03/id_476/LeetCode_45_476.java | 27 +++++++ Week 03/id_476/LeetCode_74_476.java | 31 ++++++++ Week 03/id_476/LeetCode_860_476.java | 29 +++++++ 6 files changed, 329 insertions(+) create mode 100644 Week 03/id_476/LeetCode_153_476.java create mode 100644 Week 03/id_476/LeetCode_200_476.java create mode 100644 Week 03/id_476/LeetCode_33_476.java create mode 100644 Week 03/id_476/LeetCode_45_476.java create mode 100644 Week 03/id_476/LeetCode_74_476.java create mode 100644 Week 03/id_476/LeetCode_860_476.java diff --git a/Week 03/id_476/LeetCode_153_476.java b/Week 03/id_476/LeetCode_153_476.java new file mode 100644 index 000000000..30d79dc1d --- /dev/null +++ b/Week 03/id_476/LeetCode_153_476.java @@ -0,0 +1,24 @@ +public class LeetCode_153_FindMinimumInRotatedSortedArray { + public static void main(String[] args) { + Solution solution = new LeetCode_153_FindMinimumInRotatedSortedArray().new Solution(); + } + + + class Solution { + public int findMin(int[] nums) { + int low = 0; + int high = nums.length - 1; + while (low < high) { + // 左中位数 + int middle = low + (high - low) / 2; + if (nums[middle] > nums[high]) { + low = middle + 1; + } else { + high = middle; + } + } + return low == high ? nums[low] : null; + } + } + +} \ No newline at end of file diff --git a/Week 03/id_476/LeetCode_200_476.java b/Week 03/id_476/LeetCode_200_476.java new file mode 100644 index 000000000..7125a12ce --- /dev/null +++ b/Week 03/id_476/LeetCode_200_476.java @@ -0,0 +1,110 @@ +import java.util.LinkedList; +import java.util.Queue; + +public class LeetCode_200_NumberOfIslands { + public static void main(String[] args) { + Solution solution = new LeetCode_200_NumberOfIslands().new Solution(); + char[][] grid = new char[][]{{'1', '1', '0', '0', '0'}, {'1', '1', '0', '0', '0'}, {'0', '0', '1', '0', '0'}, {'0', '0', '0', '1', '1'}}; + assert solution.numIslands(grid) == 3; + grid = new char[][] { + {'1','0','0','1','1','1','0','1','1','0','0','0','0','0','0','0','0','0','0','0'}, + {'1','0','0','1','1','0','0','1','0','0','0','1','0','1','0','1','0','0','1','0'}, + {'0','0','0','1','1','1','1','0','1','0','1','1','0','0','0','0','1','0','1','0'}, + {'0','0','0','1','1','0','0','1','0','0','0','1','1','1','0','0','1','0','0','1'}, + {'0','0','0','0','0','0','0','1','1','1','0','0','0','0','0','0','0','0','0','0'}, + {'1','0','0','0','0','1','0','1','0','1','1','0','0','0','0','0','0','1','0','1'}, + {'0','0','0','1','0','0','0','1','0','1','0','1','0','1','0','1','0','1','0','1'}, + {'0','0','0','1','0','1','0','0','1','1','0','1','0','1','1','0','1','1','1','0'}, + {'0','0','0','0','1','0','0','1','1','0','0','0','0','1','0','0','0','1','0','1'}, + {'0','0','1','0','0','1','0','0','0','0','0','1','0','0','1','0','0','0','1','0'}, + {'1','0','0','1','0','0','0','0','0','0','0','1','0','0','1','0','1','0','1','0'}, + {'0','1','0','0','0','1','0','1','0','1','1','0','1','1','1','0','1','1','0','0'}, + {'1','1','0','1','0','0','0','0','1','0','0','0','0','0','0','1','0','0','0','1'}, + {'0','1','0','0','1','1','1','0','0','0','1','1','1','1','1','0','1','0','0','0'}, + {'0','0','1','1','1','0','0','0','1','1','0','0','0','1','0','1','0','0','0','0'}, + {'1','0','0','1','0','1','0','0','0','0','1','0','0','0','1','0','1','0','1','1'}, + {'1','0','1','0','0','0','0','0','0','1','0','0','0','1','0','1','0','0','0','0'}, + {'0','1','1','0','0','0','1','1','1','0','1','0','1','0','1','1','1','1','0','0'}, + {'0','1','0','0','0','0','1','1','0','0','1','0','1','0','0','1','0','0','1','1'}, + {'0','0','0','0','0','0','1','1','1','1','0','1','0','0','0','1','1','0','0','0'} + }; + assert solution.numIslands(grid) == 58; + // TODO bfs 的解法,结果比答案少一个,不知道错在什么地方。老师看到了烦请指点一下。 + // TODO bfs 的解法,结果比答案少一个,不知道错在什么地方。老师看到了烦请指点一下。 + // TODO bfs 的解法,结果比答案少一个,不知道错在什么地方。老师看到了烦请指点一下。 + } + + + class Solution { + public int numIslands(char[][] grid) { + + if (grid == null || grid.length == 0) return 0; + + int res = 0; + + int height = grid.length; + int width = grid[0].length; + for (int i = 0; i < height; i++) { + for (int j = 0; j < width; j++) { + if (grid[i][j] == '1') { + bfs(i, j, width, height, grid); + res++; + } + } + } + return res; + } + + private void bfs(int i, int j, int width, int height, char[][] grid) { + + Queue queue = new LinkedList<>(); + queue.add(i * width + j); + while (!queue.isEmpty()) { + Integer index = queue.poll(); + int x = index / width; + int y = index % width; + if (x < height && x >= 0 && width > y && y >= 0 && grid[x][y] == '1') { + grid[x][y] = '0'; + queue.add((x + 1) * width + y); + queue.add(x * width + y + 1); + queue.add((x - 1) * width + y); + queue.add(x * width + y - 1); + } + } + } + } + + class Solution1 { + public int numIslands(char[][] grid) { + + if (grid == null || grid.length == 0) return 0; + + int res = 0; + + int height = grid.length; + int width = grid[0].length; + for (int i = 0; i < height; i++) { + for (int j = 0; j < width; j++) { + if (grid[i][j] == '1') { + dfs(i, j, width, height, grid); + res++; + } + } + } + return res; + } + + private void dfs(int x, int y, int width, int height, char[][] grid) { + + if (x == height || x < 0 || width == y || y < 0 || grid[x][y] == '0') { + return; + } + grid[x][y] = '0'; + dfs(x + 1, y, width, height, grid); + dfs(x, y + 1, width, height, grid); + dfs(x - 1, y, width, height, grid); + dfs(x, y - 1, width, height, grid); + } + } + +} \ No newline at end of file diff --git a/Week 03/id_476/LeetCode_33_476.java b/Week 03/id_476/LeetCode_33_476.java new file mode 100644 index 000000000..4a907f80d --- /dev/null +++ b/Week 03/id_476/LeetCode_33_476.java @@ -0,0 +1,108 @@ +public class LeetCode_33_SearchInRotatedSortedArray { + public static void main(String[] args) { + Solution solution = new LeetCode_33_SearchInRotatedSortedArray().new Solution(); + int res; + res = solution.search(new int[]{1}, 1); + assert res == 0; + res = solution.search(new int[]{4, 5, 6, 7, 0, 1, 2}, 0); + assert res == 4; + res = solution.search(new int[]{4, 5, 6, 7, 0, 1, 2}, 3); + assert res == -1; + } + + + class Solution4 { + public int search(int[] nums, int target) { + + int low = 0; + int high = nums.length - 1; + while (low < high) { + int middle = low + (high - low + 1) / 2; + if ((nums[0] <= target && target < nums[middle]) || (nums[0] > nums[middle] && nums[middle] > target) || (nums[middle] < nums[0] && nums[0] <= target)) { + high = middle - 1; + } else { + low = middle; + } + } + + return low == high && nums[low] == target ? low : -1; + } + } + + class Solution { + public int search(int[] nums, int target) { + + if (nums.length == 0) return -1; + + // 找到旋转点 + int minIndex = findMinIndex(nums); + if (nums[minIndex] == target) return minIndex; + int low = 0; + int high = nums.length - 1; + if (target > nums[high]) { + high = minIndex - 1; + } else { + low = minIndex; + } + // 二分查找 + while (low < high) { + int middle = low + (high - low) / 2; + if (target > nums[middle]) { + low = middle + 1; + } else { + high = middle; + } + } + + return low == high && nums[low] == target ? low : -1; + } + + private int findMinIndex(int[] nums) { + + int low = 0; + int high = nums.length - 1; + while (low < high) { + // 左中位数 + int middle = low + (high - low) / 2; + if (nums[middle] > nums[high]) { + low = middle + 1; + } else { + high = middle; + } + } + return low; + } + } + + class Solutio2 { + public int search(int[] nums, int target) { + + int low = 0; + int high = nums.length - 1; + while (low < high) { + int middle = low + (high - low) / 2; + if ((nums[0] > target) ^ (nums[0] > nums[middle]) ^ (target > nums[middle])) { + low = middle + 1; + } else { + high = middle; + } + } + + return low == high && nums[low] == target ? low : -1; + } + } + + class Solution1 { + public int search(int[] nums, int target) { + + for (int i = 0; i < nums.length; i++) { + if (nums[i] == target) { + return i; + } + } + + return -1; + } + } + +} \ No newline at end of file diff --git a/Week 03/id_476/LeetCode_45_476.java b/Week 03/id_476/LeetCode_45_476.java new file mode 100644 index 000000000..a6c6ce1fe --- /dev/null +++ b/Week 03/id_476/LeetCode_45_476.java @@ -0,0 +1,27 @@ +public class LeetCode_45_JumpGameIi { + public static void main(String[] args) { + Solution solution = new LeetCode_45_JumpGameIi().new Solution(); + } + + + class Solution { + public int jump(int[] nums) { + + int steps = 0; + // 当前点能到达的最远距离 + int curEnd = 0; + // 当前点能到达的范围内的点能到达的最远距离 + int curFarthest = 0; + // 贪心算法,每次跳到当前点能到达的范围内能跳最远距离的点 + for (int i = 0; i < nums.length - 1; i++) { + curFarthest = Math.max(curFarthest, nums[i] + i); + if (curEnd == i) { + steps++; + curEnd = curFarthest; + } + } + return steps; + } + } + +} \ No newline at end of file diff --git a/Week 03/id_476/LeetCode_74_476.java b/Week 03/id_476/LeetCode_74_476.java new file mode 100644 index 000000000..21cadb6a1 --- /dev/null +++ b/Week 03/id_476/LeetCode_74_476.java @@ -0,0 +1,31 @@ +public class LeetCode_74_SearchA2dMatrix { + public static void main(String[] args) { + Solution solution = new LeetCode_74_SearchA2dMatrix().new Solution(); + assert !solution.searchMatrix(new int[][]{{1}, {3}}, 2); + } + + + class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + + if (matrix.length == 0 || matrix[0].length == 0) return false; + int height = matrix.length; + int width = matrix[0].length; + + int low = 0; + int high = height * width - 1; + while (low < high) { + int middle = low + (high - low) / 2; + int x = middle / width; + int y = middle % width; + if (matrix[x][y] < target) { + low = middle + 1; + } else { + high = middle; + } + } + return matrix[low / width][low % width] == target; + } + } + +} \ No newline at end of file diff --git a/Week 03/id_476/LeetCode_860_476.java b/Week 03/id_476/LeetCode_860_476.java new file mode 100644 index 000000000..977500838 --- /dev/null +++ b/Week 03/id_476/LeetCode_860_476.java @@ -0,0 +1,29 @@ +public class LeetCode_860_LemonadeChange { + public static void main(String[] args) { + Solution solution = new LeetCode_860_LemonadeChange().new Solution(); + } + + + class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0; + int ten = 0; + for (int bill : bills) { + if (bill == 5) { + five++; + } else if (bill == 10) { + five--; + ten++; + } else if (ten > 0) { + ten--; + five--; + } else { + five -= 3; + } + if (five < 0) return false; + } + return true; + } + } + +} \ No newline at end of file From 8bdbe1da5d385d642ca9bff24b8273b32004b518 Mon Sep 17 00:00:00 2001 From: cvfghemiao <435657404@qq.com> Date: Sun, 3 Nov 2019 22:19:43 +0800 Subject: [PATCH 147/740] Week 03 Homework --- Week 03/id_331/LeetCode_122_331.java | 13 +++ Week 03/id_331/LeetCode_860_331.java | 30 ++++++ Week 03/id_331/NOTE.md | 146 +++++++++++++++++++++++++++ 3 files changed, 189 insertions(+) create mode 100644 Week 03/id_331/LeetCode_122_331.java create mode 100644 Week 03/id_331/LeetCode_860_331.java diff --git a/Week 03/id_331/LeetCode_122_331.java b/Week 03/id_331/LeetCode_122_331.java new file mode 100644 index 000000000..8d4180aa4 --- /dev/null +++ b/Week 03/id_331/LeetCode_122_331.java @@ -0,0 +1,13 @@ +class Solution { + + public int maxProfit(int[] prices) { + int maxprofit = 0; + for (int i = 1; i < prices.length; i++) { + if (prices[i] > prices[i - 1]) { + maxprofit += prices[i] - prices[i - 1]; + } + } + + return maxprofit; + } +} \ No newline at end of file diff --git a/Week 03/id_331/LeetCode_860_331.java b/Week 03/id_331/LeetCode_860_331.java new file mode 100644 index 000000000..a6c3075da --- /dev/null +++ b/Week 03/id_331/LeetCode_860_331.java @@ -0,0 +1,30 @@ +class Solution { + + public boolean lemonadeChange(int[] bills) { + int five = 0, ten = 0; + for (int bill : bills) { + + if (bill == 5) { + five++; + } else if (bill == 10) { + if (five == 0) { + return false; + } + five--; + ten++; + } else { + if (five > 0 && ten > 0) { + five--; + ten--; + } else if (five >= 3) { + five -= 3; + } else { + return false; + } + } + + } + + return true; + } +} \ No newline at end of file diff --git a/Week 03/id_331/NOTE.md b/Week 03/id_331/NOTE.md index a6321d6e2..1d8787624 100644 --- a/Week 03/id_331/NOTE.md +++ b/Week 03/id_331/NOTE.md @@ -2,3 +2,149 @@ +#### DFS代码 - 递归写法 + +```java +visited = set() + +def dfs(node, visited): +if node in visited: # terminator + # already visited + return + + visited.add(node) + + # process current node here. + ... + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) + + + +``` + + + +#### DFS代码 - 非递归写法 + +```java +def DFS(self, tree): + + if tree.root is None: + return [] + + visited, stack = [], [tree.root] + + while stack: + node = stack.pop() + visited.add(node) + + process (node) + nodes = generate_related_nodes(node) + stack.push(nodes) + + # other processing work + ... +``` + + + +#### BFS 代码模块 + +```java +def BFS(graph, start, end): + + queue = [] + queue.append([start]) + visited.add(start) + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + + # other processing work + ... +``` + + + +#### 贪心算法 Greedy + +##### 定义 + +贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。 + + + +##### 适用贪心算法的场景 + +简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。这种子问题最优解称为最优子结构。 + + + +#### 二分查找 + +##### 前提 + +- 目标函数单调性(单调递增或递减) +- 存在上下界 +- 能够通过索引访问 + + + +##### 代码模板 + +```java +left, right = 0, len(array) - 1 +while left <= right: + mid = (left + right) / 2 + if array[mid] == target: + # find the target!! + break or return result + elif array[mid] < target: + left = mid + 1 + else: + right = mid - 1 +``` + + + +##### 课后习题 + +> 使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 + +```java +class Solution { + + //思路: + //1.直接套用代码模板,先将left,right,mid三个指针找到。 + //2.如果nums[mid]大于nums[right],说明右端无序,将left指针移动到mid+1 + //3.如果nums[mid]小于nums[right],说明左端无序,将right指针移动到mid+1 + //4.当left > right,取nums[left] + public int search(int[] nums) { + if (nums == null || nums.length == 0) { + return -1; + } + + int left = 0; + int right = nums.length - 1; + int mid; + while (left <= right) { + mid = (left + right) / 2; + + if (nums[mid] > nums[right]) { + left = mid + 1; + } else { + right = mid - 1; + } + } + return nums[left]; + } +} +``` + From 13abba34061dac253b64a78df5fe738cd37a2fe6 Mon Sep 17 00:00:00 2001 From: Poplar Date: Sun, 3 Nov 2019 22:21:00 +0800 Subject: [PATCH 148/740] 171-Week 03 171-Week 03 --- Week 03/id_171/AssignCookiesSol.cs | 30 ++++++++++ .../id_171/BestTimeToBuyAndSellStockIISol.cs | 60 +++++++++++++++++++ .../FindMinimumInRotatedSortedArraySol.cs | 45 ++++++++++++++ Week 03/id_171/SearchA2dMatrixSol.cs | 45 ++++++++++++++ .../id_171/SearchInRotatedSortedArraySol.cs | 46 ++++++++++++++ 5 files changed, 226 insertions(+) create mode 100644 Week 03/id_171/AssignCookiesSol.cs create mode 100644 Week 03/id_171/BestTimeToBuyAndSellStockIISol.cs create mode 100644 Week 03/id_171/FindMinimumInRotatedSortedArraySol.cs create mode 100644 Week 03/id_171/SearchA2dMatrixSol.cs create mode 100644 Week 03/id_171/SearchInRotatedSortedArraySol.cs diff --git a/Week 03/id_171/AssignCookiesSol.cs b/Week 03/id_171/AssignCookiesSol.cs new file mode 100644 index 000000000..3757c63a5 --- /dev/null +++ b/Week 03/id_171/AssignCookiesSol.cs @@ -0,0 +1,30 @@ +using System; + +namespace Poplar.Algorithm.WeekThree +{ + /// + /// 分发饼干 + /// https://leetcode.com/problems/assign-cookies + /// https://leetcode-cn.com/problems/assign-cookies + /// + public class AssignCookiesSol + { + public int FindContentChildren(int[] g, int[] s) + { + Array.Sort(g); + Array.Sort(s); + var count = 0; + var i = 0; + var j = 0; + while (i < g.Length && j < s.Length) + { + if (g[i] <= s[j]) + { + i++; + } + j++; + } + return count; + } + } +} diff --git a/Week 03/id_171/BestTimeToBuyAndSellStockIISol.cs b/Week 03/id_171/BestTimeToBuyAndSellStockIISol.cs new file mode 100644 index 000000000..dde44766d --- /dev/null +++ b/Week 03/id_171/BestTimeToBuyAndSellStockIISol.cs @@ -0,0 +1,60 @@ +namespace Poplar.Algorithm.WeekThree +{ + /// + /// 买卖股票最佳时机II + /// https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/description/ + /// https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/ + /// + public class BestTimeToBuyAndSellStockIISol + { + public int MaxProfit(int[] prices) + { + //return PeakValley(prices); + return Greedy(prices); + } + + /// + /// 峰谷法,在谷买,在峰卖,减少购买次数 + /// + /// + /// + public int PeakValley(int[] prices) + { + var i = 0; + var profit = 0; + while (i < prices.Length - 1) + { + while (i < prices.Length - 1 && prices[i] >= prices[i + 1]) + { + i++; + } + var buy = prices[i]; + while (i < prices.Length - 1 && prices[i] <= prices[i + 1]) + { + i++; + } + var sell = prices[i]; + profit += sell - buy; + } + return profit; + } + + /// + /// 贪心算法,只要今天价格比明天高,就在今天买明天卖 + /// + /// + /// + private int Greedy(int[] prices) + { + var profit = 0; + for (int i = 0; i < prices.Length - 1; i++) + { + if (prices[i] < prices[i + 1]) + { + profit += prices[i + 1] - prices[i]; + } + } + return profit; + } + } +} diff --git a/Week 03/id_171/FindMinimumInRotatedSortedArraySol.cs b/Week 03/id_171/FindMinimumInRotatedSortedArraySol.cs new file mode 100644 index 000000000..2f9d158f1 --- /dev/null +++ b/Week 03/id_171/FindMinimumInRotatedSortedArraySol.cs @@ -0,0 +1,45 @@ +namespace Poplar.Algorithm.WeekThree +{ + /// + /// 寻找旋转排序数组中的最小值 + /// https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/ + /// https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ + /// + public class FindMinimumInRotatedSortedArraySol + { + /// + /// 二分查找法 + /// + /// + /// + public int FindMin(int[] nums) + { + if (nums.Length == 1) + { + return nums[0]; + } + var lo = 0; + var hi = nums.Length - 1; + while (lo < hi) + { + if (nums[lo] < nums[hi]) + { + return nums[lo]; + } + var mid = (lo + hi) / 2; + //新的右边界必须是mid + 1,左边界必须是mid。 + //当前循环时,如果左半部分的左边值大于右边值,则证明旋转点在左半部分,此时左半部分的右边界是一个较小的值,它可能是最小值,所以新的右边界不能加1。 + //如果左半部分的左边值小于右边值,则旋转点在右半部分,但是并不会是右半部分的左边界值,因为这个值大于是大于左半部分的左边界值的,所以新的左边界需要加1 + if (nums[lo] > nums[mid]) + { + hi = mid; + } + else + { + lo = mid + 1; + } + } + return nums[lo]; + } + } +} diff --git a/Week 03/id_171/SearchA2dMatrixSol.cs b/Week 03/id_171/SearchA2dMatrixSol.cs new file mode 100644 index 000000000..4e1d1ebf2 --- /dev/null +++ b/Week 03/id_171/SearchA2dMatrixSol.cs @@ -0,0 +1,45 @@ +namespace Poplar.Algorithm.WeekThree +{ + /// + /// 搜索二维矩阵 + /// https://leetcode.com/problems/search-a-2d-matrix/ + /// https://leetcode-cn.com/problems/search-a-2d-matrix/ + /// + public class SearchA2dMatrixSol + { + /// + /// 二分法 + /// + /// + /// + /// + public bool SearchMatrix(int[][] matrix, int target) + { + if (matrix == null || matrix.Length == 0) + { + return false; + } + var width = matrix[0].Length; + var lo = 0; + var hi = width * matrix.Length - 1; + while (lo <= hi) + { + var mid = (lo + hi) / 2; + var cur = matrix[mid / width][mid % width]; + if (cur == target) + { + return true; + } + else if (cur > target) + { + hi = mid - 1; + } + else + { + lo = mid + 1; + } + } + return false; + } + } +} diff --git a/Week 03/id_171/SearchInRotatedSortedArraySol.cs b/Week 03/id_171/SearchInRotatedSortedArraySol.cs new file mode 100644 index 000000000..918d2963d --- /dev/null +++ b/Week 03/id_171/SearchInRotatedSortedArraySol.cs @@ -0,0 +1,46 @@ +namespace Poplar.Algorithm.WeekThree +{ + /// + /// 搜索旋转排序数组 + /// https://leetcode.com/problems/search-in-rotated-sorted-array/ + /// https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ + /// + public class SearchInRotatedSortedArraySol + { + /// + /// 二分查找。 + /// 当左半边是有序时并且target不在左半边范围内的,向右走。 + /// 当左半边是无序的并且target大于mid并且target小于索引0的位置,向右走。 + /// 否则就是向左走。 + /// + /// + /// + /// + public int Search(int[] nums, int target) + { + if (nums == null || nums.Length == 0) + { + return -1; + } + var lo = 0; + var hi = nums.Length - 1; + while (lo < hi) + { + var mid = (lo + hi) / 2; + if (nums[0] <= nums[mid] && (target > nums[mid] || target < nums[0])) + { + lo = mid + 1; + } + else if (target > nums[mid] && target < nums[0]) + { + lo = mid + 1; + } + else + { + hi = mid; + } + } + return lo == hi && nums[lo] == target ? lo : -1; + } + } +} From 89a41d5a0f01260c76427ae093579062a82e8fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=B6=E4=B8=80=E5=8D=9A?= Date: Sun, 3 Nov 2019 22:24:25 +0800 Subject: [PATCH 149/740] =?UTF-8?q?=E6=96=B0=E5=A2=9Eweek=2003,week=2002?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 02/id_531/leetCode_145_531.go | 23 +++++++++ Week 02/id_531/leetCode_242_531.go | 21 ++++++++ Week 02/id_531/leetCode_94_531.go | 25 ++++++++++ Week 03/id_531/leetCode_127_531.go | 69 ++++++++++++++++++++++++++ Week 03/id_531/leetCode_33_531.go | 60 ++++++++++++++++++++++ Week 03/id_531/leetCode_33_531_test.go | 37 ++++++++++++++ 6 files changed, 235 insertions(+) create mode 100644 Week 02/id_531/leetCode_145_531.go create mode 100644 Week 02/id_531/leetCode_242_531.go create mode 100644 Week 02/id_531/leetCode_94_531.go create mode 100644 Week 03/id_531/leetCode_127_531.go create mode 100644 Week 03/id_531/leetCode_33_531.go create mode 100644 Week 03/id_531/leetCode_33_531_test.go diff --git a/Week 02/id_531/leetCode_145_531.go b/Week 02/id_531/leetCode_145_531.go new file mode 100644 index 000000000..4e0eb4c76 --- /dev/null +++ b/Week 02/id_531/leetCode_145_531.go @@ -0,0 +1,23 @@ +package id_531 + +//PostOrderTraversal 二叉树后续遍历 +func PostOrderTraversal(root *TreeNode) []int { + + var res []int + helper2(root, &res) + return res + +} + +func helper2(root *TreeNode, res *[]int) { + //terminal + if root != nil { + if root.Left != nil { + helper(root.Left, res) + } + if root.Right != nil { + helper(root.Right, res) + } + *res = append(*res, root.Val) + } +} diff --git a/Week 02/id_531/leetCode_242_531.go b/Week 02/id_531/leetCode_242_531.go new file mode 100644 index 000000000..c2768cda1 --- /dev/null +++ b/Week 02/id_531/leetCode_242_531.go @@ -0,0 +1,21 @@ +package id_531 + +//IsAnagram t是否s是字母异位词 +func IsAnagram(s string, t string) bool { + if len(s) != len(t) { + return false + } + sr := []rune(s) + tr := []rune(t) + m := make(map[rune]int, 0) + for i := range sr { + m[sr[i]]++ + m[tr[i]]-- + } + for _, v := range m { + if v != 0 { + return false + } + } + return true +} diff --git a/Week 02/id_531/leetCode_94_531.go b/Week 02/id_531/leetCode_94_531.go new file mode 100644 index 000000000..0301dfb82 --- /dev/null +++ b/Week 02/id_531/leetCode_94_531.go @@ -0,0 +1,25 @@ +package id_531 + +type TreeNode struct { + Val int + Left *TreeNode + Right *TreeNode +} + +func InOrderTraversal(root *TreeNode) []int { + var res []int + helper(root, &res) + return res +} + +func helper(root *TreeNode, res *[]int) { + if root != nil { + if root.Left != nil { + helper(root.Left, res) + } + *res = append(*res, root.Val) + if root.Right != nil { + helper(root.Right, res) + } + } +} diff --git a/Week 03/id_531/leetCode_127_531.go b/Week 03/id_531/leetCode_127_531.go new file mode 100644 index 000000000..b0c907b78 --- /dev/null +++ b/Week 03/id_531/leetCode_127_531.go @@ -0,0 +1,69 @@ +package id_531 + +//func ladderLength(beginWord string, endWord string, wordList []string) int { +// // 所有的单词都是一个长度 +// lth := len(beginWord) +// //通用状态树 +// grapMap := createStateGraph(wordList) +// +// return 0 +//} +// +//func createStateGraph(words []string) map[string][]string { +// result := make(map[string][]string) +// for _, word := range words { +// wordRune := []rune(word) +// for i := 0; i <= len(wordRune); i++ { +// +// } +// } +// return result +//} + +func ladderLength(beginWord string, endWord string, wordList []string) int { + dict := make(map[string]bool) // 把word存入字典 + for _, word := range wordList { + dict[word] = true // 可以利用字典快速添加、删除和查找单词 + } + if _, ok := dict[endWord]; !ok { + return 0 + } + + //题解,所有的单词都是一个长度 + lgt := len(beginWord) + var steps int + + var queue []string + queue = append(queue, beginWord) + + for len(queue) > 0 { + steps++ + size := len(queue) + for i := size; i > 0; i-- { // 当前层级节点 + // 原始单词,queue.pop() + word := queue[0] + queue = queue[1:] + chs := []rune(word) + for i := 0; i < lgt; i++ { // 对单词的每一位进行修改 + ch := chs[i] // 对当前单词的一位 + for c := 'a'; c <= 'z'; c++ { // 尝试从a-z + if c == ch { // 跳过本身比如hot修改为hot + continue + } + chs[i] = c + newWord := string(chs) + if newWord == endWord { // 找到结果 + return steps + 1 + } + if _, ok := dict[newWord]; !ok { // 不在dict中,跳过 + continue + } + delete(dict, newWord) // 从字典中删除该单词,因为已经访问过,若重复访问路径一定不是最短的 + queue = append(queue, newWord) // 将新的单词添加到队列 + } + chs[i] = ch // 单词的第i位复位,再进行下面的操作 + } + } + } + return 0 +} diff --git a/Week 03/id_531/leetCode_33_531.go b/Week 03/id_531/leetCode_33_531.go new file mode 100644 index 000000000..1cb265b9c --- /dev/null +++ b/Week 03/id_531/leetCode_33_531.go @@ -0,0 +1,60 @@ +package id_531 + +func search(nums []int, target int) int { + if len(nums) <= 0 { + return -1 + } + // 二分查找,单调性,边界,可索引 + bpIndex := findBreakPoint(nums) + var left, right int + if bpIndex == 0 { + left, right = 0, len(nums)-1 + } else { + if nums[0] == target { + return 0 + } + if nums[0] < target { + left, right = 0, bpIndex-1 + } else { + left, right = bpIndex, len(nums)-1 + } + } + + for left <= right { + mid := left + (right-left)>>1 + if nums[mid] == target { + return mid + } + if nums[mid] > target { + right = mid - 1 + } else { + left = mid + 1 + } + } + return -1 +} + +func findBreakPoint(nums []int) int { + bpIndex := 0 + count := len(nums) + for i := 1; i < count; i++ { + if nums[i] < nums[i-1] { + bpIndex = i + } + } + return bpIndex +} + +func BFindBreakPoint(nums []int) int { + left, right := 0, len(nums)-1 + lastElement := nums[right] + for left < right { + mid := left + (right-left)>>1 + if nums[mid] < lastElement { + right = mid + } else { + left = mid + 1 + } + } + return left +} diff --git a/Week 03/id_531/leetCode_33_531_test.go b/Week 03/id_531/leetCode_33_531_test.go new file mode 100644 index 000000000..5236c698f --- /dev/null +++ b/Week 03/id_531/leetCode_33_531_test.go @@ -0,0 +1,37 @@ +package id_531 + +import "testing" + +func TestBFindBreakPoint(t *testing.T) { + type args struct { + nums []int + } + tests := []struct { + name string + args args + want int + }{ + + { + name: "test TestBFindBreakPoint", + args: args{ + nums: []int{10, 11, 12, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9}, + }, + want: 4, + }, + { + name: "test TestBFindBreakPoint", + args: args{ + nums: []int{10, 9}, + }, + want: 1, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := BFindBreakPoint(tt.args.nums); got != tt.want { + t.Errorf("BFindBreakPoint() = %v, want %v", got, tt.want) + } + }) + } +} From 0900b13de32716008b7bc6c9ff57cce1e2705424 Mon Sep 17 00:00:00 2001 From: Teslapatrick <“teslapatrick@gmail.com”> Date: Sun, 3 Nov 2019 22:27:29 +0800 Subject: [PATCH 150/740] Lesson 2 complementary --- Week 02/id_636/LeetCode_22_636.py | 48 ++++++++++++++++++++++++++++ Week 02/id_636/LeetCode_242_636.py | 45 ++++++++++++++++++++++++-- Week 02/id_636/LeetCode_589_636.py | 51 ++++++++++++++++++++++++++++++ Week 02/id_636/LeetCode_590_636.py | 51 ++++++++++++++++++++++++++++++ Week 02/id_636/LeetCode_70_636.py | 44 ++++++++++++++++++++++++++ Week 02/id_636/LeetCode_94_636.py | 13 +++++++- 6 files changed, 248 insertions(+), 4 deletions(-) create mode 100644 Week 02/id_636/LeetCode_22_636.py create mode 100644 Week 02/id_636/LeetCode_589_636.py create mode 100644 Week 02/id_636/LeetCode_590_636.py create mode 100644 Week 02/id_636/LeetCode_70_636.py diff --git a/Week 02/id_636/LeetCode_22_636.py b/Week 02/id_636/LeetCode_22_636.py new file mode 100644 index 000000000..6adf07cbf --- /dev/null +++ b/Week 02/id_636/LeetCode_22_636.py @@ -0,0 +1,48 @@ +''' + # 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 + # + # 例如,给出 n = 3,生成结果为: + # + # [ + # "((()))", + # "(()())", + # "(())()", + # "()(())", + # "()()()" + # ] + # + # 链接:https://leetcode-cn.com/problems/generate-parentheses +''' +class List(list): + pass + +class Solution: + def generateParenthesis(self, n: int) -> List: + # init res + res = [] + levelS = "" + + def generator(left: int, right: int, n: int, s: str): + # terminator + if left == n and right == n: + res.append(s) + return + + # cache + # s1 = s + "(" + # s2 = s + ")" + + # process + if left < n: + generator(left + 1, right, n, s + "(") + + if left > right and right < n: + generator(left, right + 1 , n, s + ")") + + generator(0, 0, n, levelS) + + return res + +if __name__ == '__main__': + s = Solution() + print("res: ", s.generateParenthesis(3)) \ No newline at end of file diff --git a/Week 02/id_636/LeetCode_242_636.py b/Week 02/id_636/LeetCode_242_636.py index 881b8f60f..4844eec47 100644 --- a/Week 02/id_636/LeetCode_242_636.py +++ b/Week 02/id_636/LeetCode_242_636.py @@ -47,6 +47,45 @@ def isAngramMap(self, s: str, t: str) -> bool: return sDict == tDict + def isAngramMapUpdate(self, s: str, t: str) -> bool: + + # check length + if len(s) != len(t): + return False + # new dict + sDict = dict() + tDict = dict() + + for index in range(len(s)): + sDict.update({ + s[index]: sDict.setdefault(s[index], 0) + 1 + }) + + tDict.update({ + t[index]: tDict.setdefault(t[index], 0) + 1 + }) + + return sDict == tDict + + def isAngramMapDefault(self, s: str, t: str) -> bool: + # check length + if len(s) != len(t): + return False + + from collections import defaultdict + + # new dict + sDict = defaultdict(lambda: 0) + tDict = defaultdict(lambda: 0) + + for index in range(len(s)): + sDict[s[index]] += 1 + tDict[t[index]] += 1 + + print(sDict, tDict) + + return sDict == tDict + def isAngramCollections(self, s: str, t: str) -> bool: import collections return collections.Counter(s) == collections.Counter(t) @@ -54,7 +93,7 @@ def isAngramCollections(self, s: str, t: str) -> bool: if __name__ == '__main__': s = Solution() - str1 = "aaaaaab" - str2 = "baaaaaa" + str1 = "a" + str2 = "b" - print(s.isAngramCollections(str1, str2)) + print(s.isAngramMapDefault(str1, str2)) diff --git a/Week 02/id_636/LeetCode_589_636.py b/Week 02/id_636/LeetCode_589_636.py new file mode 100644 index 000000000..5b7f08a45 --- /dev/null +++ b/Week 02/id_636/LeetCode_589_636.py @@ -0,0 +1,51 @@ +''' +给定一个 N 叉树,返回其节点值的前序遍历。 + +例如,给定一个 3叉树 : + 1 + 👆 👆 + 3 2 4 + 👆👆 +5 6 + +返回其前序遍历: [1,3,5,6,2,4]。 +''' + +class List(list): + pass + +# Definition for a Node. +class Node: + def __init__(self, val, children): + self.val = val + self.children = children + +class Solution: + def preorder(self, root: 'Node') -> List[int]: + ''' + :param root: Node + :return: list + 遍历 root 中所有的 children + ''' + # init res + res = [] + + if not root: + return res + + res += [root.val] + + # for loop + for child in root.children: + res += self.preorder(child) + # return res + return res + + def preOrder(self, root: 'Node') -> List[int]: + ''' + :param root: Node + :return: Lisr + 使用 stack 的方法 + ''' + + diff --git a/Week 02/id_636/LeetCode_590_636.py b/Week 02/id_636/LeetCode_590_636.py new file mode 100644 index 000000000..5406a9a8c --- /dev/null +++ b/Week 02/id_636/LeetCode_590_636.py @@ -0,0 +1,51 @@ +""" +给定一个 N 叉树,返回其节点值的后序遍历。 + +例如,给定一个 3 叉树: + 1 + 👆 👆 + 3 2 4 + 👆👆 +5 6 + +返回其后序遍历: [5,6,3,2,4,1] +""" + +class Node: + def __init__(self, val, children): + self.val = val + self.children = children + +class Solution: + def postOrder(self, root: 'Node') -> list: + ''' + :param root: Node + :return: list + 1:本方案使用的是递归的方法 + ''' + # init res + res = [] + # if not root, return current res + if not root: + return res + + for child in root.children: + res += self.postOrder(child) + res += [root.val] + + return res + + def postOrder(self, root: 'Node') -> list: + + ''' + :param root: + :return: list + 2:stack 的方案 + ''' + # init res + res = [] + + + + + diff --git a/Week 02/id_636/LeetCode_70_636.py b/Week 02/id_636/LeetCode_70_636.py new file mode 100644 index 000000000..4b0b6ca09 --- /dev/null +++ b/Week 02/id_636/LeetCode_70_636.py @@ -0,0 +1,44 @@ +''' + 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 + + 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? + + 注意:给定 n 是一个正整数。 + + 示例 1: + + 输入: 2 + 输出: 2 + 解释: 有两种方法可以爬到楼顶。 + 1. 1 阶 + 1 阶 + 2. 2 阶 + 示例 2: + + 输入: 3 + 输出: 3 + 解释: 有三种方法可以爬到楼顶。 + 1. 1 阶 + 1 阶 + 1 阶 + 2. 1 阶 + 2 阶 + 3. 2 阶 + 1 阶 + + 链接:https://leetcode-cn.com/problems/climbing-stairs +''' + + +class Solution: + def climbStairs(self, n: int) -> int: + # check the n + if n <= 2: + return n + + num1, num2, num3 = 1, 2, 0 + for index in range(3, n + 1): + num3 = num1 + num2 + num1 = num2 + num2 = num3 + + return num3 + +if __name__ == '__main__': + s = Solution() + print("res: ", s.climbStairs(5)) \ No newline at end of file diff --git a/Week 02/id_636/LeetCode_94_636.py b/Week 02/id_636/LeetCode_94_636.py index 216fc7eb9..e574a470f 100644 --- a/Week 02/id_636/LeetCode_94_636.py +++ b/Week 02/id_636/LeetCode_94_636.py @@ -12,4 +12,15 @@ def inorderTraversal(self, root: TreeNode) -> List[int]: ''' # init result = [] - stack = [(1, root)] + + def loop(root: TreeNode): + if not root: + return + + loop(root.left) + result.append(root.val) + loop(root.right) + + loop(root) + + return result From 09d02fc4f968b079f90d6f7463a8b158be52b0f4 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 3 Nov 2019 22:28:13 +0800 Subject: [PATCH 151/740] ci --- Week 01/id_431/NOTE.md | 22 ++++----- Week 02/id_431/NOTE.md | 6 ++- Week 03/id_431/LeetCode_102_431.java | 65 ++++++++++++++++++++++++++ Week 03/id_431/LeetCode_122_431.java | 20 ++++++++ Week 03/id_431/LeetCode_127_431.java | 53 ++++++++++++++++++++++ Week 03/id_431/LeetCode_200_431.java | 41 +++++++++++++++++ Week 03/id_431/LeetCode_433_431.java | 61 +++++++++++++++++++++++++ Week 03/id_431/LeetCode_515_431.java | 68 ++++++++++++++++++++++++++++ Week 03/id_431/LeetCode_860_431.java | 19 ++++++++ Week 03/id_431/NOTE.md | 15 ++++++ 10 files changed, 357 insertions(+), 13 deletions(-) create mode 100644 Week 03/id_431/LeetCode_102_431.java create mode 100644 Week 03/id_431/LeetCode_122_431.java create mode 100644 Week 03/id_431/LeetCode_127_431.java create mode 100644 Week 03/id_431/LeetCode_200_431.java create mode 100644 Week 03/id_431/LeetCode_433_431.java create mode 100644 Week 03/id_431/LeetCode_515_431.java create mode 100644 Week 03/id_431/LeetCode_860_431.java diff --git a/Week 01/id_431/NOTE.md b/Week 01/id_431/NOTE.md index c016680c9..b3ce99f44 100644 --- a/Week 01/id_431/NOTE.md +++ b/Week 01/id_431/NOTE.md @@ -9,17 +9,17 @@ 题目名称|难易度|第一遍时间|第二遍时间|第三遍时间|第四遍时间|第五遍时间|地址 :-:|:-:|:-:|:-:|:-:|:-:|:-:|:-: -Two Sum|Easy|2019-10-17|||||https://leetcode.com/problems/two-sum/ -ContainerWithMostWater|Medium|2019-10-18|||||https://leetcode.com/problems/container-with-most-water/submissions/ -Move Zeros|Easy|2019-10-18|||||https://leetcode.com/problems/move-zeroes/ -Climbing Stairs|Easy|2019-10-18|||||https://leetcode.com/problems/climbing-stairs/ -3Sum|Medium|2019-10-20|||||https://leetcode.com/problems/3sum/ -Remove Duplicates from Sorted Array|Easy|2019-10-20|||||https://leetcode.com/problems/remove-duplicates-from-sorted-array/ -Design Circular Deque|Medium|2019-10-20|||||https://leetcode.com/problems/design-circular-deque/ -`Trapping Rain Water`|Hard|2019-10-20|||||https://leetcode.com/problems/trapping-rain-water/ -Reverse Linked List|Easy|2019-10-21|||||https://leetcode.com/problems/reverse-linked-list/ -Swap Nodes in Pairs|Medium|2019-10-21|||||https://leetcode.com/problems/swap-nodes-in-pairs/ -Linked List Cycle|Easy|2019-10-21|||||https://leetcode.com/problems/linked-list-cycle/ +Two Sum|Easy|2019-10-17|2019-10-28||||https://leetcode.com/problems/two-sum/ +ContainerWithMostWater|Medium|2019-10-18|2019-10-28||||https://leetcode.com/problems/container-with-most-water/submissions/ +Move Zeros|Easy|2019-10-18|2019-10-28||||https://leetcode.com/problems/move-zeroes/ +Climbing Stairs|Easy|2019-10-18|2019-10-28||||https://leetcode.com/problems/climbing-stairs/ +3Sum|Medium|2019-10-20|2019-10-28||||https://leetcode.com/problems/3sum/ +Remove Duplicates from Sorted Array|Easy|2019-10-20|2019-10-28||||https://leetcode.com/problems/remove-duplicates-from-sorted-array/ +Design Circular Deque|Medium|2019-10-20|2019-10-28||||https://leetcode.com/problems/design-circular-deque/ +`Trapping Rain Water`|Hard|2019-10-20|2019-10-29||||https://leetcode.com/problems/trapping-rain-water/ +Reverse Linked List|Easy|2019-10-21|2019-10-30||||https://leetcode.com/problems/reverse-linked-list/ +Swap Nodes in Pairs|Medium|2019-10-21|2019-10-30||||https://leetcode.com/problems/swap-nodes-in-pairs/ +Linked List Cycle|Easy|2019-10-21|2019-10-30||||https://leetcode.com/problems/linked-list-cycle/ Linked List Cycle II|Medium|2019-10-22|||||https://leetcode.com/problems/linked-list-cycle-ii Reverse Nodes in k-Group|Hard|2019-10-22|||||https://leetcode.com/problems/reverse-nodes-in-k-group/ Rotate Array|Easy|2019-10-22|||||https://leetcode.com/problems/rotate-array/ diff --git a/Week 02/id_431/NOTE.md b/Week 02/id_431/NOTE.md index ff7c2a747..1eaf77f0d 100644 --- a/Week 02/id_431/NOTE.md +++ b/Week 02/id_431/NOTE.md @@ -14,7 +14,7 @@ Binary Tree Inorder Traversal|Medium|2019-10-23|||||https://leetcode.com/problem Binary Tree Preorder Traversal|Medium|2019-10-23|||||https://leetcode.com/problems/binary-tree-preorder-traversal/ N-ary Tree Postorder Traversal|Easy|2019-10-23|||||https://leetcode.com/problems/n-ary-tree-postorder-traversal/ N-ary Tree Preorder Traversal|Easy|2019-10-23|||||https://leetcode.com/problems/n-ary-tree-preorder-traversal/ -Generate Parentheses|Medium|2019-10-23|||||https://leetcode.com/problems/generate-parentheses/ +Generate Parentheses|Medium|2019-10-23|2019-10-31||||https://leetcode.com/problems/generate-parentheses/ Invert Binary Tree|Easy|2019-10-23|||||https://leetcode.com/problems/invert-binary-tree/ Validate Binary Search Tree|Medium|2019-10-24|||||https://leetcode.com/problems/validate-binary-search-tree/ Maximum Depth of Binary Tree|Easy|2019-10-24|||||https://leetcode.com/problems/maximum-depth-of-binary-tree/ @@ -22,7 +22,9 @@ Minimum Depth of Binary Tree|Easy|2019-10-24|||||https://leetcode.com/problems/m Serialize and Deserialize Binary Tree|Hard|2019-10-25|||||https://leetcode.com/problems/serialize-and-deserialize-binary-tree/ Lowest Common Ancestor of a Binary Tree|Medium|2019-10-25|||||https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/ Construct Binary Tree from Preorder and Inorder Traversal|Medium|2019-10-25|||||https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ - +Permutations|Medium|2019-10-27|||||https://leetcode.com/problems/permutations/ +Majority Element|Easy|2019-10-27|||||https://leetcode.com/problems/majority-element/description/ +Letter Combinations of a Phone Number|Medium|2019-10-27|||||https://leetcode.com/problems/letter-combinations-of-a-phone-number/ diff --git a/Week 03/id_431/LeetCode_102_431.java b/Week 03/id_431/LeetCode_102_431.java new file mode 100644 index 000000000..7bb3b78a1 --- /dev/null +++ b/Week 03/id_431/LeetCode_102_431.java @@ -0,0 +1,65 @@ +package medium; + +import java.util.ArrayList; +import java.util.Deque; +import java.util.LinkedList; +import java.util.List; + +/** + * @author 潘磊明 + * @date 2019/10/31 + */ +public class BinaryTreeLevelOrderTraversal { + + /** + * 使用队列先进先出进行层次遍历 + * @param root + * @return + */ +// public List> levelOrder(TreeNode root) { +// List> result = new ArrayList<>(); +// if (root == null) return result; +// Deque deque = new LinkedList<>(); +// deque.addLast(root); +// while (!deque.isEmpty()) { +// List list = new ArrayList<>(deque.size()); +// int count = deque.size(); +// while (count-- > 0) { +// TreeNode node = deque.removeFirst(); +// list.add(node.val); +// if (node.left != null) deque.addLast(node.left); +// if (node.right != null) deque.addLast(node.right); +// } +// result.add(list); +// } +// return result; +// } + + /** + * 使用先序遍历 + * @param root + * @return + */ + public List> levelOrder(TreeNode root) { + List> result = new ArrayList<>(); + traversal(result, root, 0); + return result; + } + + private void traversal(List> result, TreeNode node, int deep) { + if (node == null) return; + if (result.size() < deep + 1) { + result.add(new ArrayList<>()); + } + result.get(deep).add(node.val); + traversal(result, node.left, deep + 1); + traversal(result, node.right, deep + 1); + } + + public class TreeNode { + int val; + TreeNode left; + TreeNode right; + TreeNode(int x) { val = x; } + } +} diff --git a/Week 03/id_431/LeetCode_122_431.java b/Week 03/id_431/LeetCode_122_431.java new file mode 100644 index 000000000..a7ee304b7 --- /dev/null +++ b/Week 03/id_431/LeetCode_122_431.java @@ -0,0 +1,20 @@ +package easy; + +/** + * @author 潘磊明 + * @date 2019/11/3 + */ +public class BestTimeToBuyAndSellStockII { + public int maxProfit(int[] prices) { + int profit = 0, i = 0; + while (i < prices.length) { + // find next local minimum + while (i < prices.length-1 && prices[i+1] <= prices[i]) i++; + int min = prices[i++]; // need increment to avoid infinite loop for "[1]" + // find next local maximum + while (i < prices.length-1 && prices[i+1] >= prices[i]) i++; + profit += i < prices.length ? prices[i++] - min : 0; + } + return profit; + } +} diff --git a/Week 03/id_431/LeetCode_127_431.java b/Week 03/id_431/LeetCode_127_431.java new file mode 100644 index 000000000..0e1eacf40 --- /dev/null +++ b/Week 03/id_431/LeetCode_127_431.java @@ -0,0 +1,53 @@ +package medium; + +import java.util.Deque; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +/** + * @author 潘磊明 + * @date 2019/11/1 + */ +public class WordLadder { + /** + * BFS + * @param beginWord + * @param endWord + * @param wordList + * @return + */ + public int ladderLength(String beginWord, String endWord, List wordList) { + int level = 0; + Set visited = new HashSet<>(); + Deque deque = new LinkedList<>(); + Set wordSet = new HashSet<>(wordList); + deque.addLast(beginWord); + visited.add(beginWord); + while (!deque.isEmpty()) { + int size = deque.size(); + level++; + while (size-- > 0) { + String current = deque.removeFirst(); + if (current.equals(endWord)) return level; + char[] curChar = current.toCharArray(); + for (int i = 0; i < curChar.length; i++) { + char old = curChar[i]; + for (char c = 'a'; c < 'z'; c++) { + if (old != c) { + curChar[i] = c; + String tmp = new String(curChar); + if (!visited.contains(tmp) && wordSet.contains(tmp)) { + deque.addLast(tmp); + visited.add(tmp); + } + } + } + curChar[i] = old; + } + } + } + return 0; + } +} diff --git a/Week 03/id_431/LeetCode_200_431.java b/Week 03/id_431/LeetCode_200_431.java new file mode 100644 index 000000000..df39a21a9 --- /dev/null +++ b/Week 03/id_431/LeetCode_200_431.java @@ -0,0 +1,41 @@ +package medium; + +import java.util.HashSet; +import java.util.Set; + +/** + * @author 潘磊明 + * @date 2019/11/1 + */ +public class NumberOfIslands { + /** + * DFS + * @param grid + * @return + */ + public int numIslands(char[][] grid) { + if (grid.length <= 0) return 0; + int num = 0; +// Set visited = new HashSet<>(); + int length = grid.length; + int height = grid[0].length; + for (int i = 0; i < length; i++) { + for (int j = 0; j < height; j++) { + if (grid[i][j] == '1') { + DFS(grid, i, j, length, height); + num++; + } + } + } + return num; + } + + public void DFS(char[][] grid, int i, int j, int length, int height){ + if (i < 0 || j < 0 || i > length - 1 || j > height - 1 || grid[i][j] == '0') return; + grid[i][j] = '0'; + DFS(grid, i - 1, j, length, height); + DFS(grid, i + 1, j, length, height); + DFS(grid, i, j - 1, length, height); + DFS(grid, i, j + 1, length, height); + } +} diff --git a/Week 03/id_431/LeetCode_433_431.java b/Week 03/id_431/LeetCode_433_431.java new file mode 100644 index 000000000..28187820b --- /dev/null +++ b/Week 03/id_431/LeetCode_433_431.java @@ -0,0 +1,61 @@ +package medium; + +import java.util.Deque; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Set; + +/** + * @author 潘磊明 + * @date 2019/10/31 + */ +public class MinimumGeneticMutation { + + /** + * 使用广度优先搜索 + * @param start + * @param end + * @param bank + * @return + */ + public int minMutation(String start, String end, String[] bank) { + if (start.equals(end)) return 0; + Set bankSet = new HashSet<>(bank.length); + int level = 0; //突变次数 + for (String b : bank) bankSet.add(b); + char[] chars = new char[]{'A', 'C', 'G', 'T'}; + //设置队列存储值 + Deque deque = new LinkedList<>(); + //访问的数组 + Set visited = new HashSet<>(); + //设置初始值 + deque.addLast(start); + visited.add(start); + //广度优先遍历 + while (!deque.isEmpty()) { + int size = deque.size(); + while (size-- > 0) { + String str = deque.removeFirst(); + //如果与最后的基因相等,直接返回 + if (str.equals(end)) return level; + char[] charArray = str.toCharArray(); + for (int i = 0; i < charArray.length; i++) { + char old = charArray[i]; + for (char c : chars) { + charArray[i] = c; + String newStr = new String(charArray); + // 如果当前不是访问过的且在基因库中,进行存放 + if (!visited.contains(newStr) && bankSet.contains(newStr)) { + deque.addLast(newStr); + visited.add(newStr); + } + } + charArray[i] = old; //还原 + } + } + level++; + } + return -1; + } +} diff --git a/Week 03/id_431/LeetCode_515_431.java b/Week 03/id_431/LeetCode_515_431.java new file mode 100644 index 000000000..463259700 --- /dev/null +++ b/Week 03/id_431/LeetCode_515_431.java @@ -0,0 +1,68 @@ +package medium; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Deque; +import java.util.LinkedList; +import java.util.List; + +/** + * @author 潘磊明 + * @date 2019/10/31 + */ +public class FindLargestValueInEachTreeRow { + + /** + * 广度优先搜索 + * @param root + * @return + */ +// public List largestValues(TreeNode root) { +// if (root == null) return Collections.emptyList(); +// Deque deque = new LinkedList<>(); +// deque.addLast(root); +// List list = new ArrayList<>(); +// while (!deque.isEmpty()) { +// int size = deque.size(); +// int max = Integer.MIN_VALUE; +// while (size-- > 0) { +// TreeNode node = deque.removeFirst(); +// max = Math.max(max, node.val); +// if (node.left != null) deque.addLast(node.left); +// if (node.right != null) deque.addLast(node.right); +// } +// list.add(max); +// } +// return list; +// } + + /** + * 深度优先搜索 + * @param root + * @return + */ + public List largestValues(TreeNode root) { + List list = new ArrayList<>(); + traversal(root, list, 1); + return list; + } + + /** + * 深度优先遍历 DFS + * @param node + */ + public void traversal(TreeNode node, List list, int deep){ + if (node == null) return; + if (list.size() < deep) list.add(node.val); + else list.set(deep - 1, Math.max(node.val, list.get(deep - 1))); + traversal(node.left, list, deep + 1); + traversal(node.right, list, deep + 1); + } + + public class TreeNode { + int val; + TreeNode left; + TreeNode right; + TreeNode(int x) { val = x; } + } +} diff --git a/Week 03/id_431/LeetCode_860_431.java b/Week 03/id_431/LeetCode_860_431.java new file mode 100644 index 000000000..f60bb1420 --- /dev/null +++ b/Week 03/id_431/LeetCode_860_431.java @@ -0,0 +1,19 @@ +package easy; + +/** + * @author 潘磊明 + * @date 2019/11/3 + */ +public class LemonadeChange { + public boolean lemonadeChange(int[] bills) { + int five = 0, ten = 0; + for (int i : bills) { + if (i == 5) five++; + else if (i == 10) {five--; ten++;} + else if (ten > 0) {ten--; five--;} + else five -= 3; + if (five < 0) return false; + } + return true; + } +} diff --git a/Week 03/id_431/NOTE.md b/Week 03/id_431/NOTE.md index a6321d6e2..17a54fbb6 100644 --- a/Week 03/id_431/NOTE.md +++ b/Week 03/id_431/NOTE.md @@ -2,3 +2,18 @@ +# 目录 + +* 刷题时间表 + + + +# 第三周刷题时间表 + +题目名称|难易度|第一遍时间|第二遍时间|第三遍时间|第四遍时间|第五遍时间|地址 +:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-: +Binary Tree Level Order Traversal|Medium|2019-10-31|||||https://leetcode.com/problems/binary-tree-level-order-traversal/ +Minimum Genetic Mutation|Medium|2019-10-31|||||https://leetcode.com/problems/minimum-genetic-mutation/ +Find Largest Value in Each Tree Row|medium|2019-10-31|||||https://leetcode.com/problems/find-largest-value-in-each-tree-row +Word Ladder|Medium|2019-11-01|||||https://leetcode.com/problems/word-ladder/ +Number of Islands|Medium|2019-11-01|||||https://leetcode.com/problems/number-of-islands/ \ No newline at end of file From ae4f69aeb2d415c2abfcad541376e1c9e43d4f81 Mon Sep 17 00:00:00 2001 From: suochenfeng Date: Sun, 3 Nov 2019 22:29:38 +0800 Subject: [PATCH 152/740] add result --- Week 03/id_441/NOTE.md | 120 +++++++++++++++++- Week 03/id_441/assign-cookies.js | 38 ++++++ .../binary-tree-level-order-traversal.js | 38 ++++++ Week 03/id_441/coin-change.js | 6 + 4 files changed, 201 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_441/assign-cookies.js create mode 100644 Week 03/id_441/binary-tree-level-order-traversal.js create mode 100644 Week 03/id_441/coin-change.js diff --git a/Week 03/id_441/NOTE.md b/Week 03/id_441/NOTE.md index a6321d6e2..ede2f73b4 100644 --- a/Week 03/id_441/NOTE.md +++ b/Week 03/id_441/NOTE.md @@ -1,4 +1,122 @@ # NOTE - +## 深度优先和广度优先 +之前对于深度优先遍历和广度优先遍历的了解。利用while可以实现广度优先遍历,利用递归可以实现深度优先遍历。 + +## 启发式搜索 + +优先级优先的搜索,推荐算法。快手,抖音的推荐算法。 + +### js中的深拷贝涉及到的深度优先遍历 + +```js + +export const deepCopy = (obj) => { + if(obj = null) return obj; + if(obj instanceof Date) return new Date(obj); + if(obj instanceof RegExp) return new RegExp(obj); + if(typeof obj !== 'object') return obj; + let newObj = new obj.constructor(); + for( let k in obj){ + newObj[key] = deepCopy(obj[key]) + } + return obj +} + +``` + +## 深度优先搜索的代码模板 + +深度优先遍历通常是递归或者使用栈的方式来解决。 + +### python + +```python + +// 二叉树 + +def dfs(node): + + if node in visited: + return + visited.add(node) + defs(node.left) + defs(node.right) + +// 普适对象 + +visited = set(); +def dfs(node, visited): + visited.add(node) + + for next_node in node.children(): + if not next_node in visited: + defs(next_node, visited) + +// 普遍递归思路 + +visited = set() +def dfs(node, visited): + if node in visited: + return + visited.add(node) + + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) + +// 非递归写法 + +def DFS (self, tree): + if tree.root is None: + return []; + + visited, stack =[], [tree.root] + + while stack: + node = stack.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + + stadk.push(nodes) + +``` + +## 广度优先的代码模板 + +一般使用while或者队列来实现。 + +```python + +def BFS(graph ,start , end): + queue = [] + queue.append([start]) + visited.add(start) + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + +``` + +## 贪心算法 +在每一步选择中都采取当前状态下最优的选择。从而希望全局最优。和动态规划不同的地方在于,对每一个子问题都有决策,不能回退。而动态规划则会保存以前的计算结果,根据历史计算结果对当前做出选择。有回退的功能。最优状态的回溯就叫做动态规划。 +贪心算法可以在某一步使用,并且配合动态规划或者递归来达到解决问题的目的。 +贪心算法一般用来处理最优最好的情况。如:图中最小的树,哈夫曼编码等。但是在工程中和生活中并不能起到作用。 +另外就是作为辅助算法来进行解决实际问题。 +使用场景: +1:问题比较特殊(比如:整除关系。) +2:问题能够分为子问题 + +## 二分查找 + +1:单调性 +2:存在边界(上下界) +3:索引访问 \ No newline at end of file diff --git a/Week 03/id_441/assign-cookies.js b/Week 03/id_441/assign-cookies.js new file mode 100644 index 000000000..67f90bbd4 --- /dev/null +++ b/Week 03/id_441/assign-cookies.js @@ -0,0 +1,38 @@ +// https://leetcode-cn.com/problems/assign-cookies/ +var findContentChildren = function (g, s) { + let res = 0; + s = s.sort((a, b) => a - b) + + g = g.sort((a, b) => a - b) + + g.forEach(item => { + while (s.length) { + if (item <= s.shift()) { + res++ + break + } + } + }) + return res +} + +var findContentChildren = function (g, s) { + s = s.sort((a, b) => a - b) + + g = g.sort((a, b) => a - b) + + let g_i = 0; + let s_i = 0; + let count = 0; + while (g_i < g.length && s_i < s.length) { + if (g[g_i] <= s[s_i]) { + g_i++; + s_i++; + count += 1 + } else { + s_i++ + } + } + + return count +} \ No newline at end of file diff --git a/Week 03/id_441/binary-tree-level-order-traversal.js b/Week 03/id_441/binary-tree-level-order-traversal.js new file mode 100644 index 000000000..cc877310a --- /dev/null +++ b/Week 03/id_441/binary-tree-level-order-traversal.js @@ -0,0 +1,38 @@ +// https://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description +// 二叉树的层次遍历 +// 1.广度优先遍历 +var levelOrder = function (root) { + if (!root) return [] + let res = [], + queue = [root] + while (queue.length) { + let arr = [], + nextNode = [] + while (queue.length) { + let curr = queue.shift() + arr.push(curr.val) + if (curr.left) nextNode.push(curr.left) + if (curr.right) nextNode.push(curr.right) + } + queue = nextNode + res.push(arr) + } + return res +} +//2.深度优先遍历,记录每一层来进行访问 +var levelOrder = function (root) { + if(!root) return []; + const result = []; + return levelOrder([root.left,root.right]) +} + +function serach(layers,node,k) { + if(node === null) return ; + if(!layers[k]){ + layers[k] = [node.val] + }else{ + layers[k].push(node.val) + } + serach(layers, node.left, k+1) + serach(layers, node.right, k+1) +} diff --git a/Week 03/id_441/coin-change.js b/Week 03/id_441/coin-change.js new file mode 100644 index 000000000..2004339a1 --- /dev/null +++ b/Week 03/id_441/coin-change.js @@ -0,0 +1,6 @@ +// https://leetcode-cn.com/problems/coin-change/ +// 零钱兑换的算法 +// 暴力解法 +var coinChange = function(coins, amount) { + +} \ No newline at end of file From c942214991b4873fea75d505f6ed1496509cbe36 Mon Sep 17 00:00:00 2001 From: miaoswen <55910248+miaoswen@users.noreply.github.com> Date: Sun, 3 Nov 2019 22:34:37 +0800 Subject: [PATCH 153/740] Week03 --- Week 03/id_321/LeetCode_122_321.java | 28 +++++++++++++++++ Week 03/id_321/LeetCode_200_321.java | 46 ++++++++++++++++++++++++++++ Week 03/id_321/LeetCode_33_321.java | 5 +++ Week 03/id_321/LeetCode_455_321.java | 26 ++++++++++++++++ Week 03/id_321/LeetCode_55_321.java | 44 ++++++++++++++++++++++++++ 5 files changed, 149 insertions(+) create mode 100644 Week 03/id_321/LeetCode_122_321.java create mode 100644 Week 03/id_321/LeetCode_200_321.java create mode 100644 Week 03/id_321/LeetCode_33_321.java create mode 100644 Week 03/id_321/LeetCode_455_321.java create mode 100644 Week 03/id_321/LeetCode_55_321.java diff --git a/Week 03/id_321/LeetCode_122_321.java b/Week 03/id_321/LeetCode_122_321.java new file mode 100644 index 000000000..bc1aa92b6 --- /dev/null +++ b/Week 03/id_321/LeetCode_122_321.java @@ -0,0 +1,28 @@ +package week03; + +public class MaxProfit122 { +//޴ + //1̬滮 + public int maxProfit_k_inf(int[] prices) { + int n = prices.length; + int dp_i_0 = 0, dp_i_1 = Integer.MIN_VALUE; + for (int i = 0; i < n; i++) { + int temp = dp_i_0; + dp_i_0 = Math.max(dp_i_0, dp_i_1 + prices[i]); + dp_i_1 = Math.max(dp_i_1, temp - prices[i]); + } + return dp_i_0; + } + //2ֻҪڶȵһߵͿ + public int maxProfit2(int[] prices) { + int maxprofit = 0; + for (int i = 1; i < prices.length; i++) { + if (prices[i] > prices[i - 1]) + maxprofit += prices[i] - prices[i - 1]; + } + return maxprofit; + } + + + +} diff --git a/Week 03/id_321/LeetCode_200_321.java b/Week 03/id_321/LeetCode_200_321.java new file mode 100644 index 000000000..dcf4887ef --- /dev/null +++ b/Week 03/id_321/LeetCode_200_321.java @@ -0,0 +1,46 @@ +package week03; + +public class NumIslands200 { +/* + * 1.dfsÿ1½ʱ++ͬʱԪΧ½0 + */ + public static void main(String[] args) { + // TODO Զɵķ + + } + + void dfs(char[][] grid, int r, int c) { + int nr = grid.length; + int nc = grid[0].length; + + if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0') { + return; + } + + grid[r][c] = '0'; + dfs(grid, r - 1, c); + dfs(grid, r + 1, c); + dfs(grid, r, c - 1); + dfs(grid, r, c + 1); + } + + public int numIslands(char[][] grid) { + if (grid == null || grid.length == 0) { + return 0; + } + + int nr = grid.length; + int nc = grid[0].length; + int sum = 0; + for (int r = 0; r < nr; ++r) { + for (int c = 0; c < nc; ++c) { + if (grid[r][c] == '1') { + ++sum; + dfs(grid, r, c); + } + } + } + + return sum; + } +} diff --git a/Week 03/id_321/LeetCode_33_321.java b/Week 03/id_321/LeetCode_33_321.java new file mode 100644 index 000000000..332659eae --- /dev/null +++ b/Week 03/id_321/LeetCode_33_321.java @@ -0,0 +1,5 @@ +package week03; + +public class Search33 { + +} diff --git a/Week 03/id_321/LeetCode_455_321.java b/Week 03/id_321/LeetCode_455_321.java new file mode 100644 index 000000000..842bceb29 --- /dev/null +++ b/Week 03/id_321/LeetCode_455_321.java @@ -0,0 +1,26 @@ +package week03; + +import java.util.Arrays; + +public class FindContentChildren455 { + //̰ĵ˼ǣþСıȥСĺӣҪ + public int findContentChildren(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + int sum = 0; + int leng = 0, lens = 0; + + while (leng < g.length && lens < s.length) { + if (s[lens] >= g[leng]) { + leng++; + lens++; + sum++; + } else { + lens++; + } + + } + return sum; + + } +} diff --git a/Week 03/id_321/LeetCode_55_321.java b/Week 03/id_321/LeetCode_55_321.java new file mode 100644 index 000000000..0f320cea6 --- /dev/null +++ b/Week 03/id_321/LeetCode_55_321.java @@ -0,0 +1,44 @@ +package week03; + +public class CanJump55 { +//̰ģ + public boolean canJump(int[] nums) { + if (nums == null) { + return false; + } + // posʾҪλ + int pos = nums.length - 1; + for (int i = nums.length - 2; i >= 0; i--) { + if (nums[i] + i >= pos) { + pos = i; + } + + } + return pos == 0; + + } + + // ˳ƣٶȱȽ + public boolean canJump1(int[] nums) { + + if (nums == null) { + return false; + } + int len = nums.length; + boolean[] dp = new boolean[len]; + dp[0] = true; + for (int i = 0; i < len - 1; i++) { + if (dp[i]) { + for (int j = i; j < len && j <= i + nums[i]; j++) { + dp[j] = true; + + } + + } + + } + return dp[len - 1]; + + } + +} From 2879d21fa858dfa59e165ce6fbab9a0f7efce82f Mon Sep 17 00:00:00 2001 From: jiangnaizheng <43877482+jiangnaizheng@users.noreply.github.com> Date: Sun, 3 Nov 2019 22:38:17 +0800 Subject: [PATCH 154/740] 672-Week 03 --- ...\345\272\217\351\201\215\345\216\206.java" | 111 ++++++++++ ...\345\272\217\351\201\215\345\216\206.java" | 190 ++++++++++++++++++ ...\350\257\215\345\210\206\347\273\204.java" | 82 ++++++++ 3 files changed, 383 insertions(+) create mode 100644 "Week 03/id_676/144.\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.java" create mode 100644 "Week 03/id_676/145.\344\272\214\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.java" create mode 100644 "Week 03/id_676/49.\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204.java" diff --git "a/Week 03/id_676/144.\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.java" "b/Week 03/id_676/144.\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.java" new file mode 100644 index 000000000..539509595 --- /dev/null +++ "b/Week 03/id_676/144.\344\272\214\345\217\211\346\240\221\347\232\204\345\211\215\345\272\217\351\201\215\345\216\206.java" @@ -0,0 +1,111 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +import javax.swing.tree.TreeNode; + +/* + * @lc app=leetcode.cn id=144 lang=java + * + * [144] 二叉树的前序遍历 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ + + /* + *思路:1.使用递归的方法实现,时间复杂度为O(n) + * 2.使用栈的方法实现,时间复杂度为O(n) + */ + + //使用递归来实现 +class Solution { + public List preorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + helper(root, res); + return res; + } + + public void helper(TreeNode root,List res) { + if (root != null) { + res.add(root.val); + if (root.left != null ) { + helper(root.left, res); + } + if (root.right != null) { + helper(root.right, res); + } + } + } +} +// @lc code=end + +//使用栈来实现 +class SolutionOne { + public List preorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + Stack stack = new Stack<>(); + TreeNode cur = root; + while (!stack.isEmpty() || cur != null) { + while (cur != null) { + res.add(cur.val); + stack.push(cur); + cur = cur.left; + } + cur = stack.pop(); + cur = cur.right; + } + return res; + } +} + +//递归实现中序遍历 +class SolutionTwo { + public List inorderTraversal(TreeNode root) { + List res = new ArrayList<>() ; + helper(root, res); + return res; + } + + public void helper(TreeNode root,List res) { + if (root != null) { + if (root.left != null) { + helper(root.left, res); + } + res.add(root.val); + if (root.right != null) { + helper(root.right, res); + } + } + } +} + +//递归实现后序遍历 +class SolutionThree{ + public List postorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + helper(root, res); + return res; + } + + public void helper(TreeNode root, List res) { + if (root != null) { + if (root.left != null) { + helper(root.left, res); + } + + if (root.right != null) { + helper(root.right, res); + } + res.add(root.val); + } + } +} diff --git "a/Week 03/id_676/145.\344\272\214\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.java" "b/Week 03/id_676/145.\344\272\214\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.java" new file mode 100644 index 000000000..f5ec41de1 --- /dev/null +++ "b/Week 03/id_676/145.\344\272\214\345\217\211\346\240\221\347\232\204\345\220\216\345\272\217\351\201\215\345\216\206.java" @@ -0,0 +1,190 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +import javax.swing.tree.TreeNode; + +/* + * @lc app=leetcode.cn id=145 lang=java + * + * [145] 二叉树的后序遍历 + */ + +// @lc code=start +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ + + /* + *思路:1.使用递归的方法实现,时间复杂度为O(n) + * 2.使用栈的方法实现,时间复杂度为O(n) + */ + + //使用递归来实现 +class Solution { + public List postorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + helper(root, res); + return res; + } + + public void helper(TreeNode root, List res) { + if (root != null) { + if (root.left != null) { + helper(root.left, res); + } + + if (root.right != null) { + helper(root.right, res); + } + res.add(root.val); + } + } +} +// @lc code=end + +//使用栈: +class SolutionTwo { + public List postorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + if (root == null) return res; + Stack stack = new Stack<>(); + stack.push(root); + while(!stack.isEmpty()) { + TreeNode cur = stack.pop(); + res.add(0,cur.val); + if (cur.left != null) { + stack.push(cur.left); + } + if (cur.right != null) { + stack.push(cur.right); + } + } + return res; + } +} + +/* +*使用栈来实现前序,中序和后序遍历 +*/ +//inorder +public List inorderTraversal(TreeNode root) { + List res=new ArrayList<>(); + if (root==null) return res; + + Stack stack=new Stack<>(); + TreeNode curr=root; + + while(curr!=null || !stack.isEmpty()){ + while (curr!=null){ + stack.push(curr); + curr=curr.left; + } + curr=stack.pop(); + res.add(curr.val); + curr=curr.right; + } + return res; +} + +//preorder +public List preorderTraversal(TreeNode root) { + List list = new ArrayList<>(); + if(root == null) return list; + Stack stack = new Stack<>(); + stack.push(root); + while(!stack.isEmpty()) { + TreeNode current = stack.pop(); + list.add(current.val); + if(current.right!=null) { + stack.push(current.right); + } + if(current.left!=null) { + stack.push(current.left); + } + } + return list; +} + +//postorder + public List postorderTraversal(TreeNode root) { + List list = new ArrayList<>(); + if(root == null) return list; + Stack stack = new Stack<>(); + stack.push(root); + while(!stack.isEmpty()) { + TreeNode curr = stack.pop(); + list.add(0,curr.val); + if(curr.left!=null) { + stack.push(curr.left); + } + if(curr.right!=null) { + stack.push(curr.right); + } + } + return list; +} + +/* +*使用队列来实现前序、中序和后序遍历 +*/ + +//proorder +public List preorderTraversal(TreeNode root) { + List result = new ArrayList<>(); + Deque stack = new ArrayDeque<>(); + TreeNode p = root; + while(!stack.isEmpty() || p != null) { + if(p != null) { + stack.push(p); + result.add(p.val); // Add before going to children + p = p.left; + } else { + TreeNode node = stack.pop(); + p = node.right; + } + } + return result; +} + +//inorder +public List inorderTraversal(TreeNode root) { + List result = new ArrayList<>(); + Deque stack = new ArrayDeque<>(); + TreeNode p = root; + while(!stack.isEmpty() || p != null) { + if(p != null) { + stack.push(p); + p = p.left; + } else { + TreeNode node = stack.pop(); + result.add(node.val); // Add after all left children + p = node.right; + } + } + return result; +} + +//postorder +public List postorderTraversal(TreeNode root) { + LinkedList result = new LinkedList<>(); + Deque stack = new ArrayDeque<>(); + TreeNode p = root; + while(!stack.isEmpty() || p != null) { + if(p != null) { + stack.push(p); + result.addFirst(p.val); // Reverse the process of preorder + p = p.right; // Reverse the process of preorder + } else { + TreeNode node = stack.pop(); + p = node.left; // Reverse the process of preorder + } + } + return result; +} \ No newline at end of file diff --git "a/Week 03/id_676/49.\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204.java" "b/Week 03/id_676/49.\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204.java" new file mode 100644 index 000000000..3bb18ce0f --- /dev/null +++ "b/Week 03/id_676/49.\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204.java" @@ -0,0 +1,82 @@ +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/* + * @lc app=leetcode.cn id=49 lang=java + * + * [49] 字母异位词分组 + */ + + /* + *思路:1.先将字符串进行排序,排序后的字符串相等为字母异位词 + * 2.使用计数法来统计每个字符串字符出现的次数,如果相等那么就是字母异位词 + */ + +// @lc code=start +class Solution { + public List> groupAnagrams(String[] strs) { + if (strs.length == 0) return new ArrayList>(); + Map> map = new HashMap>(); + for (String s : strs) { + char[] a = s.toCharArray(); + Arrays.sort(a); //排序 + String key = String.valueOf(a); //排序后的字母异位词作为key + if (! map.containsKey(key)) { //向hashmap中添加key + map.put(key, new ArrayList()); + } + map.get(key).add(s); //向hashmap中相应的key添加对应的元素 + } + return new ArrayList>(map.values()); + } +} +// @lc code=end +class SolutionOne { + public List> groupAnagrams(String[] strs) { + if (strs.length == 0) return new ArrayList>(); + Map > map = new HashMap>(); + int[] count = new int[26]; + for (String s : strs) { //遍历传进来的字符数组中的字符串 + Arrays.fill(count, 0); //每次循环开始清0计数数组 + for (int i = 0 ; i < s.length() ; i++) { + count[s.charAt(i) - 'a'] ++; + } + StringBuilder stringbuilder = new StringBuilder(); + + for (int j = 0; j < 26;j++) { + stringbuilder.append('#'); //用#1#2.....的方式组成key值 + stringbuilder.append(count[j]); + } + String key = stringbuilder.toString(); + if (! map.containsKey(key)) { + map.put(key, new ArrayList()); + } + map.get(key).add(s); + } + return new ArrayList>(map.values()); + } +} + +class SolutionTwo { + public List> groupAnagrams(String[] strs) { + if (strs.length == 0) return new ArrayList(); + Map ans = new HashMap(); + int[] count = new int[26]; + for (String s : strs) { + Arrays.fill(count, 0); + for (char c : s.toCharArray()) count[c - 'a']++; + + StringBuilder sb = new StringBuilder(""); + for (int i = 0; i < 26; i++) { + sb.append('#'); + sb.append(count[i]); + } + String key = sb.toString(); + if (!ans.containsKey(key)) ans.put(key, new ArrayList()); + ans.get(key).add(s); + } + return new ArrayList(ans.values()); + } +} From f67538d37decdfbf63b864855e8247905b07d162 Mon Sep 17 00:00:00 2001 From: sunke01 Date: Sun, 3 Nov 2019 22:42:35 +0800 Subject: [PATCH 155/740] week 03 861 homework --- Week 03/id_681/LeetCode_122_681.java | 24 ++++++++++++++++++++++++ Week 03/id_681/LeetCode_860_681.java | 26 ++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 Week 03/id_681/LeetCode_122_681.java create mode 100644 Week 03/id_681/LeetCode_860_681.java diff --git a/Week 03/id_681/LeetCode_122_681.java b/Week 03/id_681/LeetCode_122_681.java new file mode 100644 index 000000000..296c90415 --- /dev/null +++ b/Week 03/id_681/LeetCode_122_681.java @@ -0,0 +1,24 @@ +class Solution { + public int maxProfit(int[] prices) { + return calculate(prices, 0); + } + + public int calculate(int prices[], int s) { + if (s >= prices.length) + return 0; + int max = 0; + for (int start = s; start < prices.length; start++) { + int maxprofit = 0; + for (int i = start + 1; i < prices.length; i++) { + if (prices[start] < prices[i]) { + int profit = calculate(prices, i + 1) + prices[i] - prices[start]; + if (profit > maxprofit) + maxprofit = profit; + } + } + if (maxprofit > max) + max = maxprofit; + } + return max; + } +} diff --git a/Week 03/id_681/LeetCode_860_681.java b/Week 03/id_681/LeetCode_860_681.java new file mode 100644 index 000000000..74587b71d --- /dev/null +++ b/Week 03/id_681/LeetCode_860_681.java @@ -0,0 +1,26 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0, ten = 0; + for (int bill : bills) { + if (bill == 5) + five++; + else if (bill == 10) { + if (five == 0) return false; + five--; + ten++; + } else { + if (five > 0 && ten > 0) { + five--; + ten--; + } else if (five >= 3) { + five -= 3; + } else { + return false; + } + } + } + + return true; + } +} + From 16e3cc932951f4c9962ad9f4ff2987d3c4b5e02c Mon Sep 17 00:00:00 2001 From: miaoswen <55910248+miaoswen@users.noreply.github.com> Date: Sun, 3 Nov 2019 22:43:07 +0800 Subject: [PATCH 156/740] Week3 --- Week 03/id_321/LeetCode_33_321(2).java | 37 ++++++++++++++++++++++++++ Week 03/id_321/LeetCode_33_321.java | 5 ---- 2 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 Week 03/id_321/LeetCode_33_321(2).java delete mode 100644 Week 03/id_321/LeetCode_33_321.java diff --git a/Week 03/id_321/LeetCode_33_321(2).java b/Week 03/id_321/LeetCode_33_321(2).java new file mode 100644 index 000000000..c07216a5d --- /dev/null +++ b/Week 03/id_321/LeetCode_33_321(2).java @@ -0,0 +1,37 @@ +package week03; + +public class Search33 { + public int search(int[] nums, int target) { + if (nums == null || nums.length == 0) { + return -1; + } + int start = 0; + int end = nums.length - 1; + int mid; + while (start <= end) { + mid = start + (end - start) / 2; + if (nums[mid] == target) { + return mid; + } + + if (nums[start] <= nums[mid]) { + + if (target >= nums[start] && target < nums[mid]) { + end = mid - 1; + } else { + start = mid + 1; + } + } else { + if (target <= nums[end] && target > nums[mid]) { + start = mid + 1; + } else { + end = mid - 1; + } + } + + } + return -1; + + } + +} diff --git a/Week 03/id_321/LeetCode_33_321.java b/Week 03/id_321/LeetCode_33_321.java deleted file mode 100644 index 332659eae..000000000 --- a/Week 03/id_321/LeetCode_33_321.java +++ /dev/null @@ -1,5 +0,0 @@ -package week03; - -public class Search33 { - -} From 8d356744c7c219ab8b3f6cda1351c946e9cdcdfd Mon Sep 17 00:00:00 2001 From: yongkunbai <43924106+yongkunbai@users.noreply.github.com> Date: Sun, 3 Nov 2019 22:45:21 +0800 Subject: [PATCH 157/740] week3 --- Week 03/id_686/LeetCode_322_686.java | 39 ++++++++++++++++++++ Week 03/id_686/LeetCode_455_686.java | 54 ++++++++++++++++++++++++++++ Week 03/id_686/LeetCode_55_686.java | 37 +++++++++++++++++++ Week 03/id_686/LeetCode_69_686.java | 39 ++++++++++++++++++++ 4 files changed, 169 insertions(+) create mode 100644 Week 03/id_686/LeetCode_322_686.java create mode 100644 Week 03/id_686/LeetCode_455_686.java create mode 100644 Week 03/id_686/LeetCode_55_686.java create mode 100644 Week 03/id_686/LeetCode_69_686.java diff --git a/Week 03/id_686/LeetCode_322_686.java b/Week 03/id_686/LeetCode_322_686.java new file mode 100644 index 000000000..7bba3723b --- /dev/null +++ b/Week 03/id_686/LeetCode_322_686.java @@ -0,0 +1,39 @@ +//给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 +// +// 示例 1: +// +// 输入: coins = [1, 2, 5], amount = 11 +//输出: 3 +//解释: 11 = 5 + 5 + 1 +// +// 示例 2: +// +// 输入: coins = [2], amount = 3 +//输出: -1 +// +// 说明: +//你可以认为每种硬币的数量是无限的。 +// Related Topics 动态规划 + + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public int coinChange(int[] coins, int amount) { + int [] f = new int[amount + 1]; + f[0] = 0; + for (int i = 1; i <= amount; i++){ + + int cost = Integer.MAX_VALUE; + for (int j = 0; j < coins.length; j++){ + if (i - coins[j] >= 0){ + if(f[i - coins[j]] != Integer.MAX_VALUE) + cost = Math.min(cost, f[i - coins[j]] + 1); + } + } + f[i] = cost; + } + return f[amount] == Integer.MAX_VALUE?-1:f[amount]; + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_686/LeetCode_455_686.java b/Week 03/id_686/LeetCode_455_686.java new file mode 100644 index 000000000..f3c38ea71 --- /dev/null +++ b/Week 03/id_686/LeetCode_455_686.java @@ -0,0 +1,54 @@ +//假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 +// +// 注意: +// +// 你可以假设胃口值为正。 +//一个小朋友最多只能拥有一块饼干。 +// +// 示例 1: +// +// +//输入: [1,2,3], [1,1] +// +//输出: 1 +// +//解释: +//你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。 +//虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。 +//所以你应该输出1。 +// +// +// 示例 2: +// +// +//输入: [1,2], [1,2,3] +// +//输出: 2 +// +//解释: +//你有两个孩子和三块小饼干,2个孩子的胃口值分别是1,2。 +//你拥有的饼干数量和尺寸都足以让所有孩子满足。 +//所以你应该输出2. +// +// Related Topics 贪心算法 + + +import java.util.Arrays; + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public int findContentChildren(int[] g, int[] s) { + if (g == null || s == null) return 0; + Arrays.sort(g); + Arrays.sort(s); + int gi = 0, si = 0; + while(gi < g.length && si < s.length){ + if (g[gi] <= s[si]){ + gi++; + } + si ++; + } + return gi; + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_686/LeetCode_55_686.java b/Week 03/id_686/LeetCode_55_686.java new file mode 100644 index 000000000..11e45b9eb --- /dev/null +++ b/Week 03/id_686/LeetCode_55_686.java @@ -0,0 +1,37 @@ +//给定一个非负整数数组,你最初位于数组的第一个位置。 +// +// 数组中的每个元素代表你在该位置可以跳跃的最大长度。 +// +// 判断你是否能够到达最后一个位置。 +// +// 示例 1: +// +// 输入: [2,3,1,1,4] +//输出: true +//解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 +// +// +// 示例 2: +// +// 输入: [3,2,1,0,4] +//输出: false +//解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。 +// +// Related Topics 贪心算法 数组 + + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public boolean canJump(int[] nums) { + if (nums == null) return false; + int n = nums.length - 1; + for (int i = nums.length - 1; i >= 0; i--){ + if (nums[i] + i >= n) { + n = i; + } + } + return n == 0; + } +} +//leetcode submit region end(Prohibit modification and deletion) diff --git a/Week 03/id_686/LeetCode_69_686.java b/Week 03/id_686/LeetCode_69_686.java new file mode 100644 index 000000000..de8af6554 --- /dev/null +++ b/Week 03/id_686/LeetCode_69_686.java @@ -0,0 +1,39 @@ +//实现 int sqrt(int x) 函数。 +// +// 计算并返回 x 的平方根,其中 x 是非负整数。 +// +// 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 +// +// 示例 1: +// +// 输入: 4 +//输出: 2 +// +// +// 示例 2: +// +// 输入: 8 +//输出: 2 +//说明: 8 的平方根是 2.82842..., +//  由于返回类型是整数,小数部分将被舍去。 +// +// Related Topics 数学 二分查找 + + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public int mySqrt(int x) { + if(x <= 1) return x; + double i = 0.0, j= (double)x, mid, temp; + while(true){ + mid = (i+j)/2; + temp = mid*mid; + if(temp-x >= 0 && temp-x <= .01) break; + if(temp < x) i = mid; + else if(temp > x) j = mid; + } + return (int)mid; + } +} +//leetcode submit region end(Prohibit modification and deletion) From 70513d39ffb648364561f136ad75baac61cdb0c0 Mon Sep 17 00:00:00 2001 From: Kevin Date: Sun, 3 Nov 2019 22:50:02 +0800 Subject: [PATCH 158/740] Week 03 homework submited --- Week 01/id_661/LeetCode_189_661.py | 1 + Week 01/id_661/LeetCode_26_661.py | 10 +++++++ Week 03/id_661/LeetCode_126_661.py | 45 ++++++++++++++++++++++++++++++ Week 03/id_661/LeetCode_127_661.py | 33 ++++++++++++++++++++++ Week 03/id_661/LeetCode_200_661.py | 21 ++++++++++++++ Week 03/id_661/LeetCode_33_661.py | 27 ++++++++++++++++++ Week 03/id_661/LeetCode_455_661.py | 17 +++++++++++ Week 03/id_661/LeetCode_529_661.py | 24 ++++++++++++++++ Week 03/id_661/LeetCode_74_661.py | 23 +++++++++++++++ Week 03/id_661/LeetCode_860_661.py | 18 ++++++++++++ Week 03/id_661/LeetCode_874_661.py | 20 +++++++++++++ 11 files changed, 239 insertions(+) create mode 100644 Week 01/id_661/LeetCode_189_661.py create mode 100644 Week 01/id_661/LeetCode_26_661.py create mode 100644 Week 03/id_661/LeetCode_126_661.py create mode 100644 Week 03/id_661/LeetCode_127_661.py create mode 100644 Week 03/id_661/LeetCode_200_661.py create mode 100644 Week 03/id_661/LeetCode_33_661.py create mode 100644 Week 03/id_661/LeetCode_455_661.py create mode 100644 Week 03/id_661/LeetCode_529_661.py create mode 100644 Week 03/id_661/LeetCode_74_661.py create mode 100644 Week 03/id_661/LeetCode_860_661.py create mode 100644 Week 03/id_661/LeetCode_874_661.py diff --git a/Week 01/id_661/LeetCode_189_661.py b/Week 01/id_661/LeetCode_189_661.py new file mode 100644 index 000000000..170af5979 --- /dev/null +++ b/Week 01/id_661/LeetCode_189_661.py @@ -0,0 +1 @@ +#!/usr/bin/env python3.7 diff --git a/Week 01/id_661/LeetCode_26_661.py b/Week 01/id_661/LeetCode_26_661.py new file mode 100644 index 000000000..22194c7d3 --- /dev/null +++ b/Week 01/id_661/LeetCode_26_661.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3.7 +def removeDuplication(nums): + if not nums: + return 0 + j = 1 + for i in range(1, len(nums)): + if nums[i] != nums[i - 1]: + nums[j] = nums[i] + j += 1 + return nums diff --git a/Week 03/id_661/LeetCode_126_661.py b/Week 03/id_661/LeetCode_126_661.py new file mode 100644 index 000000000..5c2ccd4dc --- /dev/null +++ b/Week 03/id_661/LeetCode_126_661.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3.7 +class Solution: + def findLadders(self, beginWord: str, endWord: str, wordList: list) -> list: + wordList = set(wordList) + if endWord not in wordList: + return [] + res, visited, forward, backward, _len = ( + [], + set(), + {beginWord: [[beginWord]]}, + {endWord: [[endWord]]}, + 2, + ) + while forward: + if len(forward) > len(backward): + forward, backward = backward, forward + tmp = {} + while forward: + word, paths = forward.popitem() + visited.add(word) + for i in range(len(word)): + for a in "abcdefghijklmnopqrstuvwxyz": + new = word[:i] + a + word[i + 1 :] + if new in backward: + if paths[0][0] == beginWord: + res.extend( + fPath + bPath[::-1] + for fPath in paths + for bPath in backward[new] + ) + else: + res.extend( + bPath + fPath[::-1] + for fPath in paths + for bPath in backward[new] + ) + if new in wordList and new not in visited: + tmp[new] = tmp.get(new, []) + [ + path + [new] for path in paths + ] + _len += 1 + if res and _len > len(res[0]): + break + forward = tmp + return res diff --git a/Week 03/id_661/LeetCode_127_661.py b/Week 03/id_661/LeetCode_127_661.py new file mode 100644 index 000000000..7834355c0 --- /dev/null +++ b/Week 03/id_661/LeetCode_127_661.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3.7 + +from collections import deque + + +class Solution(object): + def ladderLength(self, beginWord, endWord, wordList): + def construct_dict(word_list): + d = {} + for word in word_list: + for i in range(len(word)): + s = word[:i] + "_" + word[i + 1 :] + d[s] = d.get(s, []) + [word] + return d + + def bfs_words(begin, end, dict_words): + queue, visited = deque([(begin, 1)]), set() + while queue: + word, steps = queue.popleft() + if word not in visited: + visited.add(word) + if word == end: + return steps + for i in range(len(word)): + s = word[:i] + "_" + word[i + 1 :] + neigh_words = dict_words.get(s, []) + for neigh in neigh_words: + if neigh not in visited: + queue.append((neigh, steps + 1)) + return 0 + + d = construct_dict(wordList or set([beginWord, endWord])) + return bfs_words(beginWord, endWord, d) diff --git a/Week 03/id_661/LeetCode_200_661.py b/Week 03/id_661/LeetCode_200_661.py new file mode 100644 index 000000000..d0c88c165 --- /dev/null +++ b/Week 03/id_661/LeetCode_200_661.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3.7 + + +class Solution: + def numIslands(self, grid: [[str]]) -> int: + def dfs(grid, i, j): + if not 0 <= i < len(grid) or not 0 <= j < len(grid[0]) or grid[i][j] == "0": + return + grid[i][j] = "0" + dfs(grid, i + 1, j) + dfs(grid, i, j + 1) + dfs(grid, i - 1, j) + dfs(grid, i, j - 1) + + count = 0 + for i in range(len(grid)): + for j in range(len(grid[0])): + if grid[i][j] == "1": + dfs(grid, i, j) + count += 1 + return count diff --git a/Week 03/id_661/LeetCode_33_661.py b/Week 03/id_661/LeetCode_33_661.py new file mode 100644 index 000000000..10d5672d3 --- /dev/null +++ b/Week 03/id_661/LeetCode_33_661.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3.7 + + +class Solution: + def search(self, nums: List[int], target: int) -> int: + if not nums: + return -1 + + low, high = 0, len(nums) - 1 + + while low <= high: + mid = int((low + high) / 2) + if target == nums[mid]: + return mid + + if nums[low] <= nums[mid]: + if nums[low] <= target <= nums[mid]: + high = mid - 1 + else: + low = mid + 1 + else: + if nums[mid] <= target <= nums[high]: + low = mid + 1 + else: + high = mid - 1 + + return -1 diff --git a/Week 03/id_661/LeetCode_455_661.py b/Week 03/id_661/LeetCode_455_661.py new file mode 100644 index 000000000..e7a07ef02 --- /dev/null +++ b/Week 03/id_661/LeetCode_455_661.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3.7 + + +class Solution: + def findContentChildren(self, g: List[int], s: List[int]) -> int: + g.sort() + s.sort() + + child = 0 + cookie = 0 + + while cookie < len(s) and child < len(g): + if s[cookie] >= g[child]: + child += 1 + cookie += 1 + + return child diff --git a/Week 03/id_661/LeetCode_529_661.py b/Week 03/id_661/LeetCode_529_661.py new file mode 100644 index 000000000..3061b396a --- /dev/null +++ b/Week 03/id_661/LeetCode_529_661.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3.7 + + +class Solution: + def updateBoard(self, board, click): + (row, col), directions = ( + click, + ((-1, 0), (1, 0), (0, 1), (0, -1), (-1, 1), (-1, -1), (1, 1), (1, -1)), + ) + if 0 <= row < len(board) and 0 <= col < len(board[0]): + if board[row][col] == "M": + board[row][col] = "X" + elif board[row][col] == "E": + n = sum( + [ + board[row + r][col + c] == "M" + for r, c in directions + if 0 <= row + r < len(board) and 0 <= col + c < len(board[0]) + ] + ) + board[row][col] = str(n or "B") + for r, c in directions * (not n): + self.updateBoard(board, [row + r, col + c]) + return board diff --git a/Week 03/id_661/LeetCode_74_661.py b/Week 03/id_661/LeetCode_74_661.py new file mode 100644 index 000000000..d98f00a1c --- /dev/null +++ b/Week 03/id_661/LeetCode_74_661.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3.7 + + +class Solution: + def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: + if not matrix or target is None: + return False + + rows, cols = len(matrix), len(matrix[0]) + low, high = 0, rows * cols - 1 + + while low <= high: + mid = int((low + high) / 2) + num = matrix[mid // cols][mid % cols] + + if num == target: + return True + elif num < target: + low = mid + 1 + else: + high = mid - 1 + + return False diff --git a/Week 03/id_661/LeetCode_860_661.py b/Week 03/id_661/LeetCode_860_661.py new file mode 100644 index 000000000..d7d3d1fff --- /dev/null +++ b/Week 03/id_661/LeetCode_860_661.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3.7 + + +class Solution: + def lemonadeChange(self, bills): + five = ten = 0 + for i in bills: + if i == 5: + five += 1 + elif i == 10: + five, ten = five - 1, ten + 1 + elif ten > 0: + five, ten = five - 1, ten - 1 + else: + five -= 3 + if five < 0: + return False + return True diff --git a/Week 03/id_661/LeetCode_874_661.py b/Week 03/id_661/LeetCode_874_661.py new file mode 100644 index 000000000..7da3a8f12 --- /dev/null +++ b/Week 03/id_661/LeetCode_874_661.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3.7 + + +class Solution: + def robotSim(self, commands: List[int], obstacles: List[List[int]]) -> int: + i = j = mx = d = 0 + move, obstacles = [(0, 1), (-1, 0), (0, -1), (1, 0)], set(map(tuple, obstacles)) + for command in commands: + if command == -2: + d = (d + 1) % 4 + elif command == -1: + d = (d - 1) % 4 + else: + x, y = move[d] + while command and (i + x, j + y) not in obstacles: + i += x + j += y + command -= 1 + mx = max(mx, i ** 2 + j ** 2) + return mx From 8aa619b5f896b04c575d4aef4c56796d068b4257 Mon Sep 17 00:00:00 2001 From: hadronw Date: Sun, 3 Nov 2019 22:56:21 +0800 Subject: [PATCH 159/740] Week03 083 --- Week 03/id_086/LeetCode_122_086.java | 15 +++++++++++++ Week 03/id_086/LeetCode_455_086.java | 18 +++++++++++++++ Week 03/id_086/LeetCode_860_086.java | 33 ++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 Week 03/id_086/LeetCode_122_086.java create mode 100644 Week 03/id_086/LeetCode_455_086.java create mode 100644 Week 03/id_086/LeetCode_860_086.java diff --git a/Week 03/id_086/LeetCode_122_086.java b/Week 03/id_086/LeetCode_122_086.java new file mode 100644 index 000000000..08224ef0d --- /dev/null +++ b/Week 03/id_086/LeetCode_122_086.java @@ -0,0 +1,15 @@ +# 122 买卖股票的最佳时机 +# 循环遍历,算出元素之间差最大(后一个减前一个元素的差,累计最大值),每一个元素差只能计算一次, + +class Solution { + public int maxProfit(int[] prices) { + int countProfit = 0; + for (int i = 1; i < prices.length; i++) { + int tmpProfit = prices[i] - prices[i - 1]; + if (tmpProfit > 0) { + countProfit += tmpProfit; + } + } + return countProfit; + } +} \ No newline at end of file diff --git a/Week 03/id_086/LeetCode_455_086.java b/Week 03/id_086/LeetCode_455_086.java new file mode 100644 index 000000000..07fce016a --- /dev/null +++ b/Week 03/id_086/LeetCode_455_086.java @@ -0,0 +1,18 @@ +# 455 分发饼干 +# 寻找两个数组中想匹配的元素并返回 + +class Solution { + public int findContentChildren(int[] g, int[] s) { + int child = 0; + int biscuit = 0; + Arrays.sort(g); + Arrays.sort(s); + while (child < g.length && biscuit < s.length) { + if (g[child] <= s[biscuit]) { + child ++; + } + biscuit ++; + } + return child; + } +} \ No newline at end of file diff --git a/Week 03/id_086/LeetCode_860_086.java b/Week 03/id_086/LeetCode_860_086.java new file mode 100644 index 000000000..a53ee5fab --- /dev/null +++ b/Week 03/id_086/LeetCode_860_086.java @@ -0,0 +1,33 @@ +# 柠檬水找零 +# 1、先判断数组中的第一个、第二个元素,如果第一个元素不是 5 直接返回false,如果第二个元素是 20 ,直接返回 false, +# 2、之后再循环判断数组中的元素,记录出现 5、10 元素的次数,循环累计,后续出现的元素与累计的 5、10 元素去做比较,如果不能找零,则返回 false 注:元素只能是为 5、10、20 + + +class Solution { + public boolean lemonadeChange(int[] bills) { + int countFive = 0; + int countTen = 0; + for (int bill : bills) { + if ( bill == 5) { + countFive ++; + }else if( bill == 10) { + if ( countFive == 0) { + return false; + } + countFive --; + countTen ++; + }else { + if (countFive > 0 && countTen > 0) { + countFive--; + countTen--; + } else if (countFive >= 3) { + countFive -= 3; + } else { + return false; + } + } + } + return true; + } +} + From dc3624e13da1968d36e2e4b7c802c6f23297fae2 Mon Sep 17 00:00:00 2001 From: huancheng lu Date: Sun, 3 Nov 2019 23:13:00 +0800 Subject: [PATCH 160/740] 006-Week 03 --- Week 03/id_006/LeetCode_102_006.java | 72 +++++++++++++++ Week 03/id_006/LeetCode_126_006.java | 130 +++++++++++++++++++++++++++ Week 03/id_006/LeetCode_127_006.java | 55 ++++++++++++ Week 03/id_006/LeetCode_200_006.java | 72 +++++++++++++++ Week 03/id_006/LeetCode_322_006.java | 77 ++++++++++++++++ Week 03/id_006/LeetCode_433_006.java | 61 +++++++++++++ Week 03/id_006/LeetCode_455_006.java | 33 +++++++ Week 03/id_006/LeetCode_515_006.java | 41 +++++++++ Week 03/id_006/LeetCode_529_006.java | 119 ++++++++++++++++++++++++ Week 03/id_006/LeetCode_860_006.java | 38 ++++++++ Week 03/id_006/NOTE.md | 33 ++++++- 11 files changed, 729 insertions(+), 2 deletions(-) create mode 100644 Week 03/id_006/LeetCode_102_006.java create mode 100644 Week 03/id_006/LeetCode_126_006.java create mode 100644 Week 03/id_006/LeetCode_127_006.java create mode 100644 Week 03/id_006/LeetCode_200_006.java create mode 100644 Week 03/id_006/LeetCode_322_006.java create mode 100644 Week 03/id_006/LeetCode_433_006.java create mode 100644 Week 03/id_006/LeetCode_455_006.java create mode 100644 Week 03/id_006/LeetCode_515_006.java create mode 100644 Week 03/id_006/LeetCode_529_006.java create mode 100644 Week 03/id_006/LeetCode_860_006.java diff --git a/Week 03/id_006/LeetCode_102_006.java b/Week 03/id_006/LeetCode_102_006.java new file mode 100644 index 000000000..c101457cf --- /dev/null +++ b/Week 03/id_006/LeetCode_102_006.java @@ -0,0 +1,72 @@ +package com.mrglint.leetcode.week03.solution102; + +import com.mrglint.leetcode.TreeNode; + +import java.util.*; + +/** + * @author luhuancheng + * @since 2019-10-30 22:26 + */ +public class Solution { + /** + * 广度优先遍历 + * @param root + * @return + */ + public List> levelOrder1(TreeNode root) { + List> result = new ArrayList<>(); + if (root == null) { + return result; + } + + Queue queue = new LinkedList<>(); + queue.offer(root); + while (!queue.isEmpty()) { + int size = queue.size(); + List subResult = new ArrayList<>(); + while (size-- > 0) { + TreeNode queueHead = queue.poll(); + if (Objects.nonNull(queueHead)) { + subResult.add(queueHead.val); + if (queueHead.left != null) { + queue.offer(queueHead.left); + } + if (queueHead.right != null) { + queue.offer(queueHead.right); + } + } + } + result.add(subResult); + } + return result; + } + + /** + * 深度优先遍历 + * @param root + * @return + */ + public List> levelOrder(TreeNode root) { + List> result = new ArrayList<>(); + if (root == null) { + return result; + } + levelOrder(root, 0, result); + return result; + } + + private void levelOrder(TreeNode node, int level, List> result) { + if (result.size() == level) { + result.add(new ArrayList<>()); + } + result.get(level).add(node.val); + if (Objects.nonNull(node.left)) { + levelOrder(node.left, level + 1, result); + } + if (Objects.nonNull(node.right)) { + levelOrder(node.right, level + 1, result); + } + } +} + diff --git a/Week 03/id_006/LeetCode_126_006.java b/Week 03/id_006/LeetCode_126_006.java new file mode 100644 index 000000000..10f717a39 --- /dev/null +++ b/Week 03/id_006/LeetCode_126_006.java @@ -0,0 +1,130 @@ +package com.mrglint.leetcode.week03.solution126; + +import java.util.*; + +/** + * @author luhuancheng + * @since 2019-11-01 08:26 + */ +public class Solution { + /** + * 字典 + */ + private char[] initialTable = {'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z'}; + + public List> findLadders(String beginWord, String endWord, List wordList) { + /** + * 使用hashset提供O(1)的时间复杂度的读取操作 + */ + Set dictionary = new HashSet<>(wordList); + + List> result = new ArrayList<>(); + if (!dictionary.contains(endWord)) { + return result; + } + + Map distance = getDistance(beginWord, endWord, new HashSet<>(dictionary)); + + List subResult = new LinkedList<>(); + subResult.add(beginWord); + findLadders(beginWord, endWord, dictionary, distance, subResult, result); + return result; + } + + /** + * 广度优先搜索,获取到最短路径上,字符串所在节点的深度 + * @param beginWord + * @param endWord + * @param wordList + * @return + */ + private Map getDistance(String beginWord, String endWord, Set wordList) { + Map distance = new HashMap<>(); + + Queue queue = new LinkedList<>(); + queue.offer(beginWord); + int level = 0; + boolean found = false; + while (!queue.isEmpty()) { + int size = queue.size(); + + // 同一层遍历完毕 + while (size-- > 0) { + String queueHead = queue.poll(); + if (!distance.containsKey(queueHead)) { + distance.put(queueHead, level); + } + if (Objects.equals(queueHead, endWord)) { + found = true; + } + for (int i = 0; i < queueHead.length(); i++) { + char[] chars = queueHead.toCharArray(); + for (char c : initialTable) { + char temp = chars[i]; + if (c != chars[i]) { + chars[i] = c; + String newString = new String(chars); + if (wordList.contains(newString)) { + wordList.remove(newString); + queue.offer(newString); + } + } + chars[i] = temp; + } + } + } + level++; + if (found) { + break; + } + } + return distance; + } + + /** + * 深度优先搜索,计算最短路径。 + * 借助 + * @param beginWord + * @param endWord + * @param dictionary + * @param subResult + * @param result + */ + private void findLadders(String beginWord, String endWord, Set dictionary, Map distance, List subResult, List> result) { + // terminator + if (Objects.equals(beginWord, endWord)) { + result.add(subResult); + return; + } + + // process current level logic + for (int i = 0; i < beginWord.length(); i++) { + char[] chars = beginWord.toCharArray(); + for (char c : initialTable) { + if (chars[i] != c) { + char temp = chars[i]; + chars[i] = c; + String newString = new String(chars); + if (dictionary.contains(newString)) { + // drill down + subResult.add(newString); + dictionary.remove(newString); + // 1. 获取不到距离的,说明该字符串所在路径非最短路径 + // 2. 如果当前字符串的距离 + 1 == 下一个节点字符串的距离 说明这两个字符串所在路径为最短路径上的节点 + if (Objects.nonNull(distance.get(beginWord)) && Objects.nonNull(distance.get(newString)) && distance.get(beginWord) + 1 == distance.get(newString)) { + findLadders(newString, endWord, dictionary, distance, new ArrayList<>(subResult), result); + } + + // restore state + subResult.remove(subResult.size() - 1); + dictionary.add(newString); + } + chars[i] = temp; + } + } + } + } +} + diff --git a/Week 03/id_006/LeetCode_127_006.java b/Week 03/id_006/LeetCode_127_006.java new file mode 100644 index 000000000..6bcca011f --- /dev/null +++ b/Week 03/id_006/LeetCode_127_006.java @@ -0,0 +1,55 @@ +package com.mrglint.leetcode.week03.solution127; + +import java.util.*; + +/** + * @author luhuancheng + * @since 2019-11-01 07:09 + */ +public class Solution { + public int ladderLength(String beginWord, String endWord, List wordList) { + char[] initialTable = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z'}; + // 使用map作为去重判断,不然会超时 + Map map = new HashMap<>(wordList.size()); + for (String s : wordList) { + map.put(s, true); + } + + if (!map.containsKey(endWord)) { + return 0; + } + Queue queue = new LinkedList<>(); + queue.offer(beginWord); + map.remove(beginWord); + int transformationCount = 1; + while (!queue.isEmpty()) { + int size = queue.size(); + + while (size-- > 0) { + String queueHead = queue.poll(); + if (Objects.equals(queueHead, endWord)) { + return transformationCount; + } + for (int i = 0; i < beginWord.length(); i++) { + for (char c : initialTable) { + char[] chars = queueHead.toCharArray(); + if (chars[i] != c) { + chars[i] = c; + String variant = new String(chars); + + if (map.containsKey(variant)) { + map.remove(variant); + queue.offer(variant); + } + } + } + } + } + transformationCount++; + } + return 0; + } +} + diff --git a/Week 03/id_006/LeetCode_200_006.java b/Week 03/id_006/LeetCode_200_006.java new file mode 100644 index 000000000..ab8c142cb --- /dev/null +++ b/Week 03/id_006/LeetCode_200_006.java @@ -0,0 +1,72 @@ +package com.mrglint.leetcode.week03.solution200; + +import java.util.LinkedList; +import java.util.Queue; + +/** + * @author luhuancheng + * @since 2019-11-03 07:50 + */ +public class BfsSolution { + + /** + * 声明坐标位上「上、左、下、右」四个位置的偏移量 + */ + private int[][] directions = new int[][]{{-1, 0}, {0, -1}, {1, 0}, {0, 1}}; + + /** + * 全局变量 存储结果 + */ + private int count = 0; + + public int numIslands(char[][] grid) { + /* + 数组为空 + */ + if (grid.length == 0) { + return 0; + } + + int rows = grid.length; + int cols = grid[0].length; + + /* + 标记坐标被访问的辅助数组 + */ + boolean[][] visited = new boolean[rows][cols]; + + /* + 广度优先遍历 + */ + Queue queue = new LinkedList<>(); + for (int row = 0; row < rows; row++) { + for (int col = 0; col < cols; col++) { + if (!visited[row][col] && grid[row][col] == '1') { + // 以char[row][col]作为根开始进行广度优先遍历,每个根记为一个岛屿 + count++; + visited[row][col] = true; + queue.offer(new int[]{row, col}); + while (!queue.isEmpty()) { + int[] queueHead = queue.poll(); + int queueRow = queueHead[0]; + int queueCol = queueHead[1]; + for (int i = 0; i < directions.length; i++) { + int newRow = queueRow + directions[i][0]; + int newCol = queueCol + directions[i][1]; + if (inArea(newRow, newCol, rows, cols) && !visited[newRow][newCol] && grid[newRow][newCol] == '1') { + visited[newRow][newCol] = true; + queue.offer(new int[]{newRow, newCol}); + } + } + } + } + } + } + return count; + } + + private boolean inArea(int row, int col, int rows, int cols) { + return row >= 0 && row < rows && col >= 0 && col < cols; + } +} + diff --git a/Week 03/id_006/LeetCode_322_006.java b/Week 03/id_006/LeetCode_322_006.java new file mode 100644 index 000000000..ea671b8f8 --- /dev/null +++ b/Week 03/id_006/LeetCode_322_006.java @@ -0,0 +1,77 @@ +package com.mrglint.leetcode.week03.solution322; + +import java.util.HashMap; +import java.util.Map; + +/** + * 贪心法无法求解该问题 + * + * @author luhuancheng + * @since 2019-11-03 16:40 + */ +public class Solution { + /** + * 分治、回溯角度思考:假设硬币为[10, 9, 1],兑换总额为18,那么问题可以转换为f(18) = min(f(18 - 10), f(18 - 9), f(18 - 1)) 直到硬币兑换成功 + * 傻递归,leetcode 超时 + * @param coins + * @param amount + * @return + */ + public int coinChange1(int[] coins, int amount) { + if (amount == 0) { + return 0; + } + int count = Integer.MAX_VALUE; + for (int coin : coins) { + if (amount - coin < 0) { + continue; + } + // 分解为子问题 + int subProb = coinChange1(coins, amount - coin); + // 子问题无解,回溯上层 + if (subProb == -1) { + continue; + } + count = Math.min(count, subProb + 1); + } + return count == Integer.MAX_VALUE ? -1 : count; + } + + /** + * 加缓存递归 + * @param coins + * @param amount + * @return + */ + public int coinChange(int[] coins, int amount) { + Map cache = new HashMap<>(); + return coinChange(coins, amount, cache); + } + + private int coinChange(int[] coins, int amount, Map cache) { + if (amount == 0) { + return 0; + } + // 从缓存中获取结果 + if (cache.containsKey(amount)) { + return cache.get(amount); + } + // 计算f(amount) : 将问题转换为f(amount) = min(f(amount - coin1), f(amount - coin2)) + int count = Integer.MAX_VALUE; + for (int coin : coins) { + if (amount - coin < 0) { + continue; + } + int subProb = coinChange(coins, amount - coin, cache); + if (subProb == -1) { + continue; + } + count = Math.min(count, subProb + 1); + } + // 计算结果放入缓存 + cache.put(amount, count == Integer.MAX_VALUE ? - 1 : count); + return cache.get(amount); + } + +} + diff --git a/Week 03/id_006/LeetCode_433_006.java b/Week 03/id_006/LeetCode_433_006.java new file mode 100644 index 000000000..3af36d402 --- /dev/null +++ b/Week 03/id_006/LeetCode_433_006.java @@ -0,0 +1,61 @@ +package com.mrglint.leetcode.week03.solution433; + +import java.util.*; + +/** + * @author luhuancheng + * @since 2019-10-31 08:37 + */ +public class Solution { + public int minMutation(String start, String end, String[] bank) { + // 建立基因字典 ["A", "C", "G", "T"] + char[] mutationMeta = new char[]{'A', 'C', 'G', 'T'}; + // 建立基因库映射,方便查看变异基因是否存在于基因库 + Map geneMap = new HashMap<>(bank.length); + for (String s : bank) { + geneMap.put(s, true); + } + Set known = new HashSet<>(); + + int mutationCount = 0; + Queue queue = new LinkedList<>(); + queue.offer(start); + known.add(start); + while (!queue.isEmpty()) { + int size = queue.size(); + while (size-- > 0) { + String queueHead = queue.poll(); + if (Objects.equals(queueHead, end)) { + return mutationCount; + } + // 进行变异 + for (int i = 0; i < queueHead.length(); i++) { + for (char c : mutationMeta) { + char[] chars = queueHead.toCharArray(); + if (chars[i] != c) { + chars[i] = c; + String mutationGene = new String(chars); + if (geneMap.containsKey(mutationGene) && !known.contains(mutationGene)) { + queue.offer(mutationGene); + known.add(mutationGene); + } + } + } + } + } + mutationCount++; + } + return -1; + } + + public static void main(String[] args) { + /** + * "AACCGGTT" + * "AACCGCTA" + * ["AACCGGTA","AACCGCTA","AAACGGTA"] + */ + Solution solution = new Solution(); + System.out.println(solution.minMutation("AACCGGTT", "AACCGCTA", new String[]{"AACCGGTA","AACCGCTA","AAACGGTA"})); + } +} + diff --git a/Week 03/id_006/LeetCode_455_006.java b/Week 03/id_006/LeetCode_455_006.java new file mode 100644 index 000000000..d416a86c8 --- /dev/null +++ b/Week 03/id_006/LeetCode_455_006.java @@ -0,0 +1,33 @@ +package com.mrglint.leetcode.week03.solution455; + +import java.util.Arrays; + +/** + * @author luhuancheng + * @since 2019-11-03 22:17 + */ +public class Solution { + public int findContentChildren(int[] g, int[] s) { + if (g.length == 0 || s.length == 0) { + return 0; + } + // 从小到大排序 + Arrays.sort(g); + Arrays.sort(s); + + int count = 0; + int childrenIndex = 0; + int cookieIndex = 0; + while (childrenIndex < g.length && cookieIndex < s.length) { + if (s[cookieIndex] < g[childrenIndex]) { + cookieIndex++; + } else { + cookieIndex++; + childrenIndex++; + count++; + } + } + return count; + } +} + diff --git a/Week 03/id_006/LeetCode_515_006.java b/Week 03/id_006/LeetCode_515_006.java new file mode 100644 index 000000000..ba4c80009 --- /dev/null +++ b/Week 03/id_006/LeetCode_515_006.java @@ -0,0 +1,41 @@ +package com.mrglint.leetcode.week03.solution515; + +import com.mrglint.leetcode.TreeNode; + +import java.util.*; + +/** + * @author luhuancheng + * @since 2019-10-31 22:11 + */ +public class Solution { + + public List largestValues(TreeNode root) { + List result = new ArrayList<>(); + if (Objects.isNull(root)) { + return result; + } + + Queue queue = new LinkedList<>(); + queue.offer(root); + while (!queue.isEmpty()) { + int size = queue.size(); + int max = Integer.MIN_VALUE; + while (size-- > 0) { + TreeNode queueHead = queue.poll(); + if (Objects.nonNull(queueHead)) { + max = Math.max(max, queueHead.val); + if (Objects.nonNull(queueHead.left)) { + queue.offer(queueHead.left); + } + if (Objects.nonNull(queueHead.right)) { + queue.offer(queueHead.right); + } + } + } + result.add(max); + } + return result; + } +} + diff --git a/Week 03/id_006/LeetCode_529_006.java b/Week 03/id_006/LeetCode_529_006.java new file mode 100644 index 000000000..9bed39af5 --- /dev/null +++ b/Week 03/id_006/LeetCode_529_006.java @@ -0,0 +1,119 @@ +package com.mrglint.leetcode.week03.solution529; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.Queue; + +/** + * @author luhuancheng + * @since 2019-11-03 14:10 + */ +public class Solution { + + /** + * 未挖出炸弹 + */ + private static final char BOMBSHELL = 'M'; + + /** + * 未挖出空地 + */ + private static final char NOT_TO_DIG_BLACK = 'E'; + + /** + * 安全区域 + */ + private static final char SAFE_AREA = 'B'; + + /** + * 爆炸区域 + */ + private static final char EXPLODE_AREA = 'X'; + + /** + * 周围八个位置的坐标偏移 + */ + private static final int[][] DIRECTIONS = new int[][]{{-1, -1}, {0, -1}, {1, -1}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}}; + + /** + * 思路:广度优先搜索 + * 要点:当周围没有炸弹,则遍历周围节点;否则获取周围炸点节点,标记为数字 + * + * @param board + * @param click + * @return + */ + public char[][] updateBoard(char[][] board, int[] click) { + int clickRow = click[0]; + int clickCol = click[1]; + + int rows = board.length; + int cols = board[0].length; + + // 标记节点是否被访问 + boolean[][] visited = new boolean[rows][cols]; + + // 点击到炸弹 + if (board[clickRow][clickCol] == BOMBSHELL) { + board[clickRow][clickCol] = EXPLODE_AREA; + return board; + } + + Queue queue = new LinkedList<>(); + queue.offer(click); + visited[clickRow][clickCol] = true; + while (!queue.isEmpty()) { + int[] queueHead = queue.poll(); + int row = queueHead[0]; + int col = queueHead[1]; + + int number = getBombShellNumber(row, col, rows, cols, board); + if (number == 0) { + // 周围没有炸弹,标记为 'B' + board[row][col] = SAFE_AREA; + // 遍历八个相连节点 + for (int i = 0; i < DIRECTIONS.length; i++) { + int newRow = row + DIRECTIONS[i][0]; + int newCol = col + DIRECTIONS[i][1]; + // 不越界 && 未访问过 && 未被翻过 + if (inArea(newRow, newCol, rows, cols) && !visited[newRow][newCol] && board[newRow][newCol] == NOT_TO_DIG_BLACK) { + visited[newRow][newCol] = true; + queue.offer(new int[]{newRow, newCol}); + } + } + } else { + // Character.forDigit(number, 10) 转为10进制的 char 类型标识 + board[row][col] = Character.forDigit(number, 10); + } + } + return board; + } + + private int getBombShellNumber(int clickRow, int clickCol, int rows, int cols, char[][] board) { + int result = 0; + for (int i = 0; i < DIRECTIONS.length; i++) { + int newRow = clickRow + DIRECTIONS[i][0]; + int newCol = clickCol + DIRECTIONS[i][1]; + + if (inArea(newRow, newCol, rows, cols) && board[newRow][newCol] == BOMBSHELL) { + result++; + } + } + return result; + } + + private boolean inArea(int row, int col, int rows, int cols) { + return row >= 0 && row < rows && col >= 0 && col < cols; + } + + public static void main(String[] args) { + Solution solution = new Solution(); + char[][] board = new char[][]{{'E', 'E', 'E', 'E', 'E'}, {'E', 'E', 'M', 'E', 'E'}, {'E', 'E', 'E', 'E', 'E'}, {'E', 'E', 'E', 'E', 'E'}}; + int[] click = new int[]{3, 0}; + char[][] result = solution.updateBoard(board, click); + for (char[] ca : result) { + System.out.println(Arrays.toString(ca)); + } + } +} + diff --git a/Week 03/id_006/LeetCode_860_006.java b/Week 03/id_006/LeetCode_860_006.java new file mode 100644 index 000000000..62036da84 --- /dev/null +++ b/Week 03/id_006/LeetCode_860_006.java @@ -0,0 +1,38 @@ +package com.mrglint.leetcode.week03.solution860; + +/** + * @author luhuancheng + * @since 2019-11-03 21:55 + */ +public class Solution { + public boolean lemonadeChange(int[] bills) { + int five = 0; + int ten = 0; + + for (int i : bills) { + if (i == 5) { + five++; + } else if (i == 10) { + if (five > 0) { + five--; + ten++; + } else { + return false; + } + } else if (i == 20) { + if (ten > 0 && five > 0) { + ten--; + five--; + } else { + if (five >= 3) { + five -= 3; + } else { + return false; + } + } + } + } + return true; + } +} + diff --git a/Week 03/id_006/NOTE.md b/Week 03/id_006/NOTE.md index a6321d6e2..9602f4e57 100644 --- a/Week 03/id_006/NOTE.md +++ b/Week 03/id_006/NOTE.md @@ -1,4 +1,33 @@ -# NOTE +## 学习总结 +### 本周学习收获 +- 深度、广度优先搜索 +- 贪心法:应用时需要能证明应用贪心法可以求的最优解,比如「兑换硬币」这个问题就无法使用贪心法求解 +- 二分查找:基于有序、可通过索引直接访问的数据,可以利用二分法一次排除掉一半的备选项,加快搜索速度 - +### 代码技巧 +- 二维数组坐标周围的八个节点偏移变换:new int[][]{{-1, -1}, {0, -1}, {1, -1}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}},可以利用当前坐标加上该二维数组中的偏移量来获得周边节点 +### 二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 +```java +public class FindNotOrderIndex { + public int notOrderIndex(int[] data) { + int lo = 0; + int hi = data.length - 1; + while (lo < hi) { + int mid = lo + (hi - lo) / 2; + // 中间元素大于最后一个元素,说明[mid, data.length)是有序的,排除掉 + if (data[mid] < data[data.length - 1]) { + hi = mid; + } else { + lo = mid + 1; + } + } + return lo; + } + + public static void main(String[] args) { + FindNotOrderIndex findNotOrderIndex = new FindNotOrderIndex(); + System.out.println(findNotOrderIndex.notOrderIndex(new int[]{4, 5, 6, 7, 0, 1, 2})); + } +} +``` From 2ce449a3fcb04825e692baeff23466c296f5c042 Mon Sep 17 00:00:00 2001 From: xujian Date: Sun, 3 Nov 2019 23:13:10 +0800 Subject: [PATCH 161/740] =?UTF-8?q?=E4=BA=8C=E5=88=86=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E5=92=8C=E8=B4=AA=E5=BF=83=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_666/LeetCode_33_666.java | 23 +++++++++++++++++++ Week 03/id_666/LeetCode_860_666.java | 34 ++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 Week 03/id_666/LeetCode_33_666.java create mode 100644 Week 03/id_666/LeetCode_860_666.java diff --git a/Week 03/id_666/LeetCode_33_666.java b/Week 03/id_666/LeetCode_33_666.java new file mode 100644 index 000000000..7dc5396ca --- /dev/null +++ b/Week 03/id_666/LeetCode_33_666.java @@ -0,0 +1,23 @@ +class Solution { + public int search(int[] nums, int target) { + int start = 0; + int end = nums.length - 1; + while (start <= end) { + int mid = start + (end - start) / 2; + int num = nums[mid]; + if ((nums[mid] < nums[0]) == (target < nums[0])) { + num = nums[mid]; + } else { + num = target < nums[0] ? Integer.MIN_VALUE : Integer.MAX_VALUE; + } + if (num < target) { + start = mid + 1; + } else if (num > target) { + end = mid - 1; + } else { + return mid; + } + } + return -1; + } +} \ No newline at end of file diff --git a/Week 03/id_666/LeetCode_860_666.java b/Week 03/id_666/LeetCode_860_666.java new file mode 100644 index 000000000..2c1a729e5 --- /dev/null +++ b/Week 03/id_666/LeetCode_860_666.java @@ -0,0 +1,34 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + //定义收取 5 元 和 10 元的个数 + int five = 0; + int ten = 0; + for (int bill : bills) { + if (bill == 5) { + five ++; + } else if (bill == 10) { + //判断是否有找零 + if (five == 0) { + return fales; + } else { + ten ++; + five --; + } + } else { + //判断是否有足够的 5 元和 10 元 + if (five > 0 && ten > 0) { + five --; + ten --; + } else if (five >= 3) { + // 当有足够的 5 元情况 + five -= 3; + } else { + return false; + } + } + } + + return true; + } + +} \ No newline at end of file From 9ee74c0f50f52778bbccf6230931847ca99883de Mon Sep 17 00:00:00 2001 From: LynnSunStudio <334857146@qq.com> Date: Sun, 3 Nov 2019 23:17:09 +0800 Subject: [PATCH 162/740] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_306/FindContentChildren.java | 21 +++++ .../FindMinimumInRotatedSortedArray.java | 18 ++++ Week 03/id_306/JumpGame.java | 16 ++++ Week 03/id_306/JumpGameTwo.java | 20 ++++ Week 03/id_306/LemonadeChange.java | 32 +++++++ Week 03/id_306/LevelOrder.java | 78 ++++++++++++++++ Week 03/id_306/MaxProfit.java | 23 +++++ Week 03/id_306/NumIslands_Union.java | 85 +++++++++++++++++ Week 03/id_306/NumIslands_bfs.java | 91 +++++++++++++++++++ Week 03/id_306/NumIslands_dfs.java | 67 ++++++++++++++ .../id_306/SearchInRotatedSortedArray.java | 24 +++++ Week 03/id_306/Sqrtx.java | 36 ++++++++ Week 03/id_306/UpdateBoard.java | 73 +++++++++++++++ Week 03/id_306/WalkingRobotSim.java | 39 ++++++++ 14 files changed, 623 insertions(+) create mode 100644 Week 03/id_306/FindContentChildren.java create mode 100644 Week 03/id_306/FindMinimumInRotatedSortedArray.java create mode 100644 Week 03/id_306/JumpGame.java create mode 100644 Week 03/id_306/JumpGameTwo.java create mode 100644 Week 03/id_306/LemonadeChange.java create mode 100644 Week 03/id_306/LevelOrder.java create mode 100644 Week 03/id_306/MaxProfit.java create mode 100644 Week 03/id_306/NumIslands_Union.java create mode 100644 Week 03/id_306/NumIslands_bfs.java create mode 100644 Week 03/id_306/NumIslands_dfs.java create mode 100644 Week 03/id_306/SearchInRotatedSortedArray.java create mode 100644 Week 03/id_306/Sqrtx.java create mode 100644 Week 03/id_306/UpdateBoard.java create mode 100644 Week 03/id_306/WalkingRobotSim.java diff --git a/Week 03/id_306/FindContentChildren.java b/Week 03/id_306/FindContentChildren.java new file mode 100644 index 000000000..890c7f96a --- /dev/null +++ b/Week 03/id_306/FindContentChildren.java @@ -0,0 +1,21 @@ +import java.util.Arrays; + +/** + * Created by LynnSun on 2019/10/31. + * 力扣题目地址:https://leetcode-cn.com/problems/assign-cookies/description/ + */ +public class FindContentChildren { + public int findContentChildren(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + int l = 0, r = 0,res = 0; + while (l < g.length && r < s.length) { + if (g[l] <= s[r]) { + l++; + res++; + } + r++; + } + return res; + } +} diff --git a/Week 03/id_306/FindMinimumInRotatedSortedArray.java b/Week 03/id_306/FindMinimumInRotatedSortedArray.java new file mode 100644 index 000000000..e7799f737 --- /dev/null +++ b/Week 03/id_306/FindMinimumInRotatedSortedArray.java @@ -0,0 +1,18 @@ +/** + * Created by LynnSun on 2019/11/3. + * 力扣题目地址:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ + */ +public class FindMinimumInRotatedSortedArray { + public int findMin(int[] nums) { + int left = 0, right = nums.length - 1; + while(left < right){ + //找到数组的中间元素 mid。 + int mid = (left + right) / 2; + /*如果中间元素 > 数组第一个元素,变化点在右边。 + 如果中间元素 < 数组第一个元素,变化点在左边*/ + if(nums[mid] > nums[right]) left = mid + 1; + else right = mid; + } + return nums[left]; + } +} diff --git a/Week 03/id_306/JumpGame.java b/Week 03/id_306/JumpGame.java new file mode 100644 index 000000000..7e16c6018 --- /dev/null +++ b/Week 03/id_306/JumpGame.java @@ -0,0 +1,16 @@ +/** + * Created by LynnSun on 2019/11/1. + * 力扣题目地址:https://leetcode-cn.com/problems/jump-game/ + */ +public class JumpGame { + public boolean canJump(int[] nums) { + int lastPos = nums.length - 1; + for (int i = nums.length - 1; i >= 0; i--) { + // 如果 数组索引 + 数组值>= 最后的索引值 才能意味着 可以跳到最后 如此 如果能找到第一个索引为正确 + if (i + nums[i] >= lastPos) { + lastPos = i; + } + } + return lastPos == 0; + } +} diff --git a/Week 03/id_306/JumpGameTwo.java b/Week 03/id_306/JumpGameTwo.java new file mode 100644 index 000000000..dcae094c3 --- /dev/null +++ b/Week 03/id_306/JumpGameTwo.java @@ -0,0 +1,20 @@ +/** + * Created by LynnSun on 2019/11/1. + * 力扣题目地址:https://leetcode-cn.com/problems/jump-game-ii/ + */ +public class JumpGameTwo { + public int jump(int[] nums) { + int end = 0; + int maxPosition = 0; + int steps = 0; + for(int i = 0; i < nums.length - 1; i++){ + // 找能跳的最远的 + maxPosition = Math.max(maxPosition, nums[i] + i); + if( i == end){ // 遇到边界,就更新边界,并且步数加一 + end = maxPosition; + steps++; + } + } + return steps; + } +} diff --git a/Week 03/id_306/LemonadeChange.java b/Week 03/id_306/LemonadeChange.java new file mode 100644 index 000000000..683384d6d --- /dev/null +++ b/Week 03/id_306/LemonadeChange.java @@ -0,0 +1,32 @@ +/** + * Created by LynnSun on 2019/10/31. + * 力扣题目地址:https://leetcode-cn.com/problems/lemonade-change/description/ + */ +public class LemonadeChange { + public boolean lemonadeChange(int[] bills) { + int money_five=0; + int money_ten=0; + for (int bill :bills) { + if(5==bill){ + money_five++; + }else if (10==bill){ + if(money_five==0){ + return false; + } + money_five--; + money_ten++; + }else{ + // 这样才是贪心 先考虑10元再考虑5元 + if(money_ten>0 && money_five>0){ + money_ten--; + money_five--; + }else if(money_five>2){ + money_five=money_five-3; + }else{ + return false; + } + } + } + return true; + } +} diff --git a/Week 03/id_306/LevelOrder.java b/Week 03/id_306/LevelOrder.java new file mode 100644 index 000000000..9358d73ef --- /dev/null +++ b/Week 03/id_306/LevelOrder.java @@ -0,0 +1,78 @@ +import java.util.ArrayList; +import java.util.Deque; +import java.util.LinkedList; +import java.util.List; + +/** + * Created by LynnSun on 2019/10/28. + * 力扣题目地址:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description + */ +public class LevelOrder { + + /** + * 广度优先搜索,用队列完成 + * @param root + * @return + */ + public List> levelOrder_bfs(TreeNode root) { + List> res = new ArrayList<>(); + if (root == null) return res; + // 队列 + Deque treeNodeQueque=new LinkedList<>(); + // 先保存第一个元素 + treeNodeQueque.add(root); + // 队列不为空进行循环,同时也是结束条件 + while (!treeNodeQueque.isEmpty()){ + // 保存每一层的输出结果 + List tmpOutList = new ArrayList<>(); + // 这里必须如此,不然for循环会改变treeNodeQueque.size()的值 + int queueSize=treeNodeQueque.size(); + // 循环取出队列中的元素 + for(int i=0;i> levelOrder_dfs(TreeNode root) { + List> levels = new ArrayList>(); + if (root == null) return levels; + dfs_helper(root, 0,levels); + return levels; + } + + /** + * 递归遍历左右分支树,但是需要传当前深度(层),这样出栈时就可以确定自己的层并保存正确 + * @param node + * @param level + * @param levels + */ + private void dfs_helper(TreeNode node,int level,List> levels){ + // 给每一层构建一个保存节点数据的List + if (levels.size() == level) + levels.add(new ArrayList()); + // 保存此节点数据 + levels.get(level).add(node.val); + // 如果左分支有下一层 继续递归遍历 + if (node.left != null) + dfs_helper(node.left, level + 1,levels); + // 如果右分支有下一层 继续递归遍历 + if (node.right != null) + dfs_helper(node.right, level + 1,levels); + } +} diff --git a/Week 03/id_306/MaxProfit.java b/Week 03/id_306/MaxProfit.java new file mode 100644 index 000000000..324b7ebae --- /dev/null +++ b/Week 03/id_306/MaxProfit.java @@ -0,0 +1,23 @@ +/** + * Created by LynnSun on 2019/10/31. + * 力扣题目地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/ + */ +public class MaxProfit { + public int maxProfit(int[] prices) { + // 贪心算法 + // 求最优解 + /**因为现实中对股票价格的不可预测性,我们不可能真的乱买乱卖。 + * 但是程序有数据能预测我们只是做一个模拟的话是可以求出最优解的。 + * 比如 2 4 9,来说,我应该今天买后天卖,最优解为 9 - 2 = 7, + * 那我就不能明天卖,应该后天卖,但是程序它不知道啊, + * 我们这样想,明天卖早了说明我明天买后天在卖还是有钱赚, + * 并且和后天卖的钱挣得是一样的即:9-4+4-2 = 7 + */ + int maxProfit = 0; + for (int i = 1; i < prices.length; i++) { + if (prices[i] > prices[i - 1]) + maxProfit += prices[i] - prices[i - 1]; + } + return maxProfit; + } +} diff --git a/Week 03/id_306/NumIslands_Union.java b/Week 03/id_306/NumIslands_Union.java new file mode 100644 index 000000000..453a83097 --- /dev/null +++ b/Week 03/id_306/NumIslands_Union.java @@ -0,0 +1,85 @@ +/** + * 并查集方法 + * Created by LynnSun on 2019/10/29. + * 力扣题目地址:https://leetcode-cn.com/problems/number-of-islands/ + */ +public class NumIslands_Union { + class UnionFind { + int count; // # of connected components + int[] parent; + int[] rank; + + public UnionFind(char[][] grid) { // for problem 200 + count = 0; + int m = grid.length; + int n = grid[0].length; + parent = new int[m * n]; + rank = new int[m * n]; + for (int i = 0; i < m; ++i) { + for (int j = 0; j < n; ++j) { + if (grid[i][j] == '1') { + parent[i * n + j] = i * n + j; + ++count; + } + rank[i * n + j] = 0; + } + } + } + + public int find(int i) { // path compression + if (parent[i] != i) parent[i] = find(parent[i]); + return parent[i]; + } + + public void union(int x, int y) { // union with rank + int rootx = find(x); + int rooty = find(y); + if (rootx != rooty) { + if (rank[rootx] > rank[rooty]) { + parent[rooty] = rootx; + } else if (rank[rootx] < rank[rooty]) { + parent[rootx] = rooty; + } else { + parent[rooty] = rootx; rank[rootx] += 1; + } + --count; + } + } + + public int getCount() { + return count; + } + } + + public int numIslands(char[][] grid) { + if (grid == null || grid.length == 0) { + return 0; + } + + int nr = grid.length; + int nc = grid[0].length; + int num_islands = 0; + UnionFind uf = new UnionFind(grid); + for (int r = 0; r < nr; ++r) { + for (int c = 0; c < nc; ++c) { + if (grid[r][c] == '1') { + grid[r][c] = '0'; + if (r - 1 >= 0 && grid[r-1][c] == '1') { + uf.union(r * nc + c, (r-1) * nc + c); + } + if (r + 1 < nr && grid[r+1][c] == '1') { + uf.union(r * nc + c, (r+1) * nc + c); + } + if (c - 1 >= 0 && grid[r][c-1] == '1') { + uf.union(r * nc + c, r * nc + c - 1); + } + if (c + 1 < nc && grid[r][c+1] == '1') { + uf.union(r * nc + c, r * nc + c + 1); + } + } + } + } + + return uf.getCount(); + } +} diff --git a/Week 03/id_306/NumIslands_bfs.java b/Week 03/id_306/NumIslands_bfs.java new file mode 100644 index 000000000..faf3db9db --- /dev/null +++ b/Week 03/id_306/NumIslands_bfs.java @@ -0,0 +1,91 @@ +import java.util.LinkedList; + +/** + * Created by LynnSun on 2019/10/29. + * 力扣题目地址:https://leetcode-cn.com/problems/number-of-islands/ + * 广度优先搜索 + */ +public class NumIslands_bfs { + // 陆地坐标 + class Point{ + int x; + int y; + + public Point(int x, int y) { + this.x = x; + this.y = y; + } + } + + public int numIslands(char[][] grid) { + if (grid == null || grid.length < 1) { + return 0; + } + int count = 0, rows = grid.length; + // X 轴可以移动到的坐标,Y 轴可以移动到的坐标 + int[] moveX = {-1, 1, 0, 0}, moveY = {0, 0, -1, 1}; + LinkedList queue = new LinkedList(); + // rows 行数 + for (int i = 0; i < rows ; i++) { + // cols 列数 + int cols = grid[i].length; + for (int j = 0; j < cols; j++) { + if (grid[i][j] == '1') { + // 累加岛屿的数量 + count++; + // 把访问过的陆地坐标变成0(海水),再一次就不会再访问 + grid[i][j] = '0'; + // 添加到队列中 + queue.add(new Point(i, j)); + // 广度优先遍历,上下左右染色 + while (queue.size() != 0) { + // 取出陆地坐标 + Point p = queue.poll(); + // 对其进行上下左右的坐标进行判断能否组成岛屿 + for (int k = 0; k < moveX.length; k++) { + int x = p.x + moveX[k], y = p.y + moveY[k]; + // 判断是否能组成岛屿 + if (isValid(rows, cols, x, y) && grid[x][y] == '1') { + // 能组成岛屿就变成0(海水),下一次就不会再访问 + grid[x][y] = '0'; + queue.add(new Point(x, y)); + } + } + } + } + } + } + return count; + } + + /** + * 判断能否能移动 + * @param rows + * @param cols + * @param x + * @param y + * @return + */ + private boolean isValid(int rows,int cols, int x, int y) { + return x >= 0 && x < rows && y >= 0 && y < cols; + } + + public static void main(String[] args) { + NumIslands_bfs ns = new NumIslands_bfs(); + char[][] grid1 = { + {'1', '1', '1', '1', '0'}, + {'1', '1', '0', '1', '0'}, + {'1', '1', '0', '0', '0'}, + {'0', '0', '0', '0', '0'}}; + int numIslands1 = ns.numIslands(grid1); + System.out.println(numIslands1); + + char[][] grid2 = { + {'1', '1', '0', '0', '0'}, + {'1', '1', '0', '0', '0'}, + {'0', '0', '1', '0', '0'}, + {'0', '0', '0', '1', '1'}}; + int numIslands2 = ns.numIslands(grid2); + System.out.println(numIslands2); + } +} diff --git a/Week 03/id_306/NumIslands_dfs.java b/Week 03/id_306/NumIslands_dfs.java new file mode 100644 index 000000000..7abbd7b8a --- /dev/null +++ b/Week 03/id_306/NumIslands_dfs.java @@ -0,0 +1,67 @@ +/** + * Created by LynnSun on 2019/10/28. + * 力扣题目地址:https://leetcode-cn.com/problems/number-of-islands/ + * 深度优先搜索 + */ +public class NumIslands_dfs { + class Point{ + int x; + int y; + + public Point(int x, int y) { + this.x = x; + this.y = y; + } + } + private int[] moveX = {-1, 1, 0, 0},moveY = {0, 0, -1, 1}; + public int numIslands(char[][] grid) { + if (grid == null || grid.length < 1) { + return 0; + } + int count = 0, len1 = grid.length; + + for (int i = 0; i < len1; i++) { + int len2 = grid[i].length; + for (int j = 0; j < len2; j++) { + // 每次返回的岛屿数量总和 + count += dfs(grid, len1, len2, i, j); + } + } + return count; + } + // 深度优先模式,递归方式遍历 + private int dfs(char[][] grid,int len1,int len2,int x,int y) { + if ((!isValid(len1, len2, x, y))||grid[x][y]!='1') { + return 0; + } + grid[x][y] = '0'; + // 循环并递归是否能连成一个岛屿 + for (int i = 0; i < moveX.length; i++) { + dfs(grid,len1, len2, x + moveX[i], y+moveY[i]); + } + return 1; + } + + private boolean isValid(int len1,int len2, int x, int y) { + return x >= 0 && x < len1 && y >= 0 && y < len2; + } + + public static void main(String[] args) { + NumIslands_dfs ns = new NumIslands_dfs(); + char[][] grid1 = { + {'1', '1', '1', '1', '0'}, + {'1', '1', '0', '1', '0'}, + {'1', '1', '0', '0', '0'}, + {'0', '0', '0', '0', '0'}}; + int numIslands1 = ns.numIslands(grid1); + System.out.println(numIslands1); + + char[][] grid2 = { + {'1', '1', '0', '0', '0'}, + {'1', '1', '0', '0', '0'}, + {'0', '0', '1', '0', '0'}, + {'0', '0', '0', '1', '1'}}; + int numIslands2 = ns.numIslands(grid2); + System.out.println(numIslands2); + } +} diff --git a/Week 03/id_306/SearchInRotatedSortedArray.java b/Week 03/id_306/SearchInRotatedSortedArray.java new file mode 100644 index 000000000..ac9cb9ada --- /dev/null +++ b/Week 03/id_306/SearchInRotatedSortedArray.java @@ -0,0 +1,24 @@ +/** + * Created by LynnSun on 2019/11/3. + * 力扣题目地址:https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ + */ +public class SearchInRotatedSortedArray { + public int search(int[] nums, int target) { + int lo = 0; + int hi = nums.length - 1; + + while (lo < hi) { + int mid = (lo + hi) / 2; + // 当[0,mid]有序时,向后规约条件 + if (nums[0] <= nums[mid] && (target > nums[mid] || target < nums[0])) { + lo = mid + 1; + // 当[0,mid]发生旋转时,向后规约条件 + } else if (target > nums[mid] && target < nums[0]) { + lo = mid + 1; + } else { + hi = mid; + } + } + return lo == hi && nums[lo] == target ? lo : -1; + } +} diff --git a/Week 03/id_306/Sqrtx.java b/Week 03/id_306/Sqrtx.java new file mode 100644 index 000000000..14c7da62d --- /dev/null +++ b/Week 03/id_306/Sqrtx.java @@ -0,0 +1,36 @@ +/** + * Created by LynnSun on 2019/11/3. + * 力扣题目地址:https://leetcode-cn.com/problems/sqrtx/ + */ +public class Sqrtx { + public int mySqrt(int x) { + if (x == 0 || x==1) { + return x; + } + // 注意:针对特殊测试用例,例如 2147395599 + // 要把搜索的范围设置成长整型 + long left = 1; + long right = x / 2; + while (left < right) { + // 注意:这里一定取右中位数,如果取左中位数,代码会进入死循环 + // long mid = left + (right - left + 1) / 2; + long mid = (left + right + 1) >>> 1; // 小技巧防越界 + long square = mid * mid; + if (square > x) { + right = mid - 1; + } else { + left = mid; + } + } + // 因为一定存在,因此无需后处理 + return (int) left; + } + + public int mySqrt_ND(int a){ + long x = a; + while (x * x > a) { + x = (x + a / x) / 2; + } + return (int) x; + } +} diff --git a/Week 03/id_306/UpdateBoard.java b/Week 03/id_306/UpdateBoard.java new file mode 100644 index 000000000..ce86cae8d --- /dev/null +++ b/Week 03/id_306/UpdateBoard.java @@ -0,0 +1,73 @@ +/** + * Created by LynnSun on 2019/10/30. + * 力扣题目地址:https://leetcode-cn.com/problems/minesweeper/description/ + */ +public class UpdateBoard { + public char[][] updateBoard(char[][] board, int[] click) { + if (click[0] < 0 || click[1] < 0) return board; + if (click[0] >= board.length || click[1] >= board[0].length) return board; + + int row, col; + row = click[0]; + col = click[1]; + + // Hit a blank, skip + if (board[row][col] == 'B') { + return board; + } + + // Hit a mine, game over + if (board[row][col] == 'M') { + board[row][col] = 'X'; + return board; + } + + // Check for surrounding mines + int mines = checkAdjacent(board, click); + if (mines != 0) { + board[row][col] = (char) (mines + '0'); + return board; + } + + // Totally blank + board[row][col] = 'B'; + // Update all surrounding tiles + for (int i = row-1; i <= row+1; i++) { + for (int j = col-1; j <= col+1; j++) { + board = updateBoard(board, new int[]{i, j}); + } + } + + return board; + } + + private int checkAdjacent(char[][] board, int[] tile) { + int total = 0; + int iMin, iMax, jMin, jMax; + iMin = jMin = 0; + iMax = board.length - 1; + jMax = board[0].length - 1; + + // Start with top left surrounding tile + int startI = tile[0] - 1; + int startJ = tile[1] - 1; + for (int i = startI; i <= startI + 2; i++) { + // skip out of bound indices + if (i < iMin) continue; + if (i > iMax) continue; + + for (int j = startJ; j <= startJ + 2; j++) { + // skip out of bound indices + if (j < jMin) continue; + if (j > jMax) continue; + + // Add all adjacent mines to the list + if (board[i][j] == 'M') { + total++; + } + } + } + + return total; + } +} diff --git a/Week 03/id_306/WalkingRobotSim.java b/Week 03/id_306/WalkingRobotSim.java new file mode 100644 index 000000000..98386386b --- /dev/null +++ b/Week 03/id_306/WalkingRobotSim.java @@ -0,0 +1,39 @@ +import java.util.HashSet; +import java.util.Set; + +/** + * Created by LynnSun on 2019/10/31. + * 力扣题目地址:https://leetcode-cn.com/problems/walking-robot-simulation/description/ + */ +public class WalkingRobotSim { + public int robotSim(int[] commands, int[][] obstacles) { + int[][] dir = { { 0, 1 }, { 1, 0 }, { 0, -1 }, { -1, 0 } }; + int x = 0, y=0; + int dir_index=0; + int ans = 0; + Set blockSet = new HashSet(); + for (int i=0;i0) { + for (int j=1;j<=commands[i];j++) { + int next_x = x+ dir[dir_index][0]; + int next_y = y+ dir[dir_index][1]; + if (blockSet.contains(next_x+","+next_y)) { + break; + }else { + x = next_x; + y = next_y; + ans = Math.max(ans, x*x+y*y); + } + } + } + } + return ans; + } +} From be4d243a7174036c99fff4e8268e50635c7c8080 Mon Sep 17 00:00:00 2001 From: jcj Date: Sun, 3 Nov 2019 23:23:31 +0800 Subject: [PATCH 163/740] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E5=91=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\346\234\200\345\260\217\345\200\274.java" | 61 ++++++++++++++ ...\345\261\277\346\225\260\351\207\217.java" | 81 +++++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 "Week 03/id_606/153.\345\257\273\346\211\276\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\346\234\200\345\260\217\345\200\274.java" create mode 100644 "Week 03/id_606/200.\345\262\233\345\261\277\346\225\260\351\207\217.java" diff --git "a/Week 03/id_606/153.\345\257\273\346\211\276\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\346\234\200\345\260\217\345\200\274.java" "b/Week 03/id_606/153.\345\257\273\346\211\276\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\346\234\200\345\260\217\345\200\274.java" new file mode 100644 index 000000000..81820dd80 --- /dev/null +++ "b/Week 03/id_606/153.\345\257\273\346\211\276\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\346\234\200\345\260\217\345\200\274.java" @@ -0,0 +1,61 @@ +/* + * @lc app=leetcode.cn id=153 lang=java + * + * [153] 寻找旋转排序数组中的最小值 + * + * https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/description/ + * + * algorithms + * Medium (49.70%) + * Likes: 102 + * Dislikes: 0 + * Total Accepted: 21K + * Total Submissions: 42.2K + * Testcase Example: '[3,4,5,1,2]' + * + * 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 + * + * ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 + * + * 请找出其中最小的元素。 + * + * 你可以假设数组中不存在重复元素。 + * + * 示例 1: + * + * 输入: [3,4,5,1,2] + * 输出: 1 + * + * 示例 2: + * + * 输入: [4,5,6,7,0,1,2] + * 输出: 0 + * + */ + +// @lc code=start +class Solution { + public int findMin(int[] nums) { + int len = nums.length; + if (len == 0) { + throw new IllegalArgumentException("数组为空,无最小元素"); + } + int left = 0; + int right = len - 1; + while (left < right) { + // int mid = left + (right - left) / 2; + int mid = (left + right) >>> 1; + if (nums[mid] > nums[right]) { + left = mid + 1; + } else { + // 因为题目中说:你可以假设数组中不存在重复元素。 + // 此时一定有 nums[mid] < nums[right] + right = mid; + } + } + // 一定存在最小元素,因此无需再做判断 + return nums[left]; + + } +} +// @lc code=end diff --git "a/Week 03/id_606/200.\345\262\233\345\261\277\346\225\260\351\207\217.java" "b/Week 03/id_606/200.\345\262\233\345\261\277\346\225\260\351\207\217.java" new file mode 100644 index 000000000..c35952f85 --- /dev/null +++ "b/Week 03/id_606/200.\345\262\233\345\261\277\346\225\260\351\207\217.java" @@ -0,0 +1,81 @@ +/* + * @lc app=leetcode.cn id=200 lang=java + * + * [200] 岛屿数量 + * + * https://leetcode-cn.com/problems/number-of-islands/description/ + * + * algorithms + * Medium (45.63%) + * Likes: 265 + * Dislikes: 0 + * Total Accepted: 36K + * Total Submissions: 78.8K + * Testcase Example: '[["1","1","1","1","0"],["1","1","0","1","0"],["1","1","0","0","0"],["0","0","0","0","0"]]' + * + * 给定一个由 '1'(陆地)和 + * '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 + * + * 示例 1: + * + * 输入: + * 11110 + * 11010 + * 11000 + * 00000 + * + * 输出: 1 + * + * + * 示例 2: + * + * 输入: + * 11000 + * 11000 + * 00100 + * 00011 + * + * 输出: 3 + * + * + */ + +// @lc code=start +class Solution { + public int numIslands(char[][] grid) { + + if (grid == null || grid.length == 0) { + return 0; + } + + int nr = grid.length; + int nc = grid[0].length; + int num_islands = 0; + for (int r = 0; r < nr; ++r) { + for (int c = 0; c < nc; ++c) { + if (grid[r][c] == '1') { + ++num_islands; + dfs(grid, r, c); + } + } + } + + return num_islands; + } + + void dfs(char[][] grid, int r, int c) { + int nr = grid.length; + int nc = grid[0].length; + + if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0') { + return; + } + + grid[r][c] = '0'; + dfs(grid, r - 1, c); + dfs(grid, r + 1, c); + dfs(grid, r, c - 1); + dfs(grid, r, c + 1); + } +} +// @lc code=end From 7eb7536fbc4b0899907902b01667b7492efa6405 Mon Sep 17 00:00:00 2001 From: pingan Date: Sun, 3 Nov 2019 23:24:13 +0800 Subject: [PATCH 164/740] =?UTF-8?q?[ADD]:=E6=8F=90=E4=BA=A4=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E5=91=A8=E4=BD=9C=E4=B8=9A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 03/id_141/LeeCode_122_141.java | 17 +++++++++++ Week 03/id_141/LeeCode_33_141.java | 44 +++++++++++++++++++++++++++++ Week 03/id_141/LeeCode_55_141.java | 16 +++++++++++ 3 files changed, 77 insertions(+) create mode 100644 Week 03/id_141/LeeCode_122_141.java create mode 100644 Week 03/id_141/LeeCode_33_141.java create mode 100644 Week 03/id_141/LeeCode_55_141.java diff --git a/Week 03/id_141/LeeCode_122_141.java b/Week 03/id_141/LeeCode_122_141.java new file mode 100644 index 000000000..d5a18816c --- /dev/null +++ b/Week 03/id_141/LeeCode_122_141.java @@ -0,0 +1,17 @@ +package app; + +/** + * MaxProfit + */ +public class MaxProfit { + + public int maxProfit(int[] prices){ + int maxProfit = 0; + for (int i = 1; i < prices.length; i++) { + if (prices[i] > prices[i - 1]) { + maxProfit += prices[i] - prices [i - 1]; + } + } + return maxProfit; + } +} \ No newline at end of file diff --git a/Week 03/id_141/LeeCode_33_141.java b/Week 03/id_141/LeeCode_33_141.java new file mode 100644 index 000000000..c1b13faac --- /dev/null +++ b/Week 03/id_141/LeeCode_33_141.java @@ -0,0 +1,44 @@ +package app; + +/** + * SearchInRotatedSortedArray + */ +public class SearchInRotatedSortedArray { + + public int search(int[] nums, int target) { + if (nums == null || nums.length == 0) { + return -1; + } + + int start = 0; + int end = nums.length - 1; + + while(start + 1 < end){ + int mid = start + (end - start) / 2; + + if(nums[mid] == target){ + return mid; + } + if(nums[mid] > nums[start]){ + if(target >= nums[start] && target < nums[mid]){ + end = mid; + }else{ + start = mid; + } + }else if (nums[mid] < nums[end]){ + if(target <= nums[end] && target > nums[mid]){ + start = mid; + }else{ + end = mid; + } + } + } + + if(nums[start] == target){ + return start; + }else if (nums[end] == target){ + return end; + } + return -1; + } +} \ No newline at end of file diff --git a/Week 03/id_141/LeeCode_55_141.java b/Week 03/id_141/LeeCode_55_141.java new file mode 100644 index 000000000..46d1e007a --- /dev/null +++ b/Week 03/id_141/LeeCode_55_141.java @@ -0,0 +1,16 @@ +package app; + +/** + * JumpGame + */ +public class JumpGame { + public boolean canJump(int[] nums) { + int lastPos = nums.length - 1; + for (int i = nums.length - 1; i >= 0; i--) { + if (i + nums[i] >= lastPos) { + lastPos = i; + } + } + return lastPos == 0; + } +} \ No newline at end of file From 1286ce40be2699f7047e7032271356715dea2b31 Mon Sep 17 00:00:00 2001 From: Asianwyz Date: Sun, 3 Nov 2019 23:30:53 +0800 Subject: [PATCH 165/740] Week 3 homework --- Week 03/id_711/Leetcode_122_711.java | 39 ++++ Week 03/id_711/Leetcode_127_711.java | 176 ++++++++++++++++++ Week 03/id_711/Leetcode_200_711.java | 51 +++++ Week 03/id_711/Leetcode_455_711.java | 37 ++++ Week 03/id_711/Leetcode_860_711.java | 58 ++++++ .../Week3\346\200\273\347\273\223.docx" | Bin 0 -> 120958 bytes 6 files changed, 361 insertions(+) create mode 100644 Week 03/id_711/Leetcode_122_711.java create mode 100644 Week 03/id_711/Leetcode_127_711.java create mode 100644 Week 03/id_711/Leetcode_200_711.java create mode 100644 Week 03/id_711/Leetcode_455_711.java create mode 100644 Week 03/id_711/Leetcode_860_711.java create mode 100644 "Week 03/id_711/Week3\346\200\273\347\273\223.docx" diff --git a/Week 03/id_711/Leetcode_122_711.java b/Week 03/id_711/Leetcode_122_711.java new file mode 100644 index 000000000..07f69827f --- /dev/null +++ b/Week 03/id_711/Leetcode_122_711.java @@ -0,0 +1,39 @@ +package Week3; + +public class Leetcode_122_711 { + public static void main(String[] args) { + int[] prices = {7,1,5,3,6,4}; + System.out.println(maxProfit(prices)); + } + + /** + * 思路: + * 当第二日的价格大于第一天价格买入,第二天小于第一天价格时卖出 + * 执行用时 :1 ms, 在所有 java 提交中击败了99.99%的用户 + * 内存消耗 :37.6 MB, 在所有 java 提交中击败了53.47%的用户 + * @param prices + * @return + */ + private static int maxProfit(int[] prices) { + int maxProfit = 0; + int buy = 0; + boolean flag = false; + for (int i = 0; i < prices.length - 1; i++) { + if (prices[i] < prices[i + 1]) { + if (!flag) { + buy = prices[i]; + flag = true; + } + } + else if (flag) { + maxProfit += prices[i] - buy; + flag = false; + } + } + if (flag) { + maxProfit += prices[prices.length - 1] - buy; + } + return maxProfit; + + } +} diff --git a/Week 03/id_711/Leetcode_127_711.java b/Week 03/id_711/Leetcode_127_711.java new file mode 100644 index 000000000..a865cea8c --- /dev/null +++ b/Week 03/id_711/Leetcode_127_711.java @@ -0,0 +1,176 @@ +package Week3; + +import javafx.util.Pair; + +import java.util.*; + +public class Leetcode_127_711 { + + Map map = new HashMap<>(); + + public static void main(String[] args) { + Leetcode_127_711 ss = new Leetcode_127_711(); + + String beginWord = "hit"; + String endWord = "cog"; + String[] wordLists = {"hot","dot","dog","lot","log","cog"}; + List wordList = new ArrayList<>(); + for (String str:wordLists) { + wordList.add(str); + } + System.out.println(ss.ladderLength1(beginWord,endWord,wordList)); + + } + + /** + * 沙雕最慢算法 + * 执行用时 :1066 ms, 在所有 java 提交中击败了5.74%的用户 + * 内存消耗 :41.8 MB, 在所有 java 提交中击败了60.94%的用户 + * @param beginWord + * @param endWord + * @param wordList + * @return + */ + private int ladderLength(String beginWord, String endWord, List wordList) { + if (!wordList.contains(endWord)) + return 0; + map.put(beginWord,1); + Queue queue = new ArrayDeque<>(); + queue.add(beginWord); + while (!queue.isEmpty()) { + Queue help = new ArrayDeque<>(); + while (!queue.isEmpty()) { + String str = queue.remove(); + + // 这一步很费时间 + for (String s : wordList) { + if (map.containsKey(s)) + continue; + if (check(str, s)) { + help.add(s); + map.put(s,map.get(str) + 1); + } + } + } + queue = help; + } + if (map.containsKey(endWord)) + return map.get(endWord); + return 0; + } + + private boolean check(String str, String s) { + char[] ch = str.toCharArray(); + char[] ch2 = s.toCharArray(); + int count = 0; + for (int i = 0; i < str.length(); i++) { + if (ch[i] != ch2[i]) { + count++; + if (count > 1) + return false; + } + } + return true; + } + + /** + * 题解双向BFS做法 + * 写的啥啊。。。。。。。 + * @param beginWord + * @param endWord + * @param wordList + * @return + */ + + private int L; + private HashMap> allComboDict; + + Leetcode_127_711() { + this.L = 0; + this.allComboDict = new HashMap<>(); + } + + private int ladderLength1(String beginWord, String endWord, List wordList) { + if (!wordList.contains(endWord)) { + return 0; + } + this.L = beginWord.length(); + wordList.forEach( + word -> { + for (int i = 0; i < L; i++) { + // Key is the generic word + // Value is a list of words which have the same intermediate generic word. + String newWord = word.substring(0, i) + '*' + word.substring(i + 1, L); + ArrayList transformations = + this.allComboDict.getOrDefault(newWord, new ArrayList()); + transformations.add(word); + this.allComboDict.put(newWord, transformations); + } + }); + + // Queues for birdirectional BFS + // BFS starting from beginWord + Queue> Q_begin = new LinkedList>(); + // BFS starting from endWord + Queue> Q_end = new LinkedList>(); + Q_begin.add(new Pair(beginWord, 1)); + Q_end.add(new Pair(endWord, 1)); + + // Visited to make sure we don't repeat processing same word. + HashMap visitedBegin = new HashMap(); + HashMap visitedEnd = new HashMap(); + visitedBegin.put(beginWord, 1); + visitedEnd.put(endWord, 1); + + while (!Q_begin.isEmpty() && !Q_end.isEmpty()) { + + // One hop from begin word + int ans = visitWordNode(Q_begin, visitedBegin, visitedEnd); + if (ans > -1) { + return ans; + } + + // One hop from end word + ans = visitWordNode(Q_end, visitedEnd, visitedBegin); + if (ans > -1) { + return ans; + } + } + + return 0; + } + + private int visitWordNode( + Queue> Q, + HashMap visited, + HashMap othersVisited) { + + Pair node = Q.remove(); + String word = node.getKey(); + int level = node.getValue(); + + for (int i = 0; i < this.L; i++) { + + // Intermediate words for current word + String newWord = word.substring(0, i) + '*' + word.substring(i + 1, L); + + // Next states are all the words which share the same intermediate state. + for (String adjacentWord : this.allComboDict.getOrDefault(newWord, new ArrayList())) { + // If at any point if we find what we are looking for + // i.e. the end word - we can return with the answer. + if (othersVisited.containsKey(adjacentWord)) { + return level + othersVisited.get(adjacentWord); + } + + if (!visited.containsKey(adjacentWord)) { + + // Save the level as the value of the dictionary, to save number of hops. + visited.put(adjacentWord, level + 1); + Q.add(new Pair(adjacentWord, level + 1)); + } + } + } + return -1; + } + +} diff --git a/Week 03/id_711/Leetcode_200_711.java b/Week 03/id_711/Leetcode_200_711.java new file mode 100644 index 000000000..3fdbd02fe --- /dev/null +++ b/Week 03/id_711/Leetcode_200_711.java @@ -0,0 +1,51 @@ +package Week3; + +public class Leetcode_200_711 { + + char[][] g; + int[] a = {0,0,1,-1}; + int[] b = {1,-1,0,0}; + + public static void main(String[] args) { + + char[][] grid = { + {'1','1','1','1','0'}, + {'1','1','0','1','0'}, + {'1','1','0','0','0'}, + {'0','0','0','0','0'} + }; + Leetcode_200_711 ss = new Leetcode_200_711(); + System.out.println(ss.numIslands(grid)); + } + + /** + * 归零算法 + * 执行用时 :4 ms, 在所有 java 提交中击败了55.79%的用户 + * 内存消耗 :41.2 MB, 在所有 java 提交中击败了83.54%的用户 + * @param grid + * @return + */ + private int numIslands(char[][] grid) { + g = grid; + int count = 0; + for (int i = 0; i < grid.length; i++) { + for (int j = 0; j < grid[0].length; j++) { + if (g[i][j] == '1') { + count++; + zero(i,j); + } + } + } + return count; + } + + private void zero(int i, int j) { + g[i][j] = 0; + for (int k = 0; k < 4; k++) { + int x = i + a[k]; + int y = j + b[k]; + if (x >= 0 && x < g.length && y >= 0 && y < g[0].length && g[x][y] == '1') + zero(x, y); + } + } +} diff --git a/Week 03/id_711/Leetcode_455_711.java b/Week 03/id_711/Leetcode_455_711.java new file mode 100644 index 000000000..44b456010 --- /dev/null +++ b/Week 03/id_711/Leetcode_455_711.java @@ -0,0 +1,37 @@ +package Week3; + +import java.util.Arrays; + +public class Leetcode_455_711 { + public static void main(String[] args) { + int[] g = {1,1,3}; + int[] s = {1,1}; + System.out.println(findContentChildren(g,s)); + } + + /** + * + * 执行用时 :10 ms, 在所有 java 提交中击败了99.34%的用户 + * 内存消耗 :39.2 MB, 在所有 java 提交中击败了96.14%的用户 + * @param g + * @param s + * @return + */ + private static int findContentChildren(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + int x = 0, y = 0; + int ans = 0; + while (x < g.length && y < s.length) { + if (s[y] >= g[x]) { + ans++; + x++; + y++; + } + else { + y++; + } + } + return ans; + } +} diff --git a/Week 03/id_711/Leetcode_860_711.java b/Week 03/id_711/Leetcode_860_711.java new file mode 100644 index 000000000..2f3ad0523 --- /dev/null +++ b/Week 03/id_711/Leetcode_860_711.java @@ -0,0 +1,58 @@ +package Week3; + +public class Leetcode_860_711 { + public static void main(String[] args) { + int[] bills = {5,5,10,10,20}; + System.out.println(lemonadeChange1(bills)); + } + + /** + * 国际站简洁写法 + * @param bills + * @return + */ + private static boolean lemonadeChange1(int[] bills) { + int five = 0, ten = 0; + for (int i : bills) { + if (i == 5) five++; + else if (i == 10) {five--; ten++;} + else if (ten > 0) {ten--; five--;} + else five -= 3; + if (five < 0) return false; + } + return true; + } + + /** + * 简单贪心 + * 执行用时 :2 ms, 在所有 java 提交中击败了100.00%的用户 + * 内存消耗 :39.3 MB, 在所有 java 提交中击败了93.65%的用户 + * @param bills + * @return + */ + private static boolean lemonadeChange(int[] bills) { + int fiveNumber = 0, tenNumber = 0; + for (int i = 0; i < bills.length; i++) { + if (bills[i] == 5) { + fiveNumber++; + } + else if (bills[i] == 10) { + if (fiveNumber < 1) + return false; + tenNumber++; + fiveNumber--; + } + else { + if (tenNumber > 0 && fiveNumber > 0) { + tenNumber--; + fiveNumber--; + } + else if (fiveNumber > 2) { + fiveNumber -= 3; + } + else return false; + } + } + return true; + } +} diff --git "a/Week 03/id_711/Week3\346\200\273\347\273\223.docx" "b/Week 03/id_711/Week3\346\200\273\347\273\223.docx" new file mode 100644 index 0000000000000000000000000000000000000000..75e67be946411581239d461df21b3b973ce49368 GIT binary patch literal 120958 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 w8QJ&5S zrKhT*Q5{M4;%du_5z3a4>=Dey7?qoza_99@)vKe8W0BGEDp{Y-V}@*#roxl<$L%;f zGl4fXMqb%1vr&V!3rBqcv%&Btk8}T}8d#p$oSu*pQ)0;;&N+yxJAG*SU>i>d*6!l9 zB@v<;6FO`7vc8+O>gS~(diE-6X28OscZrP}udkc4elIz=Z_78r>`CZOyAkstrm<$L zmVb%E^V&S7m;o%zXk7xqF5(O0kiR!lqY;k31H`)%P@A>AgR?(2`cYjROD^nAL?DUq zz9de}VCePED&oFeB1pa1d@$82NhaE`MyQ`uQT?ojnR>D`#v)C_*77cyh$(Vfto0L) z$&dxDbEp^9OSZ9%Ug3eenmAeO!q7A0h2u=8mj$saGOKa8vQNSY2FTo7e9rJDe3t(y zi8aOBSLXeurq+tepdeFS)Ah`rQgxaEx$)>59+O9@G_Ene^zijQ^)D_NNfPQq9Zy@+ zYIj?a${KUb&0<*tV$|a-i+SYa6>Y|P69U%%x%PN)-pf>uB7(JqL?jkwQwDZJ$qm=l z6G7B`Z{`uN@$|zcZ=ThK7i<~^9`*TD$ETxBX(^pCu=1-qwmSxjuC5hIYHP;PA85wJ z3EDIaPurgnMDqFNTvLydu$^}>9tCYbC8H=GqbD5-sF2IIU`iS;d!FLO!QRPnsbh$^ z^L<6?m;g!lyo5G|MTZu9!9fH6FoC^~jkD#1%rql32?j z{ArtaaJSFXqc9`nc3R5IhUc6riE-*IW2FUd`Vr_z+?8s2LKKS$Fz+`5P> z4~{ZM$vT6&%Ra^=r_}$XXe?s+H}Rgf6ZRP2e5-eXI$deIQs~U!rj6^TsbAsAi%K;8 z!2obhV{{&+v*d2z!inqTM%AX5?;D|G0~dKKjqPsMpW|#Y3e``ms-qhduXm5tY(5=( z-_o^S9@K5R1#y)W^4Il`!BXUqk$<;#tIz(zV2!e25Xe;wCpfa{yzWY#HdHG{8Z{Rw zpe=s&x~($q{aL{Ndx?L|BgG^&8ds?1+C`YU=fAPaQJlt*GaPkD+ zj2s70kIeT6*)z^1M>Q>0*KelrfL5mDY#NGg;IX!hk$%~SrLtl5#r;0o>zk`G&nt<& z<}&a4@i&50FAupEFy-35V)AaR^D5yBgF-5$r?HjR$9;BP5xVXPR5X<~zm38+7n8j3v$3}yGj%=}4F~%h>ma1{2d@y6N_`~vk+E?Up?T{y;+eTi9NoqjJA&ZM45s1k8^wdA! zvF$QJ|HLUNSS3xJuWe6BgNwvHHQZuhOBeZ#k=~ ztaDwh{R((&z7vKumy*P}^m~J7ft&0Uo?@4(f+`C;DnFc#VxH>$0hvHI0{$hgjhZ?Nbo(W@G*R<7HZDYEwBJao~QfmM_|iOP=w_o6kCm#M5LIvNHIQT|0T z9_P>eRV4ZA*Bbcz!4Cn~HCVzGs(ezXOO`Z8C?vS32OvQT0j~`Jcm85h8Z4grwYA6I z(6{;9#bW?RxVSwX`WJEq+83!jIt0g{pvFHmV;w{S_J8?~{|OX){I-H=1F3QG7~n&J zITwwGL+^$k>KiEZZSI9fHFvyxl={E08P7Tr5|UXasR`LRP9v^QXqZi0tbJ?U0Prdq zdZ{)q#|Zd-|Mt~az@s4PF8$N0g?_Hz{M5)?&OWl*MgYNCfa;A&(HQbGu>XJ1*dw?L z*!|^#AFE8*TV#mfk(F0;o>|{K)h?hy2izkuAq|{MP=kH&2pRUqfBc}Qv@nN<;~EQH z7o}ZoAFBVy0X!!4V|jb8-vYtYt*8)ds6zzokbl5@sLgTjJEPefk}8Yd2WabQi1c*O zT<>m$>7 zp-}op4A7C37c8~VBmtzc^?ba&mFz?F;1onaY06-P?4j2O^pb7^9ZQ5hgD(7L02bUn zE^bmowFu~I?O;6LE%gq%;09p&-a!PsIp|Otpp`VLc|SWV`9mM$K{!9 zw${r9j-*09(1nXQ;3?q7wXnhZrv{J~+x1KbtA8dq{c#Am(SgT8|8eL(^bP`Dt^KRk zlkgr~+eLj~;l`wSNEIrBb=79~6)M%OAm_9F8S4x^a_e5i6TCC05?Ss8ua#_!@mDaj zl74@?Iu#qh-!KCfY^Yeu)L^UzZ#IwkNuaRX;bA0cUy*`rsem)OgF@#?!D;>{9MhTE z3Q_gDdTWyc8qQVf>EyavDYU-=@p#$}`U5I^cLa?O2+?|3y5OaYbbD28bFW-jyQjEY zU+)-oCpQp}1$7zWsK&W2=uQ<`)0w%gGv;Dg8dV0?`w5G@{KE3Lli0divuVA6SAiK? zOkvlen&q(O-tx1Wto2c5=Dr3d5tT2VzN;CdX((ALTx!26Q?347xZ*0Ty||c||6UsL zjfilp%_mWikco}=q!s27M?9{qVvn&0ebJ`v9VKQ`GTDceSsuC6*e%SBpQdZSsk1lg zV^qWxNVlBi-K3H(qjp3j6!=s$2>kA{EtyT!)HXc?_w=AB6?-CV6E zS9x7Y=a;LJT>Zz{+d<%SQuo(LBGZzKT=p`T?_M2f?MJfHR5ixB-AE!w_YquH{x+6o zs75hy4(_^}q)iI%HQl59KqfUq$gv;hz0vB!e)cr%I-M`$bKO?ufz}IE%w?4~6ZKz;_k5Tdr|-H7jQI-=r}BX4wki2rHagnf8WB#G;itW z(RvmLGZdVIdKYjI#TBZbSFSgiH>znH5?@y4!MUhz;nr&eok?e1$rqOPfo)}F+E6Mt zuj6X`tQkjCi4t(8g;)h8><>64EG9MV|Ifltm}pZCGq)G*)2W6fFx1o231}p?_>R( z589xQ*G1(?3E6bStl5Dd{#J})e&%7B4-`>rT{DMA8TygeXze*&^CMSozrIs0qVY~T zv*TTc#>)v#CByi@pjow73N%q@0^{<2gGOgB)$BBtYc6F*)vPOnS(>69Qvwx@CRFof zBX{4#-FSurs65tekKxVdxNWlOk)Kms{%?ETIt0AQf7x3nL<`?+X-x&nf)up)UBKnt2LkU(d-eWn$hpe*krBsg{PPep5C?Nx29_+9<@(Je)>G|*O~*t zpBD^flgEWauL+$QBc)pu{Pxn(DkJr$`O=jb)19J~^rkPua?1`x!h$SyG9MN77nZDELO%9>sklxGJ_2AC|EUm z-Lu1XOHOX|sjkI~4c|#CYuu})ZxhX?M@h`c^_3sMhOB<{w~y^#K043t5d? zg*Ojkg6xu%(E_|PMN)h6Bd?xuPf_Iu{J&k+g8*4!U|{QsgEuNU1d566D4AEWMm825 z;uN(AmbG_ug^qFZ$wX}8bHjJVc8gs(%J8zjj=r>%U zP8}~Jy$d|T&F^2g11*|Mbl9!Zh*c1WH~b2Bj;b<^tvJCxpL0FlzdQ>_%NKF(JQp)c z{&J2tKj>gWT4LhXajWv zS8?nF4MQ!k2jug||6lqXVte`;eZiHXlbiliF3}VqA~?@;3R08aG5w-Ny87{&61`M_`wisZ=A!Kd7#c zyb)M=5N$IoqJKaY8`Io-Guz*=6&BxsIgI7!0%lf$;xc}hBCBB?H%167V}2vqE3mW2QRH6v7ig|$Ekp6OhCJ+70AQ|! zsG&th(B>&y(5dsJHz?lS%rkdYg{E+5x=ocPDfZcXXE`li+kk{RDp5rWoqX79cm(|E zi@Kcl4kN+dHs89;jIxQ#T`UY1rcBr6G1jsT1KkXe*Davflhzu>(;=^*(UpZot%Xy= zSGy2Sgrd7jvf6=7QsGKaO7%?B`GQ!+l|n)3Y<^aPUR;iSM^%;Ys48?rKc1ajhBI0m zh@)r*8W$qqul+fxN7J+FkSZH-;8oGKO6%T!DBBdxeqf2wvP~mr^m)J)S@NuVzguKP zRwc1FTt9HSKS^A*Wg-3DJK-&|$5H`cCXb^h!x_G*rShdW+#t+D1Bx0_l|dM0h>d7qz_hhJPQ zHaASSMFp4}UL0k|t-V=TVr1xpim40$XWpHsp&yxMf@=M;{z?8uj>n~5AO>q9Kk!5$+i|-}>~#7t-SGvD;@KK7 z`O`;7U&~LsmSgVqvPEdt2lHWSC5WZ}Z0LEpVbTASD@U0}g&^`tc8-ZpT+e3>Qr}WGJQm=0mcvf#Pm#OX>1b$gVFI$fcf>u&!xO>kQ|H4Ly+Ad~8AoPDX zU0oN4_!Uy=gwO+TWFdaVe>H$@t_R$RcxEHn2TD*1BoaRIUp-f2nIV3KU`QbJ{{EJM z_!a-%|MeJfBaG*N{0q$h0(K(@{0hncYPqU054=44ahb@Wo=~$S;AmWK{a5?fz66M0 zkuE3zeP3SWK>UjTYDMem2)GeU=A-{YOTd1(F{+KVw0??D%xp6yAu zD=v0_JxuR>OX~-_zf#a5wSqV9lLnQ9hX?mFz;T@0AD2~UZZcy!yG(z1_58uD(<6Et z-qcQ0tKclk{vkwEQaD!j-BFbu148u!v5NpBw(N!qbe|qU1pYSkE-CEm_bKT0^Jr+o zc~78YWvTvn7=!wh5);P$5L1;Wzwn^^w7j74yz>2fiAKfRP&eos<&mf3ON*GMu^Hyi z2yEqED`2o#$rPC@)+OkeUh&6+k9vTH8rQ@W;^N4B%U8dq>J>H)JpnBZB-F8L-rsBR z9qmDL6amd4K;f!|ru~}hfv8J7mY(cG4ut>`##m_)`qQciax$P@IG{N{gGHe7`mGJo z9FB|4htXokgn;I##Y+7ly+XdrjS|qDuqOnn(0q=D8bouD7|0=PsXzJBFo@7ym|0QUjmv#)Aygt=f(s)(oV0iLTEA+xN5*7^}&vY ziea%6@;EvC9r{+xU^H;0lLY2#Cri{Rmu7$0%$l|y6?DBkb_Cu5nm~R+y%$`@y)BBe zhBY=dAA6{}RGB0*&Lz|UifS*O$(o%nOZ*!7gqgA@G))E|?oB|GEhhNuRatL`tH#Uh z8K*yf;!_~)J37K13kX{0eS7^oV1=}wMzmN!G&)DE?5>zaffZ{^Ov<-+no}`l5GyIp z7&{-m6J_JV#rzkbwHhyx{QUvTF*d;jR&d=QthCsSr@Xe^=VRu!7UZBX8z)@{g|1`b8|mc|(p;J43Ia zB7D1e3%h?@g@9{bj!T5`jM}fge~ID}^vB&4j4`odxJX*kMcxuo=lGJp)WEu>!&}X} zoBiY2p0&n4P0C4O1*&s0>UBV?VdRmN!@)3R+U;~bYyUz#o6l#Jm3}4T@m4wdkaYYo zd+9rHX2)e;m*$+gW5?E+MeV^9fIt}fwym#0i~@UFt5d90*Gk)HG%3Pc;gg*NI9QkZ z`v+|2O?N*lj?41#4(tkb{7zV^n!Xge>-KT$R$+d+1E0HZe)mCDG=U{NuA1!txfWCu zXb%CQD_)jHH1n6#$%_3!;gs$Z*|itO@z-!7w$BCe(}+6n$Cy{x0%kC4wA${lPRXf95#4{BOh6Uq#X8?v zz;_vX2)Ee7b5#Qt7N)ue%pir%&`+VQt`MG=eY&<_R<7*>xLhIneG0 z&YbMLf_=Vx-M#SlvdOWkW}PI-oHuV1{n_}tc{Dt-MBveJ;04}zYj&JNw0aS6lq+lI zmp58zl-F^1(oT&X)P+sbQrTVZVyg_|SL+D8R{Ld=VU~`{41I_3jJvhN%nmJ>uAo2u z@GhrlVNB!A9(@{lIVX*9WHpkkwZlPq#g70&ONikc1Tt!W0$vL zjm>on<;_>BtCgId6tiMovL5h;*?m|XCy0Dh=D?*1$f4|2=Vc!o1zxmZn!4!iFX4#~ zJpnJkde%wk=x687U1nu^sYRv8-~D_kx;I8(Vehk-%6o+*7h6E>)~axfD`2(62=FWJ z;k=Kk#9F79G^~&01+}`8_CX=8jUiDbR0&vcs6d*q z3!i(A^a^TUiT_S=KBIWM09a)(UZm7sXFxL~R6v(2F(r$vC&84OJ4tV{ET*A4ddgSt z*b9cTkQhinJf#u`fo0kUO&o(;H=ZRg&sRHnni>B@Nmp_(x~D>|-r=XHE}R<^r&gzME?*8@$TgZ}>v1M%(v+k2suGZYH#Nidy@wjUEOwq{ zHdHnuV4or6^Jv#Wa?d(5uqkS_A=OM)Un!aj#1H_!KJXkIE$U{?xB`BD$QI+b+hb)_ zM<3V3GWV-NjgGEH+>s#;`fJ2@#w#(T*+cCj#>GEDZy3z=feavBlG(tC%C)Z`eC}4? zs!~j*3bkQ?NpM!w?uJ$ctek2$N)~$eG|3oV`WS1luYg_4jzlDBCR(Lwk?lS0wX3e1 z5&vRgg04H9nX=OIwvxO@FT^{z@b>`PLRVMQ(tkJJW3m^V7&UwvEP;Idtx$YQtj4G* zx9}(;SvG~nUacuXZ(%i8VUs!tyeYn0v5PJNL7FyqY(YV#)j*f(G6nd&l0Jrhr=X%2 zmnP(o^-6uD2pNraMKfl?2gS=U5bejMUx>nkE^Z2HBJ5e)WO|Th zQDJ+nVeOL|EaG(~NmWq9&F7^WZ8tJN{!L$NG&@(-39yj9GwjtZ9z2tP;5S-zSlFEa zscz#4FLUGm>m<8KmY0L%0}8$RGAOs8WD@_Vl+3}afc~hB+;kMlJzFvJBsI*STbe^-tSQ#~(UR}H7 z`-IX%6B4fpviRfu-vSitv-h;`007UF7zj$hRe4CqyF>`ce?1Q{ zep=qc`k5jno`Iy-Fm@+v-?heHwAF=k$=+KWr``l6NdTvq>F;V^*OXZhb4pSpF}J?? zSWD)TWyI06W^(RXpg>|Ow{{}nJ>?ffphg{8a>I%R9Kz)o@66V>KA~HA{i#oEep>5g zMP0Q0d|jK=PdYZq-hOv-sc1uY%86Um&cOI9g^t?-v!?Oc?_0Y~?FU~I)Ul5ZCsDLM zo^urf;c`97w^rOw-9xJMcDE_8h9x`gBlFd(b}2&CHthoa9jd8jXZP*dv>oXxXv)Kx zC&CxJ4H^_D{U81c zz)4uG!4lA@N3jP0i!f0MfEl7Cn(bm2D=1U%C9ZN7)Xb)*jfc!W8W zVuCIJ+&YI|8ei-rX!b$_2Ed9`Z@Hix6&`@+2cbH}=B77HgQi<7v+apB4|gJ46Wu0< z$6w;US;Erz&-qb{p(yLb0?V9LJ>NKYAL+AN%xk6`Ss=pkiv`o5_I7r67VzJaZFF3{+Xu_D)5w{ZbPSF{u2uAbnP(K z`7TusrsWe0eMmOT*WK*&o9nLM`UJpF^0#u?c;&kFZsYDsVr5ABuPB;%fkz}h)lDeK zS9R)F4@xdQGCsHC*9PQ`zG6icXfb#5GCFE75CxlH8UriH%q%~SH4LLn9W$OfiUTj^ z>=c6i6Vr}mAAfmB0fzo@V>@sg?0+sZ3}ftK@UfYfpYcLl9zwhTHrTJnAf2sYT2W7k zWiOc-A)Ct^SfejgqZ~`Xm6IvAUpOA;7L%A+*43J#E>Y1P{IwiSo0MFdTj28>2}{nG zFK}|+RY1X1K`Dsp18K$$yfem)wLkG*-%(-S^y%8*abd;F8l%J-!ED}YMjAigfNd;^ ze-8_#7R>pf{3N+!SCUzXZ?6>Op#j5D9xFYEgwoT7;wSh|3r@X%fY|yPG`kg9&vg}R z$A6!ty6RWOF_Z)zjW7yum+Ll~cWn%pRV#QJA-pmvDJteF>XQDfX(Tnz$V-i5((ncB zIyvsUJbMKTV$n668RCF{S8pwWH#o@193{Z}gxns#Ld}gajAd-#YfXK`n9n#D=0?P_ zi`wVT1KJmr&qRTUO|pXk@ye}=duCebZOKV}Ya|@Q_n-g#Pfr1&w;W9Zbxw5&nHGjm zgsVB|dhF|{MODNqxZcpryBpym@H#RsFnvR^ep3+3 z!`l&pkfNuQoTwK!lFOyu=rrS+C(Ot2;^U-B3;^Fv!6dfu?mtQ139~9BH9Dn^rV`4V zbyS*YAzs7fEq!e&{W+D@I-~F$Nz^gYWz<_Dc(3b~NylglW?fX!cGgSyXYzi~Z|0&| zq@Le?Q*HVzP&uV<&AeNNet0F*63F{ejew2-yN`+BkXvzow_O)yBa0gTU@c>6-QyWYafD#b8ph%_Bl2 zFYlFL)=kE|qz^#<=TIt?;5(s0CR;HvDlp=EHorDvjj6IbAL`0{y=0r7YP8zErQ1?p zox)p2(fo3r(T?H~a(vQ%h7mKbs~{+5Ls0wTT}RR^{J(R`iVx67tUV$ zxD$1A8ccZYQ4euEWlB5?!Hj|K{6;tplQB=tHb!j;`5vtMpd5AX%D8Y6@`kR=#`#oF z)?&WgfSdJxoXRO>f}VAWA6K$u;%Rl--_g&CHn95}Rglb^wM{)JQynod+;SFRl>0Db%`a z&;jO1Su8!E@gZ;&0$90vOW9u}P@{$k*olI6#`sMnsQLN-$!Vw--t>RV8m_wE$t2pK zMtSX8g>F53bjWqud2f5t>CPfI!A!d5Sc?i_afFWkHqPNHJ-C!^$lejS{9{9lzd#Uz zh#T@YQ~CUBR(XaWO$<+T`z2qd&(*FAs-FK=nXt<)vizQDSDbf0FsXvYxv@5+u>(*} zB?-sQ(u_Y#Q-VJAlE+JMl*Qa(Qn~A_UX1xyUsxdQa_}>@VkJ zrc*5m_FD22Tr0fcLG499WO3gc`t%YcBGMLh13%Y3Bbw?&%0d8`%<6y2%A^A65clNMXx5X+O-I(7^{@is% z)IY4LtlVlK`fD8ArT9jlHMOXs(w35qlUQ>Y{x5k7X&8new|wL1AeU?V*?a>YXbR z(yzi^+>b`bdn21tPKPrO1W`aUL)&D|A-2%bi10_VPcC+HLeaK zA%hoPqX457cIi??5IC`LMpVvEPAFzJo-8<>>Z=fa^@<{I-ybBK1c6&873}v;a=`J% zf|UlZKd2@&kWd&WaVYY3oNfe?OR7fZ_s<=+$tykbGT=C060aC|Rq19sKrQg&7b7)j zC2!X8q@oSw3=k!$%-B15@nkFu=~ZUf;#sX6bCn1(&}HBZeM5AKxvwOB@y3KJevrC7FLata35)@sh_ z?~Yx>Xg*d2F>dG0=Qw0%M8kvVK9w-`VblExQ)NF37@xK0^#yU|T(s|m$T3bT69$M! zBLw4^Cx2vU^sa80RS`J7w2H7^04zDDuA>zW8RtQ`2o0kRl$pT8 zb9B^8BRSTmi(Xad zW}+b8(o1u<>pS=RgkZ0kgV%$nYFkWM^GU^Ib^-fG*)*;?o6nG)k5jnrm-%`~8&PWo z7o_fDW=>)p89rchVDjjnjSx8Z9poWZJ;H;y1GSU$$h zHf;R~=jN90-2J@dlvRm>05q@Us+*DD8|$jB71azk7SX)e*7u|Cp8Va4Tj#_EntX3s z%rgmdZ1y~ElM7L1CELZj*&>taQti3N>Ve>Pkzu<+^-mie8B)gF_U9Y;BI2OjhJ1Xa zx#+v|`;(eEl#!I#+nOek=b6V+5#Ng!?;3TblcCJjzZ%pd>gs6x5qO+ zY(wXdyBV!+)5TqtXZ>384$YetqP(#Yf$$Q>? zU%;iR{cJL}{@(mRl~_+NH2hsZfuzdR&jd&1Mgi8}c`Kb_J)~8?7A4j1ya-gM`|iYvENa#WZ!@(CP)sif)aAX!T(5n+!_+t}nXZuPCd96Y zLH^E|f4w!2@aC?)q2IJiO=WWf<^m*zVc(F;m5v-tS8nYTzA&N&Fg<9n4Pu2lD6|>beKSpYMpvui-Aj8oe(y~0k<5xAiF8Yw$zKwm zWvvv4>0>?>rDg|F<>wTY@48oroVuP(Uq^zg5DdCIG}9LYmle-XOH*QQmtSm545g&x z>|utEcSZcJ$n8gQrTfrqU_xo^a_@{$bh8p*FQH=mvI4XFiftU^eif5h#9_alL@=R% zXIxO*C&y++ADqxtZCUMiOJ`-8NG#cZiW-X(Hsv!*g83s_R{@mRNu~E zXFct8)ZYu`0!B}v5YKg)c9(X2CfLoSVRRH;lpYtu8JPyL>oFFO{wDTR@fIAJcfJlu zFJvb|T-I}vmPuE4BV3|AIGw(W5`X!#OiYmPm`PM3nzgLw#;E4wBn4i9rT8!ZaJzv2e!#?wjb7Pwf}s(Jx_IN;LDfuJ^o{ z_I9TPoPtAx&lK+>@5opz1!zMUa5^$@?Psqq_6x=*8c=k}WHyOhV1+zx=8Nu47MgCf zhIjN?QM%g23~{dGw{3~CJbtxRfU3Bn@|^as11oII3Tw{g>rCxsgn2#$k-fMb&>T@T z-{?;``PLEZhrBzPT%wFmO-y8OHj_05rVJ8Q6V$)G;u@PzBl8~D&R3WjHto;eaC=>D zddg74PT=Y^miuM+{CY=M&S~Q!nCo4&{Q|xk;Y}3vKgM6BwU^6|1Th)6bF_OQgcqoK z#C~A4qg#rR!#_8?WcR*WO9uT-a?mRr_J8cRc^be+9DeaU>?EF*FZ2?R@?fQo?o)IyMA&_ z4mrEGVR=U8OdmfQ80DVq+0Zdq7@EK_n|C4`8c4tHXThzTRkYil?)SZ#F5BpFb8iR| z{35+Yk0WMxuFB?oyH3@gt?T~bN{zE!N7va6s0wrYl(Ne(BzS zDFYfUaI>5#Ku>4g5<086HKxlFeo)?_OPW7SIY&zMYSF&vRQ)W6E`Q`Kh|45tGW^?3 z%_^#);_e*96DR5y_l=IfTdh?I=3ko4hbP{og`D(-ImBi(cq@!Xs8OVazrDEQSbDoE+Gy}kPIw% z*e1uba;MeQwqd($Z(_j4VAPkLzx2#}zq^)wIyqdBV2SplyS(|Xl>J2VP)^>H85}bq zGoYgbI!+`1d7M-EhM@i4R49n~IfBxc-HXYti($DGP&99fh6+xD(Olav^;#QKK~-^u zy_x~v1cb-m$O**eiph=0=BR$2xoBy1p%Eg2g@i@|N2_pcTD#*APY{KyH&$UDH(ec5 zMVxIea4!FT^nDGcRiX8MCFh|2a!0%AYEwi-ZD>Yv=wi&Oi<$d!qNhVY#d%HPWKNyn zI{p3m<`C(G;sQqftg;B2Ywls&=0>&?zm&q&I*KpB?ZAiwizVhcAvMIYqiupEOp&yy zTFALT&~B2Ulkb>6L#~y7jgLEcwyEQ1`8|)1nU_~9h7QQqxsozwW) zjAvUm4ON}QnwBQRy{?1R2aIC2b?7;DuvwO@Ge=STE2n`$RO?$A%4)jc-YPv->gvDM z+8iWrt(s)oK=`;YuXfpCN1n#2*cvIvfEtUY$qKbvarw!=%H zSIny^ETM5!+_jH?$^FUH7AJ4IYlq@Pa|^UWK%Gt^(dSoCrWKHPA@u-y8DB0vBp2Sk z1wy%^pPwE;4|?P|1tB#h5fuKX2_`S#XL@`8=7Rd)sIf_aOa8xn8jshWmR>CeXx4-S zf5XsQ;?_y9;DpDA4xBdRSUd?_N?hl9W9OIUaqqkmO$xNJR z&yTT`BmBv3a8O%Jw6%F>qOtXki7yY!pqWIURg71L3e30<1N8?q;wok2!!=5O-EMsI z{4j+tt~v`yx>J6Vt9rlLttxaRKk>O8QjlY(Vv9ZrWU6N-O%i*m;D7r{F4Yye?{+P6 zz5+7>?0iyTQgbSaoL!0O&0aJZ zc775lbE!gTlpP5I>hqEkMy)UH?o~a^J;q?l5S3<%ckweH?9c&R^?Ch(Dp0nnUMMW^f3EYf_4hMyFUC zz&0$%xjpTC!>vymews5h$dT5kgoV|0kYu=7R@UUe$8BSOG;wd1H@ie->B55aM`rbs zP&c`5cEB9FLoC8W_l*8)Mua7iG|*i?o8{d~iOL_)a9`PYGG`T0wt#2XC0F!|iT`-V zAX&?bZrs1$YM>j4qAuxH*>A}OMjIg5_T?b2jkSBcB;5Zx$!Ll)z+1Izot=M zMMC_{!3Y9nZ6c|+DofGqVbkoN1CJcY_JE>urC~YGOwAc;7T;vbU#|*Pf%v+_w~8^c zI|iK7ey;N^RlFwlnlQ+;i^k_<1e6il{Te!;zK>!6_yp`j~G2LW6Ne?<0 zJz?R9_<$%5F3R-W>)-EC%O?x0HMD>{13*w861r~Cem|TkrBi(9n{_29n;b$~R(c4(dA>J;2N60aFLkuk6%vYdA7wI zw+*W4DLtn|dAki1AQR>C&ICt^o#G(P@e`cftkh42BE($F@yl2aMGULmehP>mD4)t2 zp|^fR2*{(V;)n2dAX)azPojC3Eu?LA4(VeNBQx4}d#)))TQ-=kF2!g4K_qB+XX~Qs zY-iGECCne29K*bypENlxgF_JniTZU(+3xwf3iHc*nDIG|dc5>gK*_B;=l=4lM|Yni z885CEy4j>+Z_|J72G076Y29pfR>kA3J^j*T#|3wTGvJ zQ`hkNs;=3!YZ5HpLp^!M@(U;@$=;i#v}2XXatc%f65}!6*!Exk5^IJcbk21$m3Rrq zWg{AhtUJ~~G&;wMHhD-_S|i%qVC4Of_%dDonq&N#(kvM!Yw5aGT=j+x(OFn6joqXE zoyoRnvt|uK*A!K3S@feWFT=VB!&iczErtsl4#R$R%x#XI;0oEiiB`U9_0J}d?V4In zWu#`k+E)Z2{q;8ou+99{#ILq1#BoeJn@fwuml!2*^AGHwR)atD5p9|$cGK$cJe$Zr zc>gyd7y~!k4w4ehY;(wtX(Ll?!>=g9 zk~D?0$A}~3_hQeRpV*I>s!VO~i%)8{apE11Yo_jfo?Pxh*~ENGc|8-4=tpFBQ!8@B z#oXrcY=&A-i$As01eg}=O&G7<(#`E_69~=@G1HnT6INuRURxAl6>pXHvtw-cP_RvV z=V6KH(`&a;^(k4^8$26TG2Jibh!f#3=y%f@po ze6F-?RHYk`ubLdimPDd7po&%^cXF)$%PL;_Fq)?qWgj`0TXAY#6PB z@V!E6HD$iEt@@$677ilKXn?C^6&!^na|cJn9M$N@PZ9)V7Ev}(MNdf1tS}Xn6b>&Y zih07D#zG+EQhKGoTR$Wv%uu(?Coc#G*Xdi3bx?&eUS6h;wMEB9KdpT!d6m7` zhS4&br72cx+1U_wFmL2Kcl`xSPduq9(#P^^N@8L?v!q1D-xo5t0cdk1=+ObPiFsni zK4NxtaQ?UA9Gr3CJr>BaRSdo@cICl|E@2xm*Ws8L0!obxq-8Is=nvzLRJ5!6Nc|25 zmrA?lGB|6ty;uuN0ZP!oKT42#s*H@yk6E)-d@=ea6$;g~ZKuE-xTAl~cChT(LyuTu&UmP_~VYV`0dC zx6verU#FODR&86kynFsk0#mk}MIr$Eq+lE5o$s%L?WLr3xZ?GvjF1umX8sOTwuuZ> z=iuYdSm!0On7ORU!eUvl>~abGsaj`iLy_5h>{STBcT3hH*iP|!yt5XoXEw5q@a&al zUB!AQ$J7~;^jx#MT4fZKk1_kNtj1{F{5$Zy-`mj8{hV12LWpuCX0%Siw^=(p%|JPS zg?e`f0<3jj`RMo(dF346)HmyUMIy&L0=v7S7we|WY!spc8)}T4r+uOK*6w(&I>pBw znFKc(EB0r*cHJvsA5vx-NJ2pAQ%^L`l+-dDSt{^;$y#-lNa}obMg7nP5}N_fs#K)=}!&^pq3+5J#hQ~FX&eUxIh1|`Xx21qNAhpL#pt5 z#?W8KBu6wC4fTWSN0g`8w9<(B-Sh|HoCjgUHw&+wkOHo0LbMJ^-<&;>*zwXni+~JHV!2qxrAdod5E8 z_@@s{9|)WNMmJ+f@*xK*0%7`er>j91ZUj8`?Q1d9NbPvz7ZUn4bWOukCD%2sFu#-VZo!(jb=Xzr@H@D?DRq*99By7D%EoKvRvNQKX z!2!DWwcW0Fbs55=q@k9w!>uo8BpQ>hG}|PWh{w1Jv*OsWQBA2)bDsK9I4ncCA2xM# z=?ofq8`l~76b3Jr{`iGki}?aXHJw+jcoKQaP%p}Vd+bWO?^24E<}DsoEudgil$wBC zG2!D_cKHLJ%34p=Yw|nFDA_{NTWbM|&hXBhw7(9!+vc_A)QrDw{UqxC9jm(d(F31(8gL#bDni7FG++s%omlThg>(pHP#b8~U< zPh&+d5)w6A^L5#3Rt7A5hFY9}h`U3gQAqbj(n8$oqD+SF(IZS0HuT2@ea%Ww$n)y$ zw|+(zebtzG`!qBrY(>f{obLwa|Q5kULP>F0Vm#194 z=ah;u6fi=l`c=r?5EU@jGLlOHnApk6Mj@Iy7u+ocXES!EVEj6KyV4e6Pk{5ecFb&Ui9 zj{h*MY>^~wA_9W~&|LJr8o0iJ$#ovrGIpya!r5{bvz(dM7bi(k?}G#n&S!4dn9lbu zjGXLjw+l^;ClaWIjNP$soXB?zZX7iRckSE0QEv{{->#9IuM5_BOT{ru5HzZC%(`tk zOkJ`^Q+h6SunAwU)>kk1Obqoa&glngzl$@W&wS8%C499T`(ewzj1mxyhrndUpe*$& zqZ$|sadflkiP+Tar(=2^w>KH=T5ktLAodGs_0?V!6t70qL7pJ9=&!ahNMX+EK9dLW zHf38aH?{gx6((JEC{1`Qp|M%JI?eC;(-S4PLJ{a47Kh&_v>)zLil$e)je3!>~A2&lsA)`P){i5dD~nW*_4MM=y&r zq24yB+oR;$nS)U8=yK3yudR*G5_*1fSy}PT(vR-s2dJBf`N3pFAVj6anKtkS+ zkX-AQNB^Pj#Hf9lb1Sj!sg9uDP3j3A)@e7in`Y$p`81na9n2 zP2X6xI5ITS$#y;=+f1fNFAF~XyZ4>Lx5Lswx-&}wWNGP?r#t2N59b;jdbMpZSf4A_ zQUwMU2PV($hNFrdb-hUMdDDqpmK*Oo^rY%DPiDP+K+#Ltm^>#FJdhE3u(IIi4_Ti+ zKs2Ujq<&~NSFM#r6~$P4c#YE5@+F~u&~3gcMTw0%IXT=*UccHnjUq9LqS_5p2n*|P zq-GV29@kr#lL5!S@75?YB3Y1%>mL1i@?g?HRQq)QR?4Jf z)ng7jm3ro)WqjpXscYoJ>VuzIK3+o&zE4uhSglYBi@<)L<8jwI=J8}>2ts+aOVAJG1in_swurtl+rPlu3mc0OyE zd(0K*a_h5!QC{x;m(}BNUz1m_oP@1@*v-7hW5p2*RQdh%zfAG{rX-idTTB|$S=%%F zSOa~)f#DhIhlhrxKfiUiFZe&>^%`BHULTuc7bEWnX+NfpsO*0vBWm16wR!K1IIv6p zZTpZM;gYDBI!&!MHaF(EbLqXzeXOK&y~gW-=CTP-8mKVzOO${yGYPX-q2;ld{v)*K z#3a4M3%7b5Ot)@Jskjr`f##38!tY&ncEN<*3qL;Ds#Cgc*diQEb=y7tFq*z8v0H7h z4+*NW*-ECc%eA&v5=Dr!Ll0P{{bB(xD?3&_Ze5C>QhXS$k0XtX3aXQo4ExepK>oPn zgS3s>_~jE)qTy05*<~dQ)dzxa5n?XEdPJgqC&%r98|V^DEfwiUP?0on%-TIXE14#dqpkD`~NkRCv{# zeBAG&zBfcS?F-1i%F zM+7;x^)UqyvSD!Q?`JDLL(Y=y6cDCc&m3v_mW9v!v_>oc%i%rOM->w;qbQdfV&V3F z(Y^;i-0G$UI9{ub*$DXs>OZLas($tyP+L`I1ci`L878|}4?@dMD?J^@xsgD2)SXRV zJ?4TLo^jgmju&FB=A~UV8L@;(Bzf9aI?CBl6^1Fy8Ow=Ms*F^NBsedwvh6O&QSqu6 z#}*B8AkhZOR#C#S2f7)eRb3xiNt4M=FPl3 z6^aY}=zr6x2)^%!6V>Ae4YH4p&YW&MwZ8(77C8@N8pc|D11C5jbp(OPdQ#NI>^c5~ zvIc1Plh|%C`cKE>2KK^doX%P}MQ^{9*Y}pF65vRmzZyFk?ndv$+8o>j8wdujKIJ3( z5l?9EuXVKAmBep*b{;XeS9d70o2%m58FI2m$HBw0ZkpbAd4%f+7O7?&W)ItL?5*!bO?aQ^3Z$rp$%7cQvyjLf@$kbF3rO>? zf%IZ0X7q;gx8Jf)G;f;6l_D={;>pygkytTeT^9Ixjuxi(&gSoPe7ijv+-en>&xk6Z z(bpp;AkVx#>Dj%l8=1F$@+js>;7l@;xBjUu`9}1~)2eUBnO~ON#yu1?p4b$@Yg|r9Q=raoioV=f*9b@wnL#OP zJ}-l=xw#G8c2670sIC(V76^Fm&FP<&D%3Iusa}pLVC_m*QG14Aai$61!itf1jzOGe z-i_B8&GQ8x4ISTzDQJi=+B9@qH<|FoNyqxsUk+P`+;>_oQkh^9UURuFBag1spM!3M zw?E^*Qghw?iCPGa6RT5cA-?>Avab>ds`~NR@1@dkJXufiq}B<)ZJSEnT-&A3^_v`1 z-Jbf}5{3XKYjMxLnT35`d=l5CY*N{}By%giQ@vB3fytZ^>O&k60k?%BHz=79bS#JU zdjDLCxIjS~BcAio!TG}0gsKkTwVud~SFgwWE~#c0yX_)3P~NQO_G-1hwH0c(*Ny<7 z|05LR`zNpVY*Fv!3Je4=ymuwb+CdrVDuT7TBiHeU{?zm`wH}2Zt6#KUywm`nKhq+h zi&v^lXWhRSu5+G!_@3DFI88jo%2^PS4o1LrjvQ2T1EZT3td$ca%0SNHUTne<88E9cosM($YrL$3$a>!OZ<8+N_Z^zuI%cLMjL4hhC_*TbLE+_9nV-PZu% zyq*4CR^Z-!z=m-CsDSOiB%y)xSpO5wAISKX4*z0Lx8fznxbFin@>c7=2+tnLbPSW< zYG_&Wzy?m|-lRZ!^CNa<$|s=wszu3=kaDJ18qg)U>RdU~+fEJ73K#W@s3fB5{+oc# zfh5NupQEnyR0|>;6@QCwzm{fhkMwPCGrY}p`Yw4<5U@23;N&R5doPN;XL%>*CzJ(- z=D{iM6g4B~NdG8B7v5$KH7I{EeQ=Pd%zpuT9}$^%qGFW(3M^efr8#%lH?lW$|0yR1 zg6VzM`4KKP{Rz9`uiSJ`u7HX#NnxXbKOp+KA&0f=*`(Ucd%q}-c`+*nD^ice@Vh!t zUL6a3v~O#AaKOk~UFQ+=6*a)??a%^sH%#HBE^LJbmn zGe%TF>kw+W{J^yrp;E`OoV@EQa(DZ={6B%WzF%C$7yXD)X}UK zKjh%qDp|)K3SN}*@hPqUo@7S|NG(2W)+2!WXg+}@UB8;9U$3c4DpD~MFGgT26He@b z@^!LInKRR^;H3!GeD`or7@ikZb`uoIxV~(7TzQ#;NmoKH58;D+iaXHbNKKC%w#d8A z43+A0^u1(A}?6Hlg; zaBKC^kEnv>%=sP)na~=P#P#$(dQ`u`Q0Jm0re_bu8jDacD!>sC{%o z^`T+T!eP63*7po*tH@1WYm_DT;LV{S3c0+e7g)IlqkYmIrn)=m!{ZhgS#x2a*1iGa zkr!|&_BjsWT62_tpx^_A%+=>eZlH=YLOfi1Ug#@-MU=b9l$@(gPv>)1D1#+yMHEKh z)eIhR0}1l`enn}ptoN($kU}HiEI7~o_Z`Jbn8`ZyODwOqVl`K4ywqBpNZB)hUer-^SSpto#(5L zbI$7{^RxF^!DrR15AMXBhir^Q-q?-QBp}|zdJczxTh=xr>;z+ARgXKc zH7hax(MuN16V5bQz#X%s_ummD8-6OTl+lSk6I0)~oU@RHP!C3@Gp~B7q8o$EqD- zP4*8*vt_#>bk@f*iCF77Q6tB3K^^Tnis&qb)Cyu8nvfeg!O1q^FRg5{D_l zgf*4hvK2Go$6rsZawhN&{Q-H5zS%auq)aSvVR|~1Mwi(=$zYvIeF;u{LJ8VT)SrLa z15l@I{QCeEKO1c+xH_2C1;?1mR2Cq0Q0ojms_qTW8xnp?gc5o*+M{10Oiiy^kF5&| zO`A_?ZO*z#$}JELdvISXDR)aN~v#=Z%Fsi;X2-UN_ZFbWO4 zD@>W|DHm}&Fblv+y9wfjz7*T+24!QM+!y~+lvk914Ek;;;<1UoPbjPj?OaPQZN{{c z8qA>sRAIm~H(*BZv&H0vZrJVog6+#>c^&46$hj=07pRab#Xwxmi7@D1@HhekogWXtW7_|JBN?MQ1{k z)S?QD-I3EJU5vJD2apE|Drq@CJ=%mI79?AfL^6=N^?AQGGZ>PB570Ts-_}@>rHL|_-?4RN=RLl6FtZ^_Q zi5nd=jt=ibZx4~Ea?fGGBgoT@442qV%52aQM8-)=I*GtaBE=4x5ZYZ_&~Sm*6i9*w>F-ma>$u+A$-R>DkA9|@B%tg#kFiyvwXJf|qJ zLs$~ATE0{HM4y4U*Y>-%9mFPjcao0asKr~>Qu zMn#ID9gcK*o{dWtIGJ0B0<}d5IRgRFWLW`Xe){Ta zh1b~*MPVunN#gneS~(K9GVS@*^qg8Y*y7py4n$1ePa})7_}|lnW~=EUShJFH=r-}9 zCI?V|7TFdOf=1*Aw#`dvk82yWzq#Nz&93MhRsp7~t=mSPEH+*_{0Q;Wuwg2S`*P;9 zVjutHU0!M+eECn_<%xu}+{BM>_7(9r3XE?Gg5So=^GixeI$4ph{y*hi7I5D_su%5B zVQu5WPM`x6uH$N7ElbAfy*C~}>hm#q%wef$%0o{3K%p};S zFIbeT14HI19sFLA?mYbCvA2GgLUq?>bJDwPIqLUKleQNvy8^6oaniLzVbaZ20>2J$ zuQf)#7uuhF^xQM@w~vHXK4sQ5g$W=6?fi?efM_^NTy4k9z05!QX9G7LA2nP?2#G7H zIoYYBVf|Y9^%ir@P6gGck}M$QV5LXsngpy$nK#e57k+{$^*$MXTNr;K6Uoex2D=d! zjVpX(3URN$sbq45P@Yd5OM{J7&L^WIf5e>ZVwsY#6N$dAiIYvjl zD}c6WTnWi?U7oSn&0NLvk2vfZV{`ZQ7${>pN1>Xcnb%c0%xYD8=P182JG$lKNByRJ zC6Mqr{=6DQRd>ux=R2#gUXew?q^xP@v@59*v1+|+&^#PhjPnF1_hXLj$4@bMV|#@W zGy2Icg`qAF^X0{K+nho#KVR5g{k(YO9b^Xxtt}efC$=3%!K&?7tl!k>F{e9UsMOvo z4nA1z{$5=fSNNLikIJkQ|I;88MCuGC4cjUD4D@#IV%R5zX*mwPU+U$~mUX?w_1lY+1rhiCWyaG&XtLT# z3a$ur(}a{%)7W*_maXx)7+(ZtvAWqyoHRFfG1X5pF{Ka7IC>tpvVG`JLt1}16rG=D z;y#3_g3cw8*_>(`7hmp?xHA{=~AXO&ib~QA{}(FWLqf<(pV!yX6y_+H%iEWxJ z`I~U7P`jnfAYp;7Z@AoqV?w_X>cs$&@r#}~^p6Ve8^@fB91YjYjx_jN`CMu=Qbo=3 zFY1<-$)=x>NQ+L`e3+N`vHHS!!RN|oDlyM>K{(kb`W!2LF(w6tY8-bIL_^qo4$Cg* zA^yoV5#Fc^lm9-|`v6mAb{WE=F(uZ2Xkia@rklDF6}@Y@et2-^pCA!1i6x4dW+D`5js?b%er8e%onf{x*IVNW# z9F8SQTe8fj;{j<7o2?(Cxme9bevi)8-RXFK$pFd0@|<5Sl3P6Y_hFfFH{6b0*J}NA z-1c$S8?kEpsmlik0Ei^k?>=FU=ika+T@#7@)>E;oWXcz^AUJ=fdkvm4MQa~JMmaHj zc{OiZ(I9h`KE*@ln3w8Gk~i4AFu^Hkq&ZnZ)N97J`M)izEp zn2FM_rIn|9)Eu~(Oocv*@$dF0&q17+EH_7LVne{{{IUCd7&9(k8W?MoWMO+!Y58O{ zVt`ofr*pvAFY^sd*1|~oeYQKPwdp6^yfv? zJOSh#qktBAqS9ZKSg19#88c%Au|Zqj{?H3q0^$Z&b+}?3&Y+sw|XX#wxgv;x^ zDo#g@<9ifI{Hqu+1smB396{wH?H$+&wZQu%&iv}BCA4FYHPKtux@Pa1HO_2DdW>DV zBVfz&;!G`-4@y2~4AKxfR{c7ADB!(Thyzyv{S43ikhmrLI>O?X&mVYzz{6w@-D-U^ zifdDUL{mLjU-lzptA2U>?Eg-+2+-Zx+;iO`bop=59WfwV;uswAUlN~i*`XSi-=!hA zkdChzASvWNPMCeyO>z%@{-1Tn|2OAh4p<)n&63+3ll|*DS)Q#h-SOC_8Z%p&%8jq3 z#}Pk+g(1^)iq%30_#3_H>5BVb=X7-7JyL+40SnN?GSk^*J_H6Ofr36d&X$zUwDnH} zlGtJ{aQEAHAL~EG2*d>1wy7zFg_Cb3kH9}GX-rpRntda|hC%l$;lltlZT%+|RK<`q zlHaHXxluP>Xs!IIWXbKKaRXf%)+knUCb`b)8r@qPdrV-3-<+vz{UhP51KrV2(9wTu z@vx0^4N@5B4{$Dlge!Z&sD;`Y2IRS3(jfs&@6&deq~eW*<>$G%o< z-?_&>6RmUY@INg+EzC%8k*5;8S7x;rCf9xF+grY%j>d8gIobsdXE**zoTy!wmb{VQY)SEvoq=1=w4veIuK zNgYE9}XfI1yu7Q4;aF%`Q5VK4nzWZqi7#-<4oRFgv$-5SA&p`2 zURVB)x@u>1=d-=L)4CCy&1Wj31po$KzZf1X+rtXgm0( zD|8%9q02di4ciq_TVZ`Dm%O}Q^ucqeh z*Trzv6+YhcaXQD@gf`E>4rux7Y0qA-;Wyf(+5;h0zY>*`^B@CtQYJIR@j)ujQh;pP z&VNBo6Xq2v z*)ktUQT{q|2-Cs|s9es(Vvj$yc@-$>P3yn`IkWB$@L2OLc`SbXwzC*Dr^)gI&?kRH zI--6dfJ%H6%eH0}PCg3GQ`9fG_)--G;@q(&|9UtMZ(-m_-H5jF@cQIz|D4|C=B$fM zRZ{kna=Gq!eI9lx|E^G`2;S?SRg^7;$4e*@i(fZ)LIDULoj#|KVaR(sBcq~MRIiy! zJ0-wz*j^YbZicu=&;5I8+&QGUiJ+W%KGTI?S65s$PwA&rn3kOn)maIlt&pM>6Mu!XkS|>uni`L1!T+es1SFcS-~L9t4hU&tDcvuB5yQ8OQ1upt2K*dpjklBf zZ+Za|y0}E=R*gjHufuQ|stK#P+qo25Sh>Ubd;&EedIRG;@74UKIu1pAZt>buy~sr6 ziQI&6-sG*13mJbV6uQhA((55j{pvBXc-R6rTEH8*EU;?;3eG2}hK7iB>bfpnO-*|= zOya8uMTH=rHLZVzU`R7BZ!RL7Rghhl#T56kg8$=6E8{^;%rs&Ta=dlNHdJvuMNo~?W@SC>~qFWd_e^S0m1BCegT z&F)^28NBCtY#mzlrzLv_$-F_L+H;XxAUi+kZN;aneeK=Folr?sOoYz8=>(QRkcrJKXd@+CQ#T zka>=;Kd17PC!fvdWc0(i_u$NXVP5xM8-B2aQx_}Q%_^TqIP|Ck%lo=Z|9ZQl%yK?D zThL*yC&8B{swX9EW>e>l?zWW4Ddzn|m@HDYsfNdVNA>E^DF^7OI)u9Un_|>$g2{u2 zaf7NFM}C0Oz>Ju=O8G9r&i$8NC$y|VbGqX(`6NFmz_Qn*w7uT6K`{iA8qaGx&B&{$ zewWDxZ@@NROSTV!faD@UQK#FrDz&%ZE2d zo!4FX_n}~*=Sk8!{cTixk=BTF?~}UUl~OT_6+z)4H|X_MGx1_E4sv0<$jL-fZ zXA6`kB=`%)_%boK;I1#{(`m{pE+cu%`-LVpNHdTRHo*t-a!t-yEOoX15L*@xWLqGy z%J+ zh6;U1IQf+o)&#&9oangZTh&a)Pl3sBRaCRoN}D|ik`<3zmR>T`afM#-S*|;Y9MIo- zxcif^JCK2|RL5y!vXm6-KsZPjK9pLj4f5C@a-{sU3RZaxVAF)v^{>9cC2Fq4(I}Ws zn}J=TCNk`2q~x7}+9V>Q_7lh*g$jDr?*O5%@HdU&X-~0PBXW*GYvhTK<_dM4-f%pZ zWsSg_#&3OWI|Tq+GhR<;W~)pA3x#Pk=kLVSRYn96kAqkYJM=>SwjqMxk@ohF3(NWj z+WE3RQ+xf44FPn=@m)PqQ$)zA-pl&mt7;1)y!zZEXhXDs`?>Z^>Ud*043j}+eiox{ zwtKfQ!T?ZSMYV>jS}wir8@?F+Zo7M)4V2Dj?^^JHxB35_3Cw@d3bYVAvva5q zRHuL2DWua-bZWc+i{dub2{*Q!I73M*$OkN-Eq_k9Sl^^_Xs3UixmyypO4 z7+1EFKekVB1SYT10%^dnvP|W2WYUd#Dv7L}JpC2)VBpRy;2r{u1<+nJIS!Ex*OZhD za)Mz5&i{LFKMOQ@s`(_-Zr(dz0N_%6QENi0JpdP)Z2@aV>(j<+8VY-dmj5&tJd_vv z$5U`aopS_395ihgo)K*fVTOa|Q;f=0psZ&CsmOeacQgQl(ucvb`!O^6-s31sg<80O zwfW!_XSlyaz%|PPiFO45pn)U6hgyKkrh=9O#{Y3AJmK^N+rFW{4e!9~KAfJ=$SxN8kDkB+JlaiMdgd&Ddb)t73_1YWop(NBxubTpRKw{B<8B$1fB*8s zi!|WbT_Ab!Kloy}(wDOtZdXBFY%YUlu`mrnG4Jj8u0b}kwY}qJ_w7Oz;#(5g6Zl}Z zECH;PO1I9(LWT%)LSj3&$X5hP4FP_CZc94h;(xdY$+J{f^>F@r`ab)_{r=qQp8jK` zq@&t&zRxDG5#{Tp#iMM!cB`55v0}(>zJ9Ozg>wF|`tQeDa~44qXqB4W;tr%^SXEYczLgv&(<5&)_phF==apC}jCD<~b`8T00#7k`Wj?3b zepoyfKJgd@w6~;Uo4TsdazwK4yVlx1a=!CK?>J@kGOJ1*b=pCwjG%*y>L>rx@n78A z3hpx{Jaavc80hN@bf%p$zM`)8=6}ylKR&|01}vHdGj936rSPUH5FB+sV|9QO)2HHK z@@O7k-z~FN`wZCoIKiY{u7_6R+adRY0x_bg3^;D%4*J}6jZA1u(_W1wu1K*@YxOvCwR-f|nE^}1qfd+0ZJkE4 z?m08Q;H@kJRkv$<m+Mg`BDiY+395Fh%{&Y0-$bOfzLi8T>J=JzjpFX z*Yia;G;g^ta)TsT-Ce;Q|p+UkDsTabFv{g28sR3gf1v5=S0&bA#>|GMPy$j z6p}2MI&)pHB6E7kps8BQ&G7T+(prGcszdwG+9e;ijo3B>--?dkdFaUT zdlNWmLpg67tc9cVvJER|V-Szw(1oAC12a!9XPS-5bOzbuXlhC@_<3amm^!LjQvNM{ zSgeP6@ED{#K>VxZdyF&3L-l48PNdC(F{MH?z6amOD}1Kx@565*8xHn|YHEt^{AFhA zF!_&|#N=cpE2Qo+C|@TY)wLh@R&P*Fe}=YIZ?GzGhFD79{9-E{WJHVY5Pl`(HpClg zM}aga+;dh&W8q$6#4ZuKb@dYmZGwkDk?&+64!KJkyL{K4`_!C>m~oL4{Ot#9TBCMK z9DN{VuOwSKET_L*vC3J$VSJC)#p!6N$OKo%=>w~vb}2uDm9M0}mFU3JUm=;eWd6u< zE{l;+mBZmiyHegiy^L#OfUhVGmY!+d+yoE#ZbA-!jl?%nR8G_oYa#=XCf+CO0ZN2A zhn4UC$@HbnP7eL$O*@-gWCgmPH?+=Dx07R2Cn}5iOrYhTdu9(w4_QsiYZ5*R{4%6T z^x&{UmUr?98&J`Hr>i$mpOC4!zL8mCGS5lNAEQ82_Hgv6&p`CR$h)cx>AkNIO`>sc z%=)lkBEl57K1)j|;_RSpM@K-^eO+*I?f1H`ied&%Wm3lB?w@~g_|+KKCBJGP%0(a9 zt8v*d!Wn96;cT3@%l91BN=nf?WF2s+e8(q|@eX1Z>TmN^uSVvXqtT}tv8cjKoXAgA zHzNs!S1#0%-`A3t3#=2 zEhmWLdnmtr4#!WP5ROijhl~+?@(*pAtR`7)+;niPl)&`c`-65l;kJRIfJ;QVdJ5)! zay$cft54127B)w-kjMuLzat%BqX9}Y>sjxi1ISD%-;(brZxp05(%=*O%$-bncW zNyRiFm89`5ETLccB#id)+yJVlH7%GEwfLF1KnR>e?qGufY5l0>WLx zuZ)Aq?m)%j91sFFczO---^J2i`f!G71ck?4c)y zT53*W5W%5fNBgt+wH`8Dd0~EpN7>Lzxs{JX|B@~;H zb^fwB;KB(YU_&08;*)MQUb>z^Yy1x)c!7frXctM^$i+z*Ie=+f|0afjTL?f6eA`Nl z2-$aSQMIf4Jm^rYzu2YaI8`aPKW-P)cq`zFYixBUr?=$?*zK`HF@J{wa-U@@hcTCFuSeHSHl;;UNA8RU3lD!WUBaJv6^UtA&9>>nqd`T;++yL1kcK}^-DGh!5 zlMMx~rx_o(Xa7rBx>;PwcGH{vTfRZ7!AB2{`yTPmnCTt& zFdd|vLda5!*HhN}NMF2ofyj2Z>;eNO^^npsJi zZ~q|uL*Ts7|K#(t>@QxFFQOfV7a_6zw}s0(q4dXy%Dkvh{0|Zm@3qG;sqc~p_YjI$ zhemnKt?2`iWHrd0D*h#92nk-&ueJIIef_rxY#}`C(19Qhd*6+sj^@3L1avI2q&s~I z-+c6Ec#fwy;#YT5#?J8mdm~msH}ikikVUM(sE$ct@7_&_mH;H|548u28Jl;HdrjRv zQFaaTSN{hthVD_v)`znlNRhmS5Myr*=vG+A41yY(>R)w$1oEh&-z}SRf1|xT6_5mU zV;auD9=cUgdce1j7A~Ze=Xm89%33a;OPF&ORX0(0J$>qY-x03eqTLp6(>c!gc$6@9?R@Te4!d@4lq`poXv(dZf`dmsqh6lXF$aNkp+`0@~=aTtYg-0BO zuPTk^e5h~ny=Uoq&Xjh=DQXF}^HE+`F9*R%-WUoyNjGa!o2u4~oq(*}Ld^&X@=rRL zc!b2FZ?xINI_K?@_@<3VtNYM#CC1eWc4WtQjrF1o*Fv!M5Jbhu^$Nty zl8-`(P1PjUOEFDCnX7$!(^}agS*W60aiJR@SYHb-aB5hTmnRoS)8x+@{-hG)x6$jT z1|=0;6)Yb?3Yr_cY#0ic@4J`!sXMU6tmSS-SVLyqI#gcxVCZ-VS5i#HA^I>hl(f4ZU%? z>bjJ4;bXQ6SR?J}hz{z_hG%kB!rPTq_f6Q9kNId{Zf%+a)4(*k>1uiXM!!mtjA2ZR z+hX6su@38K{qQ%UB#`Jvq0PDZ-=rb-GhossJSn~`z=b+o7d#1bPGhCL>`3BjGW(Ga zjo?urpL8k8301+gjDHwVLKAaYoV?OhhjyY$%%5ci}F6szm}d?y^2ICn|{S0pIBMMBI0haKUJ7SQbsSL z)|tLg<}|qNNt7HT+cS{tb1(Z$knlT?s_tXnAh1Qd-JeA7Q_97S*YaBS6)Dnar;dD_ z6-GEAuxxryf0o_YHB)mRe5y-t8|}-(fLSpyV}?2J>vfs$4B%GYsFhVJccWHHvKJs& zrGjZ_4nuFBxKWRs8b@@w5>G@dOgc?d`&zHCJ8bCnh^)wPKeLU4A$@TrWp|TSe!f@T zi5IaIS4_$Z5@;j_68M;dyf6LAe_^X$g-=g5PS{K1z3_6J)E7EX#!mjBA{R@C5;XRZ%KuS`2X=fNjm<^9yYZ?(SF+1=G^RuWuJ=b(n#}S!8 zPWDgYnN7vi^A2`(5O^;Kb!{47wsDNoO;kk1?Y)s**1hB;9#!ZaX1V252(e(M`HUJ! zof}fV^ugV$#;fPUdPN3x^6Qu$E?lKGy+n|C!VEo6UuG837(qF6M_$!HGB0FxU(`m( zy>DLkl29@2&?mLA7ODR*xifXk!Ml^u4M z-z6s`_Sy)7VXMz-%&Gs>?Pll}7hf016-`lcPvqyv?mbxU*R~(kSmO?2iP1D=On!+~ei*wSc!p$T7xo#t^>2M5$s+!H7(UdPy8nM~B ziP`9e=tzb>d^ii&S65y8SS*FLnIYMxENlb%NS-y(YjqI?KUwYPZ9DeFu0SG6sI$J7 ztv2(X6UZ?`zpj_)&PYDFtX(p4f_f`9~+8fGLVoS?% z>st)Zt*{~uVg-47q$D4UI6PJioY*DmD=h^CfeE+@l0l=rhG!FrR+TqtbIBpF9-ETIT;l_ z1&d?BJyxj`XEY9S=Yq|Cvj`B`cb6f`3d`$0Z`)l2SN`5PY6CU;ahB1P{b_+$Kg4;? zZ%+%`Tq;$|)f!&jYW)y-=8Ml9E%+&2`>pC{I3zSJnV#xsW1~{V)n8u;_MS?3AL}I9U!s;W(yv#yS{OINV&a6;e-PtaVs9Mb zQx-Fl$D~eb*RgxZ!LN7Ps^w84u>p}ZlM$bd7v)*5zOfiTt6Kdf*_;!kf053PTdK7o z=J8W*W&D$wLRvlN+Y#aSybB`8ed8@;zLCV~flB0o_|SvgY|k_e8qnu>D=wdFL>`C(kEz-<{#MzU@?@x)XEUM;)J`u`u3zi~E9VI!TnkR{t zQDyX2A&Hk;ukK4MhsQ0FTW~Aw;~iq9F|H~G5A72zl^rX3jjfns4JEpBM#IvCSuN{u z6)yx)gcRe_Q%SY$pLb<7PN6g_dFNT^>7ix>v1xktF^5vsa)fE5lgE9J-x}&g& zwjts7=GXN8pZO=pU+yL2JBcYN;mc4WG@t!k5-PTSm$`ExD3!m6D*K8mKpY;6rRcSM zrP531lstVdQGw-kV{x9aUXpwu*5lF&Z-+X^P~ z31d||0l9Cyndof<eH|a) zdO%wfXP45z)WH#Gu;M(H2b|*NG z8V)HkK;K^cawU1v9(Cl$O#sbqX67>~i^dqHp&47D{c03Xy(D3-d{9iVh z`{{>K`vxGmncf3XG#F6So?N?&b^Q@IaN%h29sMiLx#W{75*n4k(&mOPAWep6I{)nV z8UDl!vyZeKW7&J}&`Nx}5m1LEcJws|jY1>sK<&+pKP7q)1n^bv+rPPapclSJEBWCj zH7MmElkTKuw68X?mI5>#{}&Ef(109s*JME4CLT0ueKW&0rB{kR80j@jz46qL6P`j{ zl#JwSpM2Qcf*ekcfd~=NKpJCWy0*sTkwL?sudfA|ggg9o{ z^%82v*UhUpM~2RlzZgA+>vkRBaE^T|cSyz1)6rHBQ)q?xCc{(|4rAZH7;z7snP#yr z9f4GSBHM?2kkVK>nvxAb<)tO6AL$U^^S5F$q5Cp36*#kO5^c&sD{ z1+9u-F=lE&j{+H~&^q?vF)2gp-><)q>89u*(U7+Cwb z4zT#R_9jK9-wYf63A1bs*KH;7HR(+6Cj2V$o;P<|uU(C-rx#fwKW-BC%omo6|KXSl zSJyCj`PaThDw?&!6rZrK{?1RT z13AS2zSx(bG&0KNG(DUK?5|>mT8#EAe9lH+nfC4Noi)l!S=4MUplZ0qYsiM$tgUrz z3=|pg9>47GAupB)o3BvXcYdWQ_5JXY-e`dFw)vCKS5LW_INu|P7=9G-F5r3P$jtR$ z6r!l90;5v;n&9`P^a%AA9b#PC|7O7klreA}cTJLWB)^=Cq{!)cRhYIJXYau;_cOoJ z1d_>JbBt1AuG~5CNxXiy@CLlFXvMDY63_0XbLOfw3OdB1Z>zdvSk01=7kVQCQ1ncwBrsosJO?)P5t!?W0 zQ}%2dXt!t-3@`Ks%8*n&N@JHTj$@ab5_ou}^rX^y&YSfpGnunViCQvxmEr_`1N8p> z_>Uz?EZPs^wH!tvIUrt@W;1)pxh}hS1rUqy^0N z+I>M0o|ZDQR0UOO!eu8mLAw{ax$lu`rW%Z|L(tvD^5Wi%C{Kh{Ee0vPZhvDp>h5iN zd!wlOW=9IVZK0+pdCybNVpVlC=Oikj_<(1VZ7G-dyt-y>r+^z2vXNe!XH3CqSjUR3 z&G+<#-!og0y38nkExy>fn>f>nDie`%sk1oWBBg$xb4N*;!&>WPB+aQ}7;lzK;dTVJ54IyvytZ!>pTgz4m#| z3Uu@fk4bmVzb)1?nBjv9A{JKLP%5=X?$QqRKUa*4G*m+UTDUnub2rP;=UT~I^m@+8 zv*!&+7jriZ zh$-ZnCD!H*3PLID*s+@hf&IQMlylI@t!P6MRzepDT1C7>4+fPSDge8-^>^MPc%#;| z&ly1QB;~Rwie>yfp%(%~F(?#>OG}_{0^G(@v@TqLgU%XWPY8Nk>?u*=CEae1n37Rx zmHFd?ziTAx>U9-Pw}^Q0lr+!KFh+bhM7Pp9Y1~+Aqp0JCk`M@o>RSqF85cTKWi2`x30*CZa@CgViqV<{l@rJETOc zhJN*}6J;(8fb!$@aVf^dg_HA#Z?EDRO4VrujX$$90=a2^eS)Yz)f|NdJZ|w=U|Y^J z;s=$X1YRE1mt3)W)D2dssc(+7X;)e~H#Br-H|i&SBvEda1b?eSOn^13j&WKT59ZpZ z;-<`JY$e;>bg{tkib82W!m4mp<92=}Fm$a)yZcO5@`zwFT>gp3)=oc`p~Wed3gBj6 zCi|eP;9H+x4RqHu`RmCCKSfwy#rnIHVXB6r0gyur5)Spu$`ci)3RJvDtO!pyT82vV zm|>6pt%Gam$aub1-S(s%Bl_Di3RDi~L1CLo)(R$C729w&os3GY#*XAGqV63)*AHm5 zL7r5&4=*tE^sHt5)~>T_vnh8Wjb6t^C??9uQK)26(J*|%Hws!9Rnl=tNwhXEn>hPA z&v09Z&;b9YRvbsTS5Y;#LH^8q_064@6B1{-!cr>VYy5QumT5nPBOsYOxNr~v;%+W@cREw+=g`(Me z17nnctrNDoS1N28@&R!f?ttp>GrD%SeT91aGl%{Z^g=lFY*MB8L^Rdh#QC1csKnC*J_?g@=)O3>jPrL&~9?l@*!dH?Vv z`LHz7L{He}Q6`kJg>Z5$X_3^z*PJLt1%KkaYRye^M}CHR-|U4LFVnO;vZ&uo zRtIu=S}7Yo6wAzdG!xbVvSDdR^KEAf(}!>>cytb;!(B&}uZ4cZWT@xvu!lbI6!e1) z34eX-Xv~dGUhwTl zjx7lHaB99Jiu9Hcvh=V76PY4@oRdzd;`d@(zK73SHzh6UZ^QIr zMDH^HzRYI^v9n(1*8qx*Lq%pP?@@SHimM4cPtA1|ATE@+xvEub1IKJv3uTv zbS%v=jU1^L<22LQA@f)cGxug_QoPu!cpCJ@6N1-|tNS@=0!B?xxP^}3%FV?3)sucP zvANU@oxGy5{t$WAK`U#uCWV-6nob-|`A-FmX3B z`P-ev(brkjkn57a8*Z2}FzmR$HVO>IaE~(@m_Mf)?6osPriUpc{Hu#Aw*3l0sfWpYIBgQzPHm+yvMlMLak057 z0HFHVnBs@&LRNIBv4_p3mTltpn87E&rYr}*v+Y1!#YcYa+6{ITFW>V%RpOef01uMS zX06ZqNam?&0Dipcg^c^KUjUTb3hXHEO(d;8La)kN02)T%bN~M^7*rN_0Cb$~%^d?f zuDX4gwzV#%JbBJ4t5S@95hC9te9igqk-jL?+o?^Nm{Uq7lSR}KJXPLK4>Rho51K#( z@IH_jZ~Wd3piIgwxTy z_e9n;3{D=?*NUObumFg0OkKs5s=?3ZM(&J%6_5SE9+F@n-Fd7d7mjPb4~sSR1@H-D zrxM~q-e}>f&FbA2xL7w;e{PmOzuDyMcg!j7SN1%4C3I%g#(?dhHAwQtqXL!uetm0< zgUW?(%XF7BS8m5HI&;$Fu4G$IG=qOHajYuIbJldT2`@ReOGWr-|F!MrVU*o(6RrZV zU=y0Kw#8D`m`H*WL!smS{)VqF47zG=iqy~zSAT>aK4ow3LPcV_w#^r5;M}NCEN&YC zb`{EHmDoR#$oa@TC_+gZYsR-bCHY%$LcQ!i$dt^CfBW}Ry=h~p%~`r$a>}#w2(aTT z7)*zEcvImP-e}+J@EzVSI>7=ikO}Lx#zohbry@orl zsXoTLmDBc!9xJ#1E!cK~g8HtO7Jbe40n{%fL9#pj@;PizAPOhSg#%+XtL&B;QZz!q zM>+Z`i|sT}Jdi}z#;}y+uRNiF<~^Vm{nA1gZY0oka%YC|OoLP4x|PvWjNITC-*EZ& zvh8J3QO!^i2DIfNRGx{yWx-gHypaytJhUEa*Qy>h-ty?Z{m-JE&2tc^k(g=eKTjp$n6|0bP$$!5`)wDT)QaFkt< zYe6)8-`cGf-TICCrZ`6a0{|g~1FKPWT�B^Ay%8c8zU+w2Bit-s`MyznYc!=SrJ1 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 Date: Sun, 3 Nov 2019 23:32:16 +0800 Subject: [PATCH 166/740] week03 homework --- Week 03/id_596/LeetCode_153_596.py | 14 ++++ Week 03/id_596/LeetCode_529_596.py | 51 ++++++++++++ Week 03/id_596/NOTE.md | 127 ++++++++++++++++++++++++++++- 3 files changed, 191 insertions(+), 1 deletion(-) create mode 100644 Week 03/id_596/LeetCode_153_596.py create mode 100644 Week 03/id_596/LeetCode_529_596.py diff --git a/Week 03/id_596/LeetCode_153_596.py b/Week 03/id_596/LeetCode_153_596.py new file mode 100644 index 000000000..613e1ea58 --- /dev/null +++ b/Week 03/id_596/LeetCode_153_596.py @@ -0,0 +1,14 @@ +class Solution: + def findMin(self, nums: List[int]) -> int: + left = 0 + right = len(nums) - 1 + + while left < right: + mid = (right - left) // 2 + left + + if (nums[mid] < nums[right]): + right = mid + else: + left = mid + 1 + + return nums[left] \ No newline at end of file diff --git a/Week 03/id_596/LeetCode_529_596.py b/Week 03/id_596/LeetCode_529_596.py new file mode 100644 index 000000000..04775577e --- /dev/null +++ b/Week 03/id_596/LeetCode_529_596.py @@ -0,0 +1,51 @@ +class Solution: + def updateBoard(self, board: List[List[str]], click: List[int]) -> List[List[str]]: + # 非法输入 + if not board or not board[0]: + return board + + x, y = click[0], click[1] + # 一下就挖到地雷,提前返回 + if board[x][y] == 'M': + board[x][y] = 'X' + return board + # 得到地图的长宽 + m, n = len(board), len(board[0]) + # 用来记录访问历史的二维数组,0为未访问,1为访问过 + visited = [[0 for _ in range(n + 1)] for j in range(m + 1)] + # 用来组成向八个方向搜索的向量 + dx = [1, 1, -1, -1, 0, 0, -1, 1] + dy = [1, 0, -1, 0, 1, -1, 1, -1] + + def dfs(x, y): + # 如果是地雷或者访问过,停止搜索 + if board[x][y] == 'M' or visited[x][y] == 1: + return + + visited[x][y] = 1 + mineCount = 0 # 用来统计附近的地雷个数 + + # 向八个方向搜索 + for k in range(len(dx)): + x1 = x + dx[k] + y1 = y + dy[k] + + # 判断是否是地雷 + if 0 <= x1 < m and 0 <= y1 < n and board[x1][y1] == 'M': + mineCount += 1 + + if mineCount > 0: + board[x][y] = str(mineCount) # 在地图上标记地雷个数 + else: + board[x][y] = 'B' # 没有相邻地雷,需要对该位置的八个方向做相同的搜索 + + for k in range(len(dx)): + x1 = x + dx[k] + y1 = y + dy[k] + + # 过滤掉越界和访问过的位置 + + if 0 <= x1 < m and 0 <= y1 < n and visited[x1][y1] == 0: + dfs(x1, y1) + dfs(x, y) + return board \ No newline at end of file diff --git a/Week 03/id_596/NOTE.md b/Week 03/id_596/NOTE.md index a6321d6e2..f098cfe7b 100644 --- a/Week 03/id_596/NOTE.md +++ b/Week 03/id_596/NOTE.md @@ -1,4 +1,129 @@ # NOTE - +> 使用二分查找,寻找一个半有序数组[4, 5, 6, 7, 0, 1, 2]中间无序的地方 +思路与LeetCode作业153一样,需要出数组中的最小值,那么该位置之后直到数组结尾都为无序的地方。 +实现代码如下: + +```python +def findMin(self, nums: List[int]) -> int: + left = 0 + right = len(nums) - 1 + + while left < right: + mid = (right - left) // 2 + left + + if (nums[mid] < nums[right]): + right = mid + else: + left = mid + 1 + + return nums[left] +``` + +## 学习笔记 + +### 深度优先搜索和广度优先搜索 + +遍历需要满足的条件 +* 每个节点都要访问一次 +* 每个节点仅仅访问一次 +* 对于节点的访问顺序不限 + * 深度优先:depth first search + * 广度优先:breadth first search + +深度优先搜索可以使用递归来实现,或者使用迭代配合一个栈来模拟调用堆栈 +dfs 递归写法 +``` python +visited = set() +def dfs(node, visited): + if node in visited: + return + + visited.add(node) + # process current node + ... + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) +``` + +dfs 非递归写法 +```python +def dfs(self, tree): + if tree.root is None: + return [] + visited, stack = [], [tree.root] + + while stack: + node = stack.pop() + visited.add(node) + + process(node) + nodes = generate_related_ndoes(node) + stack.push(nodes) + + # other processing work +``` + +相对的广度优先搜索可以使用队列来实现 +```python +def bfs(graph, start, end): + queue = [] + queue.append([start]) + visited.add(start) + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + + # other process work + ... +``` + +### 贪心算法 + +贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。 + +#### 贪心算法与动态规划的区别 +贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择不能回退。 +动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。 + +* 贪心:当前做局部最优判断 +* 回溯:能够回退 +* 动态规划:最优判断+回退 + +#### 贪心算法的作用 +贪心法可以解决一些最优化问题,如:求图中最小生成树,求哈夫曼编码等。然而对于工程和生活中的问题,贪心法一般不能得到我们所要求的答案 + +一旦一个问题可以通过贪心法来解决,小么贪心法一般是解决这个问题的最好办法。由于贪心法的高效性以及其所求得的答案比较接近最优结果,贪心法也可以用作辅助算法或者直接解决一些要求结果不特别精确的问题。 + +#### 贪心算法的适用场景 +简单的说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。这种子问题最优解称为最优子结构。 + +贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。 + +### 二分查找 + +#### 二分查找的前提 +1. 目标函数单调性(单调递增或者递减) +2. 存在上下界(bounded) +3. 能够通过索引访问(index accessible) + +#### 代码模版 +```python +left, right = 0, len(array)-1 +while left <= right: + mid = (left + right)/2 + if array[mid] == target: + # find the target!! + break or return result + elif array[mid] < target: + left = mid + 1 + else: + right = mid + 1 +``` \ No newline at end of file From 643ebc8e722e96b5cb5ca278398ff6e553648dad Mon Sep 17 00:00:00 2001 From: "18616009800@163.com" Date: Sun, 3 Nov 2019 23:32:48 +0800 Subject: [PATCH 167/740] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E8=A1=A5=E4=BA=A4=20=E7=AC=AC=E4=BA=8C=E5=91=A8?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E4=BF=AE=E6=94=B9=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week 01/id_541/DequeHomework.java | 91 +++++++++++ Week 01/id_541/P42TrappingRainWater.java | 89 ++++++++++ Week 01/id_541/P641DesignCircularDeque.java | 153 ++++++++++++++++++ ...20\347\240\201\345\210\206\346\236\220.md" | 41 +++++ .../id_541/LeetCode_236_541.java | 0 .../id_541/LeetCode_590_541.java | 0 6 files changed, 374 insertions(+) create mode 100644 Week 01/id_541/DequeHomework.java create mode 100644 Week 01/id_541/P42TrappingRainWater.java create mode 100644 Week 01/id_541/P641DesignCircularDeque.java create mode 100644 "Week 01/id_541/\347\254\254\344\270\200\345\221\250Queue,PriorityQueue\346\272\220\347\240\201\345\210\206\346\236\220.md" rename {Week 01 => Week 02}/id_541/LeetCode_236_541.java (100%) rename {Week 01 => Week 02}/id_541/LeetCode_590_541.java (100%) diff --git a/Week 01/id_541/DequeHomework.java b/Week 01/id_541/DequeHomework.java new file mode 100644 index 000000000..893ae05c5 --- /dev/null +++ b/Week 01/id_541/DequeHomework.java @@ -0,0 +1,91 @@ +package leetcode.editor.cn; + +import javax.swing.plaf.synth.SynthStyle; +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.LinkedList; +import java.util.Queue; + + +public class DequeHomework { + + public static void main(String[] args) { + + //学习源码的一些基础语法 +// int a = 0,b = 0,c = 0; +// a = b = 1; +// int[] aa = new int[]{1,2,3}; +// int[] bb = new int[]{4,5,6}; +// System.arraycopy(aa,0,bb,0,3); +// if ( a == 1 || b == 0 && c == 1){ +// System.out.println(1); +// } +// System.out.println(a); +// System.out.println(b); +// mainQueue(args); + mainDeque(args); + } + + public static void mainQueue(String[] args) { + + Deque deque = new ArrayDeque(); + //deque的queue用法 + deque.offer("1"); //offer继承于queue,先进先出。 +// deque.addFirst("1"); //offer的新api +// deque.offerFirst("1"); + deque.offer("2"); + deque.offer("3"); + deque.offer("4"); + deque.addFirst("0"); + System.out.println(deque); //[1, 2, 3, 4] + deque.pollFirst(); + System.out.println(deque); //[1, 2, 3, 4] + + String polledElement = deque.poll(); // == 1 ,符合queue的先进先出 + System.out.println(polledElement); + System.out.println(deque); //[2, 3, 4] + + String peekElement = deque.peek(); // == 2 (只看不拿) , + System.out.println(peekElement); + System.out.println(deque); //[2, 3, 4] + + while (deque.size()>0){ + System.out.println(deque.poll()); //先进先出 2,3,4 + } + } + + public static void mainDeque(String[] args) { + +// Queue queue = newew + + Deque deque = new LinkedList(); + Deque deque1 = new ArrayDeque(); + //deque的用法 + deque.addLast("1"); // queue的offer = deque的addLast + deque.addLast("2"); + deque.addLast("3"); + deque.addLast("4"); + deque1.isEmpty(); + System.out.println(deque); //[1, 2, 3, 4] + System.out.println(deque.getFirst()); + + String polledElement = deque.pollFirst(); // + System.out.println(polledElement); + System.out.println(deque); //[2, 3, 4] + + String peekElement = deque.peekFirst(); // + System.out.println(peekElement); + System.out.println(deque); //[2, 3, 4] + + while (deque.size()>0){ + System.out.println(deque.pollFirst()); //先进先出 2,3,4 + } + } + + + private static void printElemrnt(Deque deque) { + for (String s: deque){ + System.out.println(s); + } + } +} diff --git a/Week 01/id_541/P42TrappingRainWater.java b/Week 01/id_541/P42TrappingRainWater.java new file mode 100644 index 000000000..c825e78fb --- /dev/null +++ b/Week 01/id_541/P42TrappingRainWater.java @@ -0,0 +1,89 @@ +//给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 +// +// +// +// 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 +// +// 示例: +// +// 输入: [0,1,0,2,1,0,1,3,2,1,2,1] +//输出: 6 +// Related Topics 栈 数组 双指针 + + +package leetcode.editor.cn; + +import java.util.Stack; + +//Java:接雨水 +//第一周 +public class P42TrappingRainWater{ + public static void main(String[] args) { + Solution solution = new P42TrappingRainWater().new Solution(); + // TO TEST + //解法1.其实就是求低和高的问题,低恒等于1,然后本题则演变成求高的问题 ,时间复杂度 0(n) + //解法2.将每个位置i的面积累加,该位置i是否有面积,则根据他的左右邻高度确定,时间复杂度 0(n) + //这个思路进一步优化,可以考虑为,i节点的左右最近哥哥(比i高的为哥哥)高的问题 + +// int[] aa = new int[]{0,1,0,2,1,0,1,3,2,1,2,1}; + int[] aa = new int[]{2,1,0,2}; + System.out.println(solution.trap(aa)); + } + + +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public int trap(int[] height) { +// Stack stack = new Stack(); +// stack.push(height[0]); + //[0,1,0,2,1,0,1,3,2,1,2,1] + //[2,1,0,2] + //[4,2,3] + int maxLeft = 0,maxRight = 0,minHeight = 0; + int area = 0; + int length = height.length; + if (length == 0){ + return 0; + } + maxRight = maxRight(0,height);; + for (int i = 1; i < length - 1; i++) { + if (maxRight <= i){ + maxRight = maxRight(i,height); + } + maxLeft = maxLeft(i,height); + minHeight = Math.min(height[maxLeft],height[maxRight]); + if (minHeight >= height[i]){ + area += minHeight -height[i]; + } + } + return area; + } + + + private int maxRight(int index,int[] height){ + int maxValue = 0; + int maxIndex = 0; + for (int i = index+1; i < height.length; i++) { + if (i < height.length && maxValue <= height[i] ){ + maxValue = height[i]; + maxIndex= i; + } + } + return maxIndex; + } + + private int maxLeft(int index,int[] height){ + int maxValue = 0; + int maxIndex = 0; + for (int i = index - 1; i >= 0; i--) { + if (i >= 0 && maxValue <= height[i] ){ + maxValue = height[i]; + maxIndex= i; + } + } + return maxIndex; + } +} +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/Week 01/id_541/P641DesignCircularDeque.java b/Week 01/id_541/P641DesignCircularDeque.java new file mode 100644 index 000000000..e88844baa --- /dev/null +++ b/Week 01/id_541/P641DesignCircularDeque.java @@ -0,0 +1,153 @@ +//设计实现双端队列。 +//你的实现需要支持以下操作: +// +// +// MyCircularDeque(k):构造函数,双端队列的大小为k。 +// insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true。 +// insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。 +// deleteFront():从双端队列头部删除一个元素。 如果操作成功返回 true。 +// deleteLast():从双端队列尾部删除一个元素。如果操作成功返回 true。 +// getFront():从双端队列头部获得一个元素。如果双端队列为空,返回 -1。 +// getRear():获得双端队列的最后一个元素。 如果双端队列为空,返回 -1。 +// isEmpty():检查双端队列是否为空。 +// isFull():检查双端队列是否满了。 +// +// +// 示例: +// +// MyCircularDeque circularDeque = new MycircularDeque(3); // 设置容量大小为3 +//circularDeque.insertLast(1); // 返回 true +//circularDeque.insertLast(2); // 返回 true +//circularDeque.insertFront(3); // 返回 true +//circularDeque.insertFront(4); // 已经满了,返回 false +//circularDeque.getRear(); // 返回 2 +//circularDeque.isFull(); // 返回 true +//circularDeque.deleteLast(); // 返回 true +//circularDeque.insertFront(4); // 返回 true +//circularDeque.getFront(); // 返回 4 +//  +// +// +// +// 提示: +// +// +// 所有值的范围为 [1, 1000] +// 操作次数的范围为 [1, 1000] +// 请不要使用内置的双端队列库。 +// +// Related Topics 设计 队列 + +package leetcode.editor.cn; + +import java.lang.reflect.Array; + +//https://leetcode-cn.com/problems/design-circular-deque/solution/641-she-ji-xun-huan-shuang-duan-dui-lie-by-alexer-/ +//Java:设计循环双端队列 +public class P641DesignCircularDeque { + public static void main(String[] args) { + MyCircularDeque solution = new P641DesignCircularDeque().new MyCircularDeque(10); + // TO TEST + } + + + //leetcode submit region begin(Prohibit modification and deletion) + class MyCircularDeque { + + + private int[] objects; + private int head; + private int tail; + private int MAX_SIZE; + private int count; + + /** + * Initialize your data structure here. Set the size of the deque to be k. + */ + public MyCircularDeque(int k) { + objects = new int[k]; + head = tail = -1; + MAX_SIZE = k; + count = 0; + } + + /** + * Adds an item at the front of Deque. Return true if the operation is successful. + */ + public boolean insertFront(int value) { + if (isFull()) return false; + head = (head - 1 + MAX_SIZE) % MAX_SIZE; + objects[head] = value; + count++; + if (count == 1) { + tail = head; + } + return true; + } + + /** + * Adds an item at the rear of Deque. Return true if the operation is successful. + */ + public boolean insertLast(int value) { + if (isFull()) return false; + tail = (tail + 1) % MAX_SIZE; + objects[tail] = value; + count++; + if (count == 1) { + head = tail; + } + return true; + } + + /** + * Deletes an item from the front of Deque. Return true if the operation is successful. + */ + public boolean deleteFront() { + if (isEmpty()) return false; + head = (head + 1) % MAX_SIZE; + count--; + return true; + } + + /** + * Deletes an item from the rear of Deque. Return true if the operation is successful. + */ + public boolean deleteLast() { + if (isEmpty()) return false; + tail = (tail - 1 + MAX_SIZE) % MAX_SIZE; + count--; + return true; + } + + /** + * Get the front item from the deque. + */ + public int getFront() { + if (isEmpty()) return -1; + return objects[head]; + } + + /** + * Get the last item from the deque. + */ + public int getRear() { + if (isEmpty()) return -1; + return objects[tail]; + } + + /** + * Checks whether the circular deque is empty or not. + */ + public boolean isEmpty() { + return count == 0; + } + + /** + * Checks whether the circular deque is full or not. + */ + public boolean isFull() { + return count == MAX_SIZE; + } + + } +} \ No newline at end of file diff --git "a/Week 01/id_541/\347\254\254\344\270\200\345\221\250Queue,PriorityQueue\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/Week 01/id_541/\347\254\254\344\270\200\345\221\250Queue,PriorityQueue\346\272\220\347\240\201\345\210\206\346\236\220.md" new file mode 100644 index 000000000..79dd874a9 --- /dev/null +++ "b/Week 01/id_541/\347\254\254\344\270\200\345\221\250Queue,PriorityQueue\346\272\220\347\240\201\345\210\206\346\236\220.md" @@ -0,0 +1,41 @@ +1. + 本来对queue持有很清晰的印象,但是随着接触的越来越多,反倒是越模糊 + + 首先,在我的死记硬背中,队列属于线性结构,但是至于是连续性还是非连续性,这个就要另当别论了。因为接口只规范功能,不限制属性。而属性才是判断线性还是非线性的依据。下面来分析一下: + + Queue是一个接口,其子接口有Deque,(注意是有且不仅有的关系,莫要混淆) + Queue有自己的实现类,比如ArrayQueue,PriorityQueue,TaskQueue等等,他们内部是持有一个数组容器进行操作的,所以这个队列算是连续性线性结构。 + 当然了,Queue有别的子接口的实现类,比如接口BlockingQueue的实现类LinkedBlockingDeque等等,这个实现类内部则持有一个结点类型的数据结构,那么这时候他就是非连续的线性(一维)结构 + 至于别的案例,有时间自己仔细看看,会发现天下大同 + + queue的方法: + add + offer + remove + poll + element + peek + +2. + PriorityQueue + 集成Queue,所以queue该有的方法他也有。 + 但是属性里面,多了一个很特殊的Comparator,也因此衍生出了很多函数,都用于和优先级有关。 + 和Queue不同的是,他是一个类,集成了AbstractQueue。 + DelayQueue的操作就是基于PriorityQueue的。 + + PriorityBlockingQueue 持有PriorityQueue的引用,同时内部也含有一个Comparator. + 这个以后在研究 + + +3. 写完1,2后,我开始补写代码作业,设计循环双端队列。 + 初始的时候,很迷惑,因为对jdk自带的Deque了解的没有那么彻底,导致我的思路一致卡在了怎么设计一个和Deque一样的数据结构。这时候的思想还停留在模仿造车,但是模仿的前提是要对模仿对象足够了解。 + 自己也看了Deque的源码,对每个函数都能理解,但是真的要融会贯通,做到能跳出当局者的角度去思考这样的高度,还差火候。 + + 后来很纠结的时候,开始多次读题,终于发现自己不小心进了牛角尖,原来我不需要去照着Deque写,我只需要满足题目的条件就可以,对着题目的案例很容易就能理解循环双端这个结构。同理,学习jdk自带的deque的时候,也要用demo带入学习i即可。 + + 按照题目的意思,他们来不同的在于。jdk自带的支持grow,而本题目不需要支持。对着题目给的案例,去写,就会觉得思路很清晰。 + + + + + \ No newline at end of file diff --git a/Week 01/id_541/LeetCode_236_541.java b/Week 02/id_541/LeetCode_236_541.java similarity index 100% rename from Week 01/id_541/LeetCode_236_541.java rename to Week 02/id_541/LeetCode_236_541.java diff --git a/Week 01/id_541/LeetCode_590_541.java b/Week 02/id_541/LeetCode_590_541.java similarity index 100% rename from Week 01/id_541/LeetCode_590_541.java rename to Week 02/id_541/LeetCode_590_541.java From 044eeadc92e266fa67004fab58062af4a60f00d3 Mon Sep 17 00:00:00 2001 From: xiaolong Date: Sun, 3 Nov 2019 23:33:18 +0800 Subject: [PATCH 168/740] 526-Week 03 --- Week 03/id_526/LeetCode_153_526 | 26 ++++++++++++++++++++++++++ Week 03/id_526/LeetCode_200_526 | 26 ++++++++++++++++++++++++++ Week 03/id_526/LeetCode_33_526 | 24 ++++++++++++++++++++++++ Week 03/id_526/LeetCode_74_526 | 30 ++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 Week 03/id_526/LeetCode_153_526 create mode 100644 Week 03/id_526/LeetCode_200_526 create mode 100644 Week 03/id_526/LeetCode_33_526 create mode 100644 Week 03/id_526/LeetCode_74_526 diff --git a/Week 03/id_526/LeetCode_153_526 b/Week 03/id_526/LeetCode_153_526 new file mode 100644 index 000000000..72ce0e00b --- /dev/null +++ b/Week 03/id_526/LeetCode_153_526 @@ -0,0 +1,26 @@ +class Solution { + public int findMin(int[] nums) { + if (nums.length == 1) { + return nums[0]; + } + int left = 0, right = nums.length - 1; + if (nums[right] > nums[0]) { + return nums[0]; + } + while (left <= right) { + int mid = left + (right - left) / 2; + if (nums[mid] > nums[mid + 1]) { + return nums[mid + 1]; + } + if (nums[mid - 1] > nums[mid]) { + return nums[mid]; + } + if (nums[mid] > nums[0]) { + left = mid + 1; + } else { + right = mid - 1; + } + } + return -1; + } +} \ No newline at end of file diff --git a/Week 03/id_526/LeetCode_200_526 b/Week 03/id_526/LeetCode_200_526 new file mode 100644 index 000000000..d37f3590e --- /dev/null +++ b/Week 03/id_526/LeetCode_200_526 @@ -0,0 +1,26 @@ +class Solution { + public int numIslands(char[][] grid) { + int islandNum = 0; + for(int i = 0; i < grid.length; i++){ + for(int j = 0; j < grid[0].length; j++){ + if(grid[i][j] == '1'){ + infect(grid, i, j); + islandNum++; + } + } + } + return islandNum; + } + //感染函数 + public void infect(char[][] grid, int i, int j){ + if(i < 0 || i >= grid.length || + j < 0 || j >= grid[0].length || grid[i][j] != '1'){ + return; + } + grid[i][j] = '2'; + infect(grid, i + 1, j); + infect(grid, i - 1, j); + infect(grid, i, j + 1); + infect(grid, i, j - 1); + } +} \ No newline at end of file diff --git a/Week 03/id_526/LeetCode_33_526 b/Week 03/id_526/LeetCode_33_526 new file mode 100644 index 000000000..874d4f251 --- /dev/null +++ b/Week 03/id_526/LeetCode_33_526 @@ -0,0 +1,24 @@ +class Solution { + public int search(int[] nums, int target) { + int len = nums.length; + int left = 0, right = len-1; + while(left <= right){ + int mid = (left + right) / 2; + if(nums[mid] == target) + return mid; + else if(nums[mid] < nums[right]){ + if(nums[mid] < target && target <= nums[right]) + left = mid+1; + else + right = mid-1; + } + else{ + if(nums[left] <= target && target < nums[mid]) + right = mid-1; + else + left = mid+1; + } + } + return -1; + } +} \ No newline at end of file diff --git a/Week 03/id_526/LeetCode_74_526 b/Week 03/id_526/LeetCode_74_526 new file mode 100644 index 000000000..b6c4842e9 --- /dev/null +++ b/Week 03/id_526/LeetCode_74_526 @@ -0,0 +1,30 @@ +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + //数组长度 + int m = matrix.length; + if (m == 0) { + return false; + } + //二位数组列的长度 + int n = matrix[0].length; + // 二分查找 + int left = 0, right = m * n - 1; + int pivotIdx; + int pivotElement; + + while (left <= right) { + pivotIdx = (left + right) / 2; + pivotElement = matrix[pivotIdx / n][pivotIdx % n]; + if (target == pivotElement) { + return true; + }else { + if (target < pivotElement) { + right = pivotIdx - 1; + }else { + left = pivotIdx + 1; + } + } + } + return false; + } +} \ No newline at end of file From eb72e72babdc6e5efbdfb6fddba44ac323b7e78c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A9=E4=BD=BF?= Date: Sun, 3 Nov 2019 23:33:23 +0800 Subject: [PATCH 169/740] week 02 & week 03 --- Week 02/id_261/leetcode_105_261.go | 31 +++++++++++++++++++++++++++++ Week 02/id_261/leetcode_236_261.go | 32 ++++++++++++++++++++++++++++++ Week 03/id_261/leetcode_153_261.go | 16 +++++++++++++++ Week 03/id_261/leetcode_74_261.go | 23 +++++++++++++++++++++ 4 files changed, 102 insertions(+) create mode 100644 Week 02/id_261/leetcode_105_261.go create mode 100644 Week 02/id_261/leetcode_236_261.go create mode 100644 Week 03/id_261/leetcode_153_261.go create mode 100644 Week 03/id_261/leetcode_74_261.go diff --git a/Week 02/id_261/leetcode_105_261.go b/Week 02/id_261/leetcode_105_261.go new file mode 100644 index 000000000..d4c27b506 --- /dev/null +++ b/Week 02/id_261/leetcode_105_261.go @@ -0,0 +1,31 @@ +// leetcode - https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal + +/** + * Definition for a binary tree node. + * type TreeNode struct { + * Val int + * Left *TreeNode + * Right *TreeNode + * } + */ +var inPos map[int]int +func buildTree(preorder []int, inorder []int) *TreeNode { + inPos = make(map[int]int) + for i := 0; i < len(inorder); i++ { + inPos[inorder[i]] = i + } + return helper(preorder, 0, len(preorder) - 1, 0) +} + + +func helper(pre []int, preLeft, preRight, inStart int) *TreeNode { + if preLeft > preRight { + return nil + } + root := &TreeNode{Val: pre[preLeft]} + rootIndex := inPos[pre[preLeft]] + leftLen := rootIndex - inStart + root.Left = helper(pre, preLeft + 1, preLeft + leftLen, inStart) + root.Right = helper(pre, preLeft + leftLen + 1, preRight, rootIndex + 1) + return root +} \ No newline at end of file diff --git a/Week 02/id_261/leetcode_236_261.go b/Week 02/id_261/leetcode_236_261.go new file mode 100644 index 000000000..8c7329749 --- /dev/null +++ b/Week 02/id_261/leetcode_236_261.go @@ -0,0 +1,32 @@ +// leetcode - https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree + +/** + * Definition for TreeNode. + * type TreeNode struct { + * Val int + * Left *ListNode + * Right *ListNode + * } + */ +func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode { + if root == nil { + return nil + } + if root == p || root == q { + return root + } + x1, x2 := lowestCommonAncestor(root.Left, p, q), lowestCommonAncestor(root.Right, p, q) + if x1 != nil && x2 != nil { + return root + } + if (x1 != nil || x2 != nil) && (root == p || root == q) { + return root + } + if x1 != nil { + return x1 + } + if x2 != nil { + return x2 + } + return nil +} diff --git a/Week 03/id_261/leetcode_153_261.go b/Week 03/id_261/leetcode_153_261.go new file mode 100644 index 000000000..38b02d2f6 --- /dev/null +++ b/Week 03/id_261/leetcode_153_261.go @@ -0,0 +1,16 @@ +// leetcode - https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array + +func findMin(nums []int) int { + left, right := 0, len(nums) - 1 + for left < right { + mid := (left + right) / 2 + if nums[mid] < nums[right] { + right = mid + } else if nums[mid] > nums[right] && right - mid == 1 { + return nums[right] + } else { + left = mid + } + } + return nums[0] +} \ No newline at end of file diff --git a/Week 03/id_261/leetcode_74_261.go b/Week 03/id_261/leetcode_74_261.go new file mode 100644 index 000000000..907fd6e0d --- /dev/null +++ b/Week 03/id_261/leetcode_74_261.go @@ -0,0 +1,23 @@ +// leetcode - https://leetcode-cn.com/problems/search-a-2d-matrix + +func searchMatrix(matrix [][]int, target int) bool { + len1 := len(matrix) + if len1 == 0 { + return false + } + len2 := len(matrix[0]) + left, right := 0, len1*len2-1 + + for left <= right { + mid := (left + right) / 2 + x,y := (mid/len2), (mid%len2) + if matrix[x][y] == target { + return true + } else if matrix[x][y] < target { + left = mid + 1 + } else { + right = mid - 1 + } + } + return false +} \ No newline at end of file From ee227a3320f74047bf687d3faf7dc21d1a227947 Mon Sep 17 00:00:00 2001 From: Zachy Date: Sun, 3 Nov 2019 23:33:56 +0800 Subject: [PATCH 170/740] week03 --- Week 03/id_361/NOTE.md | 60 ++++++++++++++++- Week 03/id_361/leetCode_153_361.js | 58 ++++++++++++++++ Week 03/id_361/leetCode_200_361.js | 104 +++++++++++++++++++++++++++++ 3 files changed, 220 insertions(+), 2 deletions(-) create mode 100644 Week 03/id_361/leetCode_153_361.js create mode 100644 Week 03/id_361/leetCode_200_361.js diff --git a/Week 03/id_361/NOTE.md b/Week 03/id_361/NOTE.md index a6321d6e2..384688c1d 100644 --- a/Week 03/id_361/NOTE.md +++ b/Week 03/id_361/NOTE.md @@ -1,4 +1,60 @@ -# NOTE - +### 1.深度优先搜索 广度优先搜索 +#### 1.1 搜索-遍历 + + - 每个节点都要访问一次 + - 每个节点仅访问一次 + +- 深度优先:depth first search + - [模板](https://shimo.im/docs/ddgwCccJQKxkrcTq/read) +- 广度优先:breath first search搜索:暴力、简单朴素 + - [模板](https://shimo.im/docs/P8TqKHGKt3ytkYYd/read) +- 其他优先:比如从中间优先 +- 在树图中寻找特定点 + +- 案例: + - 深度优先:递归、遍历 + - 广度优先:队列 + - 广度优先实例:水波纹、地震。 更符合人脑裂解 + +#### 1.2 应用 +- java:链表 link 、双端队列deque + +- python:高性能connection库的deque + + + +- 启发式搜索:抖音、快手 + +#### 1.3 实战、高频 +- 二叉树的层次遍历 +- 岛屿数量:bfs dfs 并查集 flood fill + +### 2.贪心算法 Greedy +#### 2.1 前提 +- 能证明用贪心能得到全局最优解 +- 从后往前、从局部贪心 + +#### 2.2 与回溯、动态规划对比 +- 贪心:当下做局部最优判断 +- 回溯:能够回退 +- 动态规划:最优判断+回退 + +#### 2.3 实战 +- 硬币法 + + +### 3.二分查找 [模板](https://shimo.im/docs/hjQqRQkGgwd9g36J/read) + +#### 3.1 二分查找前提 + +- 目标函数单调性(单调递增或递减) +- 存在上下界(bounded) +- 能够通过索引访问(index accessible) + + + + +#### 3.实战 高频 +- 平方根: 二分、牛顿迭代法 diff --git a/Week 03/id_361/leetCode_153_361.js b/Week 03/id_361/leetCode_153_361.js new file mode 100644 index 000000000..831bde889 --- /dev/null +++ b/Week 03/id_361/leetCode_153_361.js @@ -0,0 +1,58 @@ +//153. 寻找旋转排序数组中的最小值 +//https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ + + +/** + *1.二分法 + * @param nums + * @returns {number|*} + */ +var findMin = function (nums) { + var len = nums.length; + if (len == 0) { + return 0; + } + var left = 0; + var right = len - 1; + while (left < right) { + // int mid = left + (right - left) / 2; + var mid = (left + right) >>> 1; + if (nums[mid] > nums[right]) { + left = mid + 1; + } else if (nums[mid] < nums[right]) { + right = mid; + } else { + assert + nums[mid] == nums[right]; + right--; + } + } + return nums[left]; +} + + + +/** + *2.分治法 + * @param nums + * @returns {number|*} + */ +var findMin = function (nums) { + var len = nums.length; + if (len == 0) { + throw new Error("数组为空,最小值不存在"); + } + return helper(nums, 0, len - 1); +} + +var helper = function (nums, left, right) { + if (left + 1 >= right) { + return Math.min(nums[left], nums[right]); + } + if (nums[left] < nums[right]) { + return nums[left]; + } + // int mid = left + (right - left) / 2; + var mid = (left + right) >>> 1; + return Math.min(helper(nums, left, mid - 1), helper(nums, mid, right)); +} diff --git a/Week 03/id_361/leetCode_200_361.js b/Week 03/id_361/leetCode_200_361.js new file mode 100644 index 000000000..fafe4e023 --- /dev/null +++ b/Week 03/id_361/leetCode_200_361.js @@ -0,0 +1,104 @@ +//leetCode 200. 岛屿数量 + + +/** + * 解法1:DFS flood fill + * 时间复杂度 :O(M×N),其中 MM 和 NN 分别为行数和列数。 + * 空间复杂度 :O(M×N),此时整个网格均为陆地,深度优先搜索的深度达到 M×N + * @param {character[][]} grid + * @return {number} + */ +var numIslands = function (grid) { + if (grid == null || grid.length == 0) { + return 0; + } + + var nr = grid.length; + var nc = grid[0].length; + var num_islands = 0; + for (var r = 0; r < nr; ++r) { + for (var c = 0; c < nc; ++c) { + if ('1' === grid[r][c]) { //if 1 begin dfs + ++num_islands; + dfs(grid, r, c); + } + } + } + + return num_islands; +} + +/** + * dfs算法 + * @param grid + * @param r + * @param c + */ +function dfs(grid, r, c) { + var nr = grid.length; + var nc = grid[0].length; + + if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0') { + return; + } + grid[r][c] = '0'; // flood fill + //4 directions + dfs(grid, r - 1, c); + dfs(grid, r + 1, c); + dfs(grid, r, c - 1); + dfs(grid, r, c + 1); +} + +//////////////////////////////////////////////////////////////////////////// +/** + * 解法2:DFS + * @param {character[][]} grid + * @return {number} + */ +var numIslands = function(grid) { + if(!grid || grid.length == 0){ + return 0; + } + var len = grid.length; + var size = grid[0].length; + var island = 0; + // 从右到左 队列 + var queue = []; + // 方向向量 + var dx = [-1,1,0,0]; + var dy = [0,0,-1,1]; + // dfs 推平 + function sink(i,j){ + // terminator + if(grid[i][j] == '0'){ + return 0; + } + // process + grid[i][j] = '0'; + // drill down + for(var k = 0;k< dx.length;k++){ + var x = i + dx[k]; + var y = j + dy[k]; + if(x >= 0 && x < grid.length && y >=0 && y0){ + var tmpIsland = queue.shift(); + sink(tmpIsland[0],tmpIsland[1]); + } + } + } + } + return island; +}; + From 2a4e811300acc0cb4119930dc4a2b892be8dc520 Mon Sep 17 00:00:00 2001 From: lzhlyle Date: Sun, 3 Nov 2019 23:34:32 +0800 Subject: [PATCH 171/740] Add leetcode solutions: 55, 122, 126, 127, 153, 200, 455 --- Week 03/id_131/LeetCode_122_131.java | 15 ++++ Week 03/id_131/LeetCode_126_131.java | 103 +++++++++++++++++++++++++++ Week 03/id_131/LeetCode_127_131.java | 59 +++++++++++++++ Week 03/id_131/LeetCode_153_131.java | 18 +++++ Week 03/id_131/LeetCode_200_131.java | 51 +++++++++++++ Week 03/id_131/LeetCode_455_131.java | 20 ++++++ Week 03/id_131/LeetCode_55_131.java | 23 ++++++ Week 03/id_131/NOTE.md | 9 +-- Week 05/id_131/NOTE.md | 8 +-- Week 06/id_131/NOTE.md | 8 +-- Week 07/id_131/NOTE.md | 8 +-- 11 files changed, 306 insertions(+), 16 deletions(-) create mode 100644 Week 03/id_131/LeetCode_122_131.java create mode 100644 Week 03/id_131/LeetCode_126_131.java create mode 100644 Week 03/id_131/LeetCode_127_131.java create mode 100644 Week 03/id_131/LeetCode_153_131.java create mode 100644 Week 03/id_131/LeetCode_200_131.java create mode 100644 Week 03/id_131/LeetCode_455_131.java create mode 100644 Week 03/id_131/LeetCode_55_131.java diff --git a/Week 03/id_131/LeetCode_122_131.java b/Week 03/id_131/LeetCode_122_131.java new file mode 100644 index 000000000..d794a855e --- /dev/null +++ b/Week 03/id_131/LeetCode_122_131.java @@ -0,0 +1,15 @@ +package com.lzhlyle.leetcode.self.no122; + +public class BestTimeToBuyAndSellStockII { + public int maxProfit(int[] prices) { + // base condition + if (prices == null || prices.length < 2) return 0; + + // greedy + int max = 0; + for (int i = 1; i < prices.length; i++) { + if (prices[i] > prices[i - 1]) max = max + prices[i] - prices[i - 1]; + } + return max; + } +} diff --git a/Week 03/id_131/LeetCode_126_131.java b/Week 03/id_131/LeetCode_126_131.java new file mode 100644 index 000000000..8326a125a --- /dev/null +++ b/Week 03/id_131/LeetCode_126_131.java @@ -0,0 +1,103 @@ +package com.lzhlyle.leetcode.self.no126; + +import java.util.*; + +public class WordLadderII_2_1 { + // 18ms + public List> findLadders(String beginWord, String endWord, List wordList) { + // base condition + Set meets = new HashSet<>(wordList); + if (!meets.contains(endWord)) return Collections.emptyList(); + + // double end bfs + Set beginSet = new HashSet<>(Collections.singleton(beginWord)); + Set endSet = new HashSet<>(Collections.singleton(endWord)); + Map> neighborsMap = new HashMap<>(); + if (!this._doubleEndBfs(beginSet, endSet, neighborsMap, true, meets)) return Collections.emptyList(); + + // dfs + List> result = new ArrayList<>(); + this._dfs(beginWord, endWord, neighborsMap, new LinkedList<>(), result); + return result; + } + + private boolean _doubleEndBfs(Set beginSet, Set endSet, Map> neighborsMap, + boolean isFromBeginToEnd, Set meets) { + // terminator + if (beginSet.size() == 0) return false; + + // process + meets.removeAll(beginSet); + Set nextLevelSet = new HashSet<>(); + boolean isMeetInCurrLevel = false; + + // iterate: every word, every char, every possibility + for (String beginWord : beginSet) { + char[] chars = beginWord.toCharArray(); + for (int i = 0; i < chars.length; i++) { + char stash = chars[i]; + + for (char c = 'a'; c <= 'z'; c++) { + chars[i] = c; + String newWord = String.valueOf(chars); + if (!meets.contains(newWord)) continue; + + if (endSet.contains(newWord)) isMeetInCurrLevel = true; + else nextLevelSet.add(newWord); + + // record into neighbors + String key = isFromBeginToEnd ? beginWord : newWord; + String neighbor = isFromBeginToEnd ? newWord : beginWord; + if (!neighborsMap.containsKey(key)) neighborsMap.put(key, new ArrayList<>()); + neighborsMap.get(key).add(neighbor); + } + + // back tracking + chars[i] = stash; + } + } + + if (isMeetInCurrLevel) return true; + + // drill down + // always from less to more + if (nextLevelSet.size() < endSet.size()) { + return this._doubleEndBfs(nextLevelSet, endSet, neighborsMap, isFromBeginToEnd, meets); + } + return this._doubleEndBfs(endSet, nextLevelSet, neighborsMap, !isFromBeginToEnd, meets); + + // reverse state + } + + private void _dfs(String beginWord, String endWord, Map> neighborsMap, + Deque path, List> result) { + // terminator + if (!result.isEmpty() && path.isEmpty()) return; + + // process + // append into path + path.addLast(beginWord); + + // complete a path + if (beginWord.equals(endWord)) result.add(new ArrayList<>(path)); + else if (neighborsMap.containsKey(beginWord)) { + // drill down + // has neighbors + // iterate every neighbor + for (String neighbor : neighborsMap.get(beginWord)) { + this._dfs(neighbor, endWord, neighborsMap, path, result); + } + } + + // back tracking + path.removeLast(); + + // reverse state + } + + public static void main(String[] args) { + Object res = new WordLadderII_2_1().findLadders("hit", "cog", + Arrays.asList("hit", "hot", "dot", "dog", "lot", "log", "cog")); + System.out.println(res); + } +} diff --git a/Week 03/id_131/LeetCode_127_131.java b/Week 03/id_131/LeetCode_127_131.java new file mode 100644 index 000000000..2525785b5 --- /dev/null +++ b/Week 03/id_131/LeetCode_127_131.java @@ -0,0 +1,59 @@ +package com.lzhlyle.leetcode.self.no127; + +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class WordLadder_5 { + public int ladderLength(String beginWord, String endWord, List wordList) { + if (!wordList.contains(endWord)) return 0; + if (beginWord.equals(endWord)) return 2; + + Set meets = new HashSet<>(wordList); // O(n) + + Set beginSet = new HashSet<>(Collections.singleton(beginWord)); + Set endSet = new HashSet<>(Collections.singleton(endWord)); + + return this._search(1, beginSet, endSet, meets); + } + + private int _search(int level, Set beginSet, Set endSet, Set meets) { + // terminator + if (beginSet.size() == 0 || endSet.size() == 0) return 0; + + // process + meets.removeAll(beginSet); + level++; + Set nextLevelSet = new HashSet<>(); + // iter every begin word + for (String beginWord : beginSet) { + char[] chars = beginWord.toCharArray(); + // iter for every char + for (int i = 0; i < chars.length; i++) { // O(k) + char temp = chars[i]; + // replace every letter + for (char ch = 'a'; ch < 'z'; ch++) { // O(1) 都是26遍 + chars[i] = ch; + String newWord = String.valueOf(chars); + if (!meets.contains(newWord)) continue; + if (endSet.contains(newWord)) return level; + nextLevelSet.add(newWord); + } + // reverse + chars[i] = temp; + } + } + + // drill down + // always from less to more + if (nextLevelSet.size() <= endSet.size()) { + beginSet = nextLevelSet; + } else { + beginSet = endSet; + endSet = nextLevelSet; + } + + return this._search(level, beginSet, endSet, meets); + } +} diff --git a/Week 03/id_131/LeetCode_153_131.java b/Week 03/id_131/LeetCode_153_131.java new file mode 100644 index 000000000..37e555d63 --- /dev/null +++ b/Week 03/id_131/LeetCode_153_131.java @@ -0,0 +1,18 @@ +package com.lzhlyle.leetcode.self.no153; + +public class FindMinimumInRotatedSortedArray_2 { + public int findMin(int[] nums) { + // base condition + if (nums == null || nums.length < 1) return -1; + if (nums.length == 1 || nums[0] < nums[nums.length - 1]) return nums[0]; + + // binary search: compare right + int left = 0, right = nums.length - 1; + while (left < right) { + int mid = left + (right - left) / 2; + if (nums[mid] < nums[right]) right = mid; + else left = mid + 1; + } + return nums[left]; + } +} diff --git a/Week 03/id_131/LeetCode_200_131.java b/Week 03/id_131/LeetCode_200_131.java new file mode 100644 index 000000000..93341b922 --- /dev/null +++ b/Week 03/id_131/LeetCode_200_131.java @@ -0,0 +1,51 @@ +package com.lzhlyle.leetcode.self.no200; + +public class NumberOfIslands_Short { + public int numIslands(char[][] grid) { + // base condition + if (grid.length <= 0 || grid[0].length <= 0) return 0; + + int count = 0; + + // traversal + for (int row = 0; row < grid.length; row++) { + for (int col = 0; col < grid[row].length; col++) { + if (grid[row][col] == '1') { + // dfs + count += this._sinkDown(grid, row, col); + } + } + } + + return count; + } + + private int _sinkDown(char[][] grid, int row, int col) { + // terminator + if (row < 0 || col < 0 || row >= grid.length || col >= grid[0].length || grid[row][col] == '0') return 0; + + // process + grid[row][col] = '0'; + + // drill down + this._sinkDown(grid, row, col + 1); // east + this._sinkDown(grid, row, col - 1); // west + this._sinkDown(grid, row + 1, col); // south + this._sinkDown(grid, row - 1, col); // north + + // reverse state + + return 1; + } + + public static void main(String[] args) { + char[][] grid = new char[][]{ + {'1', '1', '1', '1', '0'}, + {'1', '1', '0', '1', '0'}, + {'1', '1', '0', '0', '1'}, + {'0', '0', '1', '1', '0'} + }; + int res = new NumberOfIslands_Short().numIslands(grid); + System.out.println(res); + } +} diff --git a/Week 03/id_131/LeetCode_455_131.java b/Week 03/id_131/LeetCode_455_131.java new file mode 100644 index 000000000..95204c70e --- /dev/null +++ b/Week 03/id_131/LeetCode_455_131.java @@ -0,0 +1,20 @@ +package com.lzhlyle.leetcode.self.no455; + +import java.util.Arrays; + +public class AssignCookies_3 { + public int findContentChildren(int[] g, int[] s) { + // base condition + if (g == null || s == null || g.length < 1 || s.length < 1) return 0; + + // greedy + Arrays.sort(g); + Arrays.sort(s); + + int count = 0; + for (int cookie = 0; cookie < s.length && count < g.length; cookie++) { + if (g[count] <= s[cookie]) count++; + } + return count; + } +} diff --git a/Week 03/id_131/LeetCode_55_131.java b/Week 03/id_131/LeetCode_55_131.java new file mode 100644 index 000000000..186b9f309 --- /dev/null +++ b/Week 03/id_131/LeetCode_55_131.java @@ -0,0 +1,23 @@ +package com.lzhlyle.leetcode.self.no55; + +public class JumpGame_2 { + // 1ms + public boolean canJump(int[] nums) { + // base condition + if (nums == null || nums.length < 1) return false; + if (nums.length == 1) return true; + + // greedy, backward + int last = nums.length - 1; + for (int i = nums.length - 1; i >= 0; i--) { + if (i + nums[i] >= last) last = i; + } + return last == 0; + } + + public static void main(String[] args) { + int[] nums = new int[]{2, 0, 0}; + boolean can = new JumpGame_2().canJump(nums); + System.out.println(can); + } +} diff --git a/Week 03/id_131/NOTE.md b/Week 03/id_131/NOTE.md index a6321d6e2..850770e35 100644 --- a/Week 03/id_131/NOTE.md +++ b/Week 03/id_131/NOTE.md @@ -1,4 +1,5 @@ -# NOTE - - - +# NOTE +第三周 + + + diff --git a/Week 05/id_131/NOTE.md b/Week 05/id_131/NOTE.md index a6321d6e2..5af6c19c0 100644 --- a/Week 05/id_131/NOTE.md +++ b/Week 05/id_131/NOTE.md @@ -1,4 +1,4 @@ -# NOTE - - - +# NOTE +第五周 + + diff --git a/Week 06/id_131/NOTE.md b/Week 06/id_131/NOTE.md index a6321d6e2..33989081b 100644 --- a/Week 06/id_131/NOTE.md +++ b/Week 06/id_131/NOTE.md @@ -1,4 +1,4 @@ -# NOTE - - - +# NOTE +第六周 + + diff --git a/Week 07/id_131/NOTE.md b/Week 07/id_131/NOTE.md index a6321d6e2..cc95efef1 100644 --- a/Week 07/id_131/NOTE.md +++ b/Week 07/id_131/NOTE.md @@ -1,4 +1,4 @@ -# NOTE - - - +# NOTE +第七周 + + From 732f900feb518c0115c45b0fd50974747c1fca25 Mon Sep 17 00:00:00 2001 From: huangjiangjun Date: Sun, 3 Nov 2019 23:36:56 +0800 Subject: [PATCH 172/740] week 03 --- Week 03/id_516/LeetCode_126_516.java | 76 ++++++++++++++ Week 03/id_516/LeetCode_200_516.java | 65 ++++++++++++ Week 03/id_516/LeetCode_455_516.java | 40 +++++++ Week 03/id_516/NOTE.md | 151 ++++++++++++++++++++++++++- 4 files changed, 330 insertions(+), 2 deletions(-) create mode 100644 Week 03/id_516/LeetCode_126_516.java create mode 100644 Week 03/id_516/LeetCode_200_516.java create mode 100644 Week 03/id_516/LeetCode_455_516.java diff --git a/Week 03/id_516/LeetCode_126_516.java b/Week 03/id_516/LeetCode_126_516.java new file mode 100644 index 000000000..ca7596625 --- /dev/null +++ b/Week 03/id_516/LeetCode_126_516.java @@ -0,0 +1,76 @@ +package cn.jomoon.nov03; + +import java.util.*; + +public class LeetCode126 { + public List> findLadders(String beginWord, String endWord, List wordList) { + Set meets = new HashSet<>(wordList); + if (!meets.contains(endWord)) return Collections.emptyList(); + Set begin = new HashSet<>(Collections.singleton(beginWord)); + Set end = new HashSet<>(Collections.singleton(endWord)); + + Map> neighborsMap = new HashMap<>(); + if (!doubleDfs(begin,end,neighborsMap,true,meets)) return Collections.emptyList(); + + List> result = new ArrayList<>(); + dfs(neighborsMap,result,beginWord,endWord,new LinkedList<>()); + return result; + } + + + private boolean doubleDfs(Set begin, Set end, Map> neighborsMap, boolean isFromBeginToEnd, Set meets) { + if (begin.size() == 0) return false; + + meets.removeAll(begin); + + boolean isMeetInCurrLevel = false; + + Set nextLevels = new HashSet<>(); + + for (String beginWord : begin) { + char[] arr = beginWord.toCharArray(); + for (int i = 0; i < arr.length; i++) { + char swap = arr[i]; + for (char j = 'a'; j <= 'z'; j++) { + arr[i] = j; + String newWord = String.valueOf(arr); + if (!meets.contains(newWord)) continue; + + nextLevels.add(newWord); + + String key = isFromBeginToEnd ? newWord : beginWord; + String neighbor = isFromBeginToEnd ? newWord : beginWord; + if (!neighborsMap.containsKey(key)) neighborsMap.put(key,new ArrayList<>()); + neighborsMap.get(key).add(neighbor); + + if (end.contains(newWord)) isMeetInCurrLevel = true; + } + arr[i] = swap; + } + } + + if (isMeetInCurrLevel) return true; + + if (nextLevels.size() > end.size()) return doubleDfs(end,nextLevels,neighborsMap,!isFromBeginToEnd,meets); + else return doubleDfs(nextLevels,end,neighborsMap,isFromBeginToEnd,meets); + } + + private void dfs(Map> neighborsMap, List> res, String beginWord, String endWord, Deque path) { + if (res.size() > 0 && path.size() == 0) return; + path.addLast(beginWord); + + if (beginWord.equals(endWord)) { + res.add(new ArrayList<>(path)); + } else if (neighborsMap.containsKey(beginWord)) { + for (String neighbor : neighborsMap.get(beginWord)) { + dfs(neighborsMap,res,neighbor,endWord,path); + } + } + + path.removeLast(); + } + + + + +} diff --git a/Week 03/id_516/LeetCode_200_516.java b/Week 03/id_516/LeetCode_200_516.java new file mode 100644 index 000000000..087d6c87d --- /dev/null +++ b/Week 03/id_516/LeetCode_200_516.java @@ -0,0 +1,65 @@ +package com.hjj.leetcode.nov02; + +public class LeetCode200 { + + + private int n; + private int m; + + public int numIslands2(char[][] grid) { + int count = 0; + n = grid.length; + if (n == 0) return 0; + m = grid[0].length; + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + if (grid[i][j] == '1') { + DFSMarking(grid, i, j); + ++count; + } + } + } + return count; + } + + private void DFSMarking(char[][] grid, int i, int j) { + if (i < 0 || j < 0 || i >= n || j >= m || grid[i][j] != '1') return; + grid[i][j] = '0'; + DFSMarking(grid, i + 1, j); + DFSMarking(grid, i - 1, j); + DFSMarking(grid, i, j + 1); + DFSMarking(grid, i, j - 1); + } + + + int dx[] = {-1, 1, 0, 0}; + int dy[] = {0, 0, -1, 1}; + char[][] g; + + public int numIslands(char[][] grid) { + g = grid; + int islands = 0; + for (int i = 0; i < grid.length; i++) { + for (int j = 0; j < grid[i].length; j++) { + if (grid[i][j] == '0') continue; + islands += sink(i, j); + } + } + return islands; + } + + private int sink(int i, int j) { + if (g[i][j] == '0') { + return 0; + } + g[i][j] = '0'; + for (int k = 0; k < dx.length; k++) { + int x = i + dx[k], y = j + dy[k]; + if (x >= 0 && x <= g.length && y >= 0 && y <= g[x].length) { + if (g[x][y] == '0') continue; + sink(x, y); + } + } + return 1; + } +} diff --git a/Week 03/id_516/LeetCode_455_516.java b/Week 03/id_516/LeetCode_455_516.java new file mode 100644 index 000000000..f4cfff396 --- /dev/null +++ b/Week 03/id_516/LeetCode_455_516.java @@ -0,0 +1,40 @@ +package cn.jomoon.nov03; + +import java.util.Arrays; + +public class LeetCode455 { + public static void main(String[] args) { + new LeetCode455().findContentChildren(new int[]{1,2,3},new int[]{3}); + } + + public int findContentChildren(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + int res = 0; + int usedIndex = 0; + for (int i = 0; i < g.length; i++) { + int greedy = g[i]; + for (; usedIndex < s.length;) { + if (s[usedIndex++] >= greedy) { + res++; + break; + } + } + } + return res; + } + + + public int findContentChildren2(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + int gi = 0,si = 0; + while (gi < g.length && si < s.length) { + if (g[gi] <= s[si]) { + gi++; + } + si++; + } + return gi; + } +} diff --git a/Week 03/id_516/NOTE.md b/Week 03/id_516/NOTE.md index a6321d6e2..b7a676dc3 100644 --- a/Week 03/id_516/NOTE.md +++ b/Week 03/id_516/NOTE.md @@ -1,4 +1,151 @@ -# NOTE +## 代码模板 - + +## DFS + +```java +private static Set visited = new HashSet<>(); + public void dfs(TreeNode node) { + // terminator + if (node == null || visited.contains(node)) { + return; + } + visited.add(node); + // process + process(node); + // drill down + dfs(node.left); + dfs(node.right); + // reverse state + } + + private void process(TreeNode node) { + System.out.println(node.val); + } +``` + + + + + +## BFS + + + +```java +private static Set visited = new HashSet<>(); +public void bfs(TreeNode node) { + Deque> queue = new ArrayDeque<>(); + queue.push(Arrays.asList(node)); + visited.add(node); + List toVisit; + while ((toVisit = queue.pollFirst()).size() > 0) { + for (TreeNode treeNode : toVisit) { + visited.add(treeNode); + + process(treeNode); + + List relatedNodes = generateRelatedNodes(treeNode); + + queue.push(relatedNodes); + } + + } +} + +private List generateRelatedNodes(TreeNode node) { + List res = new ArrayList<>(); + if (node.left != null) { + res.add(node.left); + } + if (node.right != null) { + res.add(node.right); + } + return res; +} + +private void process(TreeNode node) { + System.out.println(node.val); +} +``` + +```java + public List> levelOrder(TreeNode root) { + List> ansList = new ArrayList<>(); + if (root == null) { + return ansList; + } + Queue queue = new LinkedList<>(); + queue.offer(root); + while (!queue.isEmpty()) { + int size = queue.size(); + List ans = new ArrayList<>(); + for (int i = 0; i < size; i++) { + TreeNode node = queue.poll(); + ans.add(node.val); + if (node.left != null) { + queue.offer(node.left); + } + if (node.right != null) { + queue.offer(node.right); + } + } + ansList.add(ans); + } + return ansList; + } +``` + + + +### 二分查找模板 + +```java +public int search(int[] nums) { + int left = 0,right = nums.length - 1; + while (left <= right) { + mid = (left + right) / 2; + if (nums[mid] == target) { + // find the target break or return result; + return mid; + }else if (nums[mid] < target) { + left = mid + 1; + }else { + right = mid - 1; + } + } +} +``` + + + +## 总结 + +> 这周经过老师的线上答疑后,了解到自己的不足,我现在需要的仅仅是不停的汲取知识,将别人的完全理解后,写出来,这种反复。等自己有一定题目的积累后再考虑自己思路想法。 +> +> 这周遇到不会的题目先将其记住,反复敲代码,反复记忆。 +> +> 改善点: +> +> 1. 自己去看国外most votes 变得频繁,经常会觉得他们的思路很神奇 让自己觉得自愧不如且小上瘾。 +> 2. 也偶尔会去看一些 其他语言的代码是如何书写的 发现用java去按照他们的代码去写 有时真的非常丑陋 (ps 可能自己java的功底也不深) +> +> 二分查找中间无序的索引 +> +> ```java +> public int findIndex(int[] nums) { +> int left = 0, right = nums.length - 1; +> while (left <= right) { +> int mid = (left + right) / 2; +> if (nums[mid] > nums[mid + 1]) { +> return mid; +> } else { +> if (nums[mid] < nums[left]) right = mid - 1; +> else left = mid + 1; +> } +> } +> } +> ``` +> +> \ No newline at end of file From 7e4d1d4dfdae66810dda94271e06dd9904993854 Mon Sep 17 00:00:00 2001 From: rosela <8010372+rosela@users.noreply.github.com> Date: Sun, 3 Nov 2019 23:42:17 +0800 Subject: [PATCH 173/740] 076-Week 03 --- Week 03/id_076/LeetCode_102_076.java | 93 ++++++++++++++++++++++++++++ Week 03/id_076/LeetCode_74_076.java | 43 +++++++++++++ Week 03/id_076/LeetCode_860_076.java | 45 ++++++++++++++ Week 03/id_076/NOTE.md | 33 ++++++++-- 4 files changed, 210 insertions(+), 4 deletions(-) create mode 100644 Week 03/id_076/LeetCode_102_076.java create mode 100644 Week 03/id_076/LeetCode_74_076.java create mode 100644 Week 03/id_076/LeetCode_860_076.java diff --git a/Week 03/id_076/LeetCode_102_076.java b/Week 03/id_076/LeetCode_102_076.java new file mode 100644 index 000000000..587a1c559 --- /dev/null +++ b/Week 03/id_076/LeetCode_102_076.java @@ -0,0 +1,93 @@ +package week3; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +/** + * 采用BFS 广度优先算法遍历二叉树 + * 本题听了视频,有使用队列解题思路,但还是没有写对 + * 处理层级时没有处理好,还需努力。。。 + * + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * + * @author tangzhenhua + * @date 2019/11/03 20:00 + */ +public class LeetCode_102_076 { + + + public List> levelOrder(TreeNode root) { + + List> results = new ArrayList<>(); + + if(root == null) return results; + + Queue queue = new LinkedList<>(); + queue.add(root); + + int level = 0; + + while (!queue.isEmpty()) { + + results.add(new ArrayList<>()); + List list = results.get(level); + int currLevel = queue.size(); + + for(int i = 0; i < currLevel; i++) { + + TreeNode treeNode = queue.remove(); + list.add(treeNode.val); + + if(treeNode.left != null){ + queue.add(treeNode.left); + } + + if(treeNode.right != null) { + queue.add(treeNode.right); + } + } + + level++; + + } + + return results; + } + + public static void main(String[] args) { + + TreeNode root = new TreeNode(3); + TreeNode left = new TreeNode(9); + TreeNode right = new TreeNode(20); + TreeNode left2 = new TreeNode(15); + TreeNode right2 = new TreeNode(7); + + root.left = left; + root.right = right; + + right.left = left2; + right.right = right2; + + LeetCode_102_076 leet = new LeetCode_102_076(); + List list = leet.levelOrder(root); + System.out.println(list); + } + +} + +class TreeNode { + int val; + TreeNode left; + TreeNode right; + + TreeNode(int x) { + val = x; + } +} \ No newline at end of file diff --git a/Week 03/id_076/LeetCode_74_076.java b/Week 03/id_076/LeetCode_74_076.java new file mode 100644 index 000000000..9a4aa622c --- /dev/null +++ b/Week 03/id_076/LeetCode_74_076.java @@ -0,0 +1,43 @@ +package week3; + +/** + * 采二分查找搜索二维矩阵 + * 解题思路: + * 1. 采用暴力方法 + * 2. 转换为有序数组之后,进行二分查找 + * 3. 由于该矩阵正好符合有序数组,可以直接转换为虚数组进行查询,节省空间 + * 4. 采用行首或行尾进行匹配,确认数据可能在哪一行,之后再进行行内进行轮询或二分查找 + * + * 本题采用虚拟数组方式进行解题 + * + * @author tangzhenhua + * @date 2019/11/03 20:00 + */ +public class LeetCode_74_076 { + + public boolean searchMatrix(int[][] matrix, int target) { + + int row = matrix.length; + int col = matrix[0].length; + + int left = 0; + int right = row * col - 1; + + while (left <= right){ + int idx = (left + right)/2; + int result = matrix[idx / row][idx % row]; + if(target == result){ + return true; + } else if(target < result){ + right = idx - 1; + } else { + left = idx + 1; + } + } + return false; + } + + public static void main(String[] args) { + + } +} \ No newline at end of file diff --git a/Week 03/id_076/LeetCode_860_076.java b/Week 03/id_076/LeetCode_860_076.java new file mode 100644 index 000000000..c932f137b --- /dev/null +++ b/Week 03/id_076/LeetCode_860_076.java @@ -0,0 +1,45 @@ +package week3; + +/** + * 采用贪心算法解题,没次都采用最优进行选择,没有最优办法采用次优进行处理。 + * + * @author tangzhenhua + * @date 2019/11/03 20:00 + */ +public class LeetCode_860_076 { + + public boolean lemonadeChange(int[] bills) { + + int five = 0; + int ten = 0; + + for(int i = 0; i < bills.length; i++) { + if(bills[i] == 5) { + five++; + + } else if(bills[i] == 10) { + if(five == 0) { + return false; + } + five--; + ten++; + } else { + if(ten > 0 && five > 0){ + five--; + ten--; + } else if(five >= 3){ + five -= 3; + } else { + return false; + } + } + } + return true; + } + + public static void main(String[] args) { + int[] bills = {5,5,5,10,20}; + LeetCode_860_076 leet = new LeetCode_860_076(); + System.out.println(leet.lemonadeChange(bills)); + } +} \ No newline at end of file diff --git a/Week 03/id_076/NOTE.md b/Week 03/id_076/NOTE.md index a6321d6e2..51420d5e0 100644 --- a/Week 03/id_076/NOTE.md +++ b/Week 03/id_076/NOTE.md @@ -1,4 +1,29 @@ -# NOTE - - - +# NOTE + +本周 学习内容 + +## 广度优先搜索 BFS,深度优先搜索 DFS +## 贪心算法 +## 二分法查找 + +通过练习,了解到二维数组,部分问题可转换为二叉树搜索方式进行解题 +也可以转换为有序数组,进行二分法进行处理 +其中搜索算法,需要多加练习 + + +## Flood fill 算法 +- Flood fill 算法是从一个区域中提取若干个连通的点与其他相邻区域区分开(或分别染成不同颜色)的经典 算法。 +- 因为其思路类似洪水从一个区域扩散到所有能到达的区域而得名。在 GNU Go 和 扫雷 中, +- Flood Fill算法被用来计算需要被清除的区域。 + +## 广度优先搜索 BFS +按层进行遍历 + +## 深度优先搜索 DFS +按照深度进行遍历,根据二叉树遍历,可分三种遍历顺序:前、中、后 + + + + + + From db4ba14bc75038f7285762fc1b6204a26ffc8fff Mon Sep 17 00:00:00 2001 From: he Date: Sun, 3 Nov 2019 23:45:31 +0800 Subject: [PATCH 174/740] homework --- Week 03/id_161/BestTimeToSellAndBuy.java | 18 ++++ Week 03/id_161/LemonChange.java | 25 +++++ Week 03/id_161/islands.java | 36 +++++++ ...46\344\271\240\346\200\273\347\273\223.md" | 100 ++++++++++++++++++ 4 files changed, 179 insertions(+) create mode 100644 Week 03/id_161/BestTimeToSellAndBuy.java create mode 100644 Week 03/id_161/LemonChange.java create mode 100644 Week 03/id_161/islands.java create mode 100644 "Week 03/id_161/\345\255\246\344\271\240\346\200\273\347\273\223.md" diff --git a/Week 03/id_161/BestTimeToSellAndBuy.java b/Week 03/id_161/BestTimeToSellAndBuy.java new file mode 100644 index 000000000..f81304b0a --- /dev/null +++ b/Week 03/id_161/BestTimeToSellAndBuy.java @@ -0,0 +1,18 @@ +class Solution { + public int maxProfit(int[] prices) { + int i = 0; + int valley = prices[0]; + int peak = prices[0]; + int maxprofit = 0; + while (i < prices.length - 1) { + while (i < prices.length - 1 && prices[i] >= prices[i + 1]) + i++; + valley = prices[i]; + while (i < prices.length - 1 && prices[i] <= prices[i + 1]) + i++; + peak = prices[i]; + maxprofit += peak - valley; + } + return maxprofit; + } +} \ No newline at end of file diff --git a/Week 03/id_161/LemonChange.java b/Week 03/id_161/LemonChange.java new file mode 100644 index 000000000..7000673ed --- /dev/null +++ b/Week 03/id_161/LemonChange.java @@ -0,0 +1,25 @@ +class Solution { + public boolean lemonadeChange(int[] bills) { + int c5=0; + int c10=0; + for(int bill:bills){ + if(bill==5) + c5+=5; + else if(bill==10){ + if(c5!=0){ + c5-=5; + c10+=10; + }else return false; + + }else if(c10!=0){ + if(c5!=0){ + c5-=5; + c10-=10; + }else return false; + }else if(c5>=15) + c5-=15; + else return false; + } + return true; + } +} \ No newline at end of file diff --git a/Week 03/id_161/islands.java b/Week 03/id_161/islands.java new file mode 100644 index 000000000..61a600d32 --- /dev/null +++ b/Week 03/id_161/islands.java @@ -0,0 +1,36 @@ +class Solution { + void dfs(char[][] grid, int r, int c) { + int nr = grid.length; + int nc = grid[0].length; + + if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0') { + return; + } + + grid[r][c] = '0'; + dfs(grid, r - 1, c); + dfs(grid, r + 1, c); + dfs(grid, r, c - 1); + dfs(grid, r, c + 1); + } + + public int numIslands(char[][] grid) { + if (grid == null || grid.length == 0) { + return 0; + } + + int nr = grid.length; + int nc = grid[0].length; + int num_islands = 0; + for (int r = 0; r < nr; ++r) { + for (int c = 0; c < nc; ++c) { + if (grid[r][c] == '1') { + ++num_islands; + dfs(grid, r, c); + } + } + } + + return num_islands; + } +} diff --git "a/Week 03/id_161/\345\255\246\344\271\240\346\200\273\347\273\223.md" "b/Week 03/id_161/\345\255\246\344\271\240\346\200\273\347\273\223.md" new file mode 100644 index 000000000..62b7f3c9b --- /dev/null +++ "b/Week 03/id_161/\345\255\246\344\271\240\346\200\273\347\273\223.md" @@ -0,0 +1,100 @@ +# 第三周 + +## 遍历-搜索 + +### 深度优先搜索 +也是递归的一种 +```python +def dfs(node): + # terminator + if(node in visited) + #already visited + return + visited.add(node) + # proccess current node logic... + # drill down + dfs(node.left) + dfs(node.right) +``` + +```python +visited = set() +def dfs(node, visited): + visited.add(node) + for(child in node.children) + if(child not in visited) + dfs(child, visited) +``` + +### 广度优先搜索 +使用循环+队列实现 +```python +def bfs(graph, start, end): + queue = [] + queue.append([start]) + visited.add(start) + + while(queue) + node = queue.pop() + visited.add(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + # other processing work + ... + +``` + +## 贪心算法 + +### 贪心算法 +贪心算法是一种在每一步选择中都采取当前状态下最好或最优的选择,从而希望导致结果是全局最优或最好的算法 + +贪心算法和动态规划的不同在于对它对每个子问题的解决方案都作出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能 + +#### 适合贪心算法的场景 +简单来说,问题能够分解成子问题来解决,子问题的最优解能递推出最终问题的最优解。这种子问题最优解称为最优子结构 + +## 二分查找 + +### 二分查找的先决条件 +- 目标函数的单调性(单调递增或递减) +- 存在上下界(bounded) +- 能够通过索引访问(index accessible) + +### 二分查找代码模板 +```python +left = 0, right = len(arr) - 1 +while(left <= right) +mid = left + (right - left) / 2 +if(arr[mid] == target) + # target founded + return result or break; +elif(arr[mid] < target) + left = mid + 1 +else + right = mid - 1 +``` + +### 思考作业 +使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 +思路:首先确认返回条件,即index与后一个数递增,与前一个数递减,然后套用模板,夹逼即可 +```java +public static int findDisorder(int[] arr) { + int left = 0; + int right = arr.length - 1; + while(left <= right) { + int middle = left + (right - left) / 2; + if (arr[middle - 1] > arr[middle] && arr[middle] < arr[middle + 1]) { + return middle; + } else if (arr[middle - 1] > arr[left]) { + // middle处于第一段位置 + left = middle + 1; + } else { + // middle处于第二段位置,但不是分界点 + right = middle - 1; + } + } + + return -1; +} +``` \ No newline at end of file From b7cc7026402e23ecf8597d578062f1a14a02422e Mon Sep 17 00:00:00 2001 From: jianran Date: Sun, 3 Nov 2019 23:52:24 +0800 Subject: [PATCH 175/740] week 03 --- Week 03/id_081/AssignCookies.java | 23 +++++++++++++++++ .../id_081/BestTimeToBuyAndSellStockII.java | 13 ++++++++++ Week 03/id_081/JumpGame.java | 16 ++++++++++++ Week 03/id_081/LemonadeChange.java | 23 +++++++++++++++++ Week 03/id_081/NOTE.md | 0 .../id_081/SearchInRotatedSortedArray.java | 24 ++++++++++++++++++ Week 03/id_081/Sqrt.java | 19 ++++++++++++++ Week 03/id_081/ValidPerfectSquare.java | 25 +++++++++++++++++++ 8 files changed, 143 insertions(+) create mode 100644 Week 03/id_081/AssignCookies.java create mode 100644 Week 03/id_081/BestTimeToBuyAndSellStockII.java create mode 100644 Week 03/id_081/JumpGame.java create mode 100644 Week 03/id_081/LemonadeChange.java mode change 100644 => 100755 Week 03/id_081/NOTE.md create mode 100644 Week 03/id_081/SearchInRotatedSortedArray.java create mode 100644 Week 03/id_081/Sqrt.java create mode 100644 Week 03/id_081/ValidPerfectSquare.java diff --git a/Week 03/id_081/AssignCookies.java b/Week 03/id_081/AssignCookies.java new file mode 100644 index 000000000..ee042cd19 --- /dev/null +++ b/Week 03/id_081/AssignCookies.java @@ -0,0 +1,23 @@ +/** + * AssignCookies + */ +public class AssignCookies { + + public int findContentChildren(int[] g, int[] s) { + Arrays.sort(g); + Arrays.sort(s); + int count = 0; + + int gIndex = 0; + int sIndex = 0; + + while (gIndex < g.length && sIndex < s.length) { + if (g[gIndex] <= s[sIndex]) { + count++; + gIndex++; + } + sIndex++; + } + return count; + } +} \ No newline at end of file diff --git a/Week 03/id_081/BestTimeToBuyAndSellStockII.java b/Week 03/id_081/BestTimeToBuyAndSellStockII.java new file mode 100644 index 000000000..c5cfe9837 --- /dev/null +++ b/Week 03/id_081/BestTimeToBuyAndSellStockII.java @@ -0,0 +1,13 @@ +/** + * BestTimeToBuyAndSellStockII + */ +public class BestTimeToBuyAndSellStockII { + + public int maxProfit(int[] prices) { + int total = 0; + for(int i = 0; i < prices.length -1; i++){ + if(prices[i] < prices[i + 1]) total+= (prices[i + 1] - prices[i]); + } + return total; + } +} \ No newline at end of file diff --git a/Week 03/id_081/JumpGame.java b/Week 03/id_081/JumpGame.java new file mode 100644 index 000000000..6ee395092 --- /dev/null +++ b/Week 03/id_081/JumpGame.java @@ -0,0 +1,16 @@ +/** + * JumpGame + */ +public class JumpGame { + + public boolean canJump(int[] nums) { + if(nums == null) return true; + + int jumpEnd = nums.length -1; + for(int i = jumpEnd; i >= 0; i--){ + if(nums[i] + i >= jumpEnd) + jumpEnd = i; + } + return jumpEnd == 0; + } +} \ No newline at end of file diff --git a/Week 03/id_081/LemonadeChange.java b/Week 03/id_081/LemonadeChange.java new file mode 100644 index 000000000..602484ab8 --- /dev/null +++ b/Week 03/id_081/LemonadeChange.java @@ -0,0 +1,23 @@ +/** + * LemonadeChange + */ +public class LemonadeChange { + + public boolean lemonadeChange(int[] bills) { + int five = 0, ten = 0; + for(int i : bills){ + if(i == 5) + five++; + else if(i == 10) { + five--; + ten++; + }else if(ten > 0){ + ten--; + five--; + }else five -= 3; + + if(five < 0) return false; + } + return true; + } +} \ No newline at end of file diff --git a/Week 03/id_081/NOTE.md b/Week 03/id_081/NOTE.md old mode 100644 new mode 100755 diff --git a/Week 03/id_081/SearchInRotatedSortedArray.java b/Week 03/id_081/SearchInRotatedSortedArray.java new file mode 100644 index 000000000..e94f35fa3 --- /dev/null +++ b/Week 03/id_081/SearchInRotatedSortedArray.java @@ -0,0 +1,24 @@ +/** + * SearchInRotatedSortedArray + */ +public class SearchInRotatedSortedArray { + + public int search(int[] nums, int target) { + int lo = 0; + int hi = nums.length - 1; + + while (lo < hi) { + int mid = (lo + hi) / 2; + // 当[0,mid]有序时,向后规约条件 + if (nums[0] <= nums[mid] && (target > nums[mid] || target < nums[0])) { + lo = mid + 1; + // 当[0,mid]发生旋转时,向后规约条件 + } else if (nums[0] > nums[mid] && target > nums[mid] && target < nums[0]) { + lo = mid + 1; + } else { + hi = mid; + } + } + return lo == hi && nums[lo] == target ? lo : -1; + } +} \ No newline at end of file diff --git a/Week 03/id_081/Sqrt.java b/Week 03/id_081/Sqrt.java new file mode 100644 index 000000000..915beb8c5 --- /dev/null +++ b/Week 03/id_081/Sqrt.java @@ -0,0 +1,19 @@ +/** + * Sqrt + */ +public class Sqrt { + + public int mySqrt(int x) { + long left = 0; + long right = x; + while (left < right) { + long mid = (left + right + 1) >>> 1; + long square = mid * mid; + if (square > x) + right = mid - 1; + else + left = mid; + } + return (int) right; + } +} \ No newline at end of file diff --git a/Week 03/id_081/ValidPerfectSquare.java b/Week 03/id_081/ValidPerfectSquare.java new file mode 100644 index 000000000..dd896ebaf --- /dev/null +++ b/Week 03/id_081/ValidPerfectSquare.java @@ -0,0 +1,25 @@ +/** + * ValidPerfectSquare + */ +public class ValidPerfectSquare { + + public boolean isPerfectSquare(int num) { + if(num == 0) return true; + + long left = 1; + long right = num; + + while(left <= right) { + long mid = (left + right) >>> 1; + long square = mid * mid; + if(square == num) + return true; + else if(square < num) + left = mid + 1; + else + right = mid - 1; + + } + return false; + } +} \ No newline at end of file From 0f0c4ab25f206f034f429c3333e2dc309f7c8a55 Mon Sep 17 00:00:00 2001 From: "zhu.xiwen" Date: Sun, 3 Nov 2019 23:55:06 +0800 Subject: [PATCH 176/740] Week 03 --- .vscode/settings.json | 5 +++ Week 02/id_616/NOTE.md | 51 ++++++++++++++++++++++++++++- Week 03/id_616/LeetCode_122_616.cpp | 12 +++++++ Week 03/id_616/LeetCode_200_616.cpp | 29 ++++++++++++++++ Week 03/id_616/LeetCode_455_616.cpp | 17 ++++++++++ Week 03/id_616/LeetCode_55_616.cpp | 14 ++++++++ Week 03/id_616/LeetCode_860_616.cpp | 50 ++++++++++++++++++++++++++++ 7 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 .vscode/settings.json create mode 100644 Week 03/id_616/LeetCode_122_616.cpp create mode 100644 Week 03/id_616/LeetCode_200_616.cpp create mode 100644 Week 03/id_616/LeetCode_455_616.cpp create mode 100644 Week 03/id_616/LeetCode_55_616.cpp create mode 100644 Week 03/id_616/LeetCode_860_616.cpp diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..a3b2b51f1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "vector": "cpp" + } +} \ No newline at end of file diff --git a/Week 02/id_616/NOTE.md b/Week 02/id_616/NOTE.md index a6321d6e2..0450f77c0 100644 --- a/Week 02/id_616/NOTE.md +++ b/Week 02/id_616/NOTE.md @@ -1,4 +1,53 @@ # NOTE - +## 哈希表、映射、集合 +### 散列函数 + +通过把 Key(关键码值)​映射到表中的一个位置来访问,以加快查找的速度。这个映射函数叫做散列函数(Hash Function)​​,存放记录的数组叫做哈希表(散列表) + +### 散列冲突 + +- 开放寻址法 +- 拉链式解决冲突法 + +## 树、二叉树、二叉搜索树 + +### 树 + +链表是特殊化的树,树是特殊化的图。 + +### 二叉树 + +前序遍历: 根->左->右 +中序遍历: 左->根->右 +后序遍历: 左->右->根 + +### 二叉搜索树 + +左子树都小于根节点,右子树都大于根节点 + +## 泛型递归、树的递归 + +### 递归模板 + +1. 终止条件 +2. 处理当前层逻辑 +3. 下探到下一层 +4. 如有需要,清理当前层状态 + +### 要点 + +- 不要人肉进行递归(最大误区) +- 找到最近最简方法,将其拆解成可重复解决的问题(重复子问题) +- 数学归纳法 + +## 分治、回溯 + +### 分治模板 + +1. 终止条件 +2. 准备数据 +3. 拆解子问题 +4. 组合最终结果 +5. 如有需要,清理当前层状态 diff --git a/Week 03/id_616/LeetCode_122_616.cpp b/Week 03/id_616/LeetCode_122_616.cpp new file mode 100644 index 000000000..7f35a08e0 --- /dev/null +++ b/Week 03/id_616/LeetCode_122_616.cpp @@ -0,0 +1,12 @@ +class Solution { +public: + int maxProfit(vector& prices) { + if(prices.size() < 2) return 0; + int cnt = 0; + for(int i = 1; i < prices.size(); ++i){ + int diff = prices[i] - prices[i-1]; + if(diff > 0) cnt += diff; + } + return cnt; + } +}; \ No newline at end of file diff --git a/Week 03/id_616/LeetCode_200_616.cpp b/Week 03/id_616/LeetCode_200_616.cpp new file mode 100644 index 000000000..3aa9e40e3 --- /dev/null +++ b/Week 03/id_616/LeetCode_200_616.cpp @@ -0,0 +1,29 @@ +class Solution { +private: + void sink(vector>& grid, int i, int j, int high, int len) { + grid[i][j] = '0'; + if (i - 1 >= 0 && grid[i-1][j] == '1') sink(grid, i - 1, j,high,len); + if (i + 1 < high && grid[i+1][j] == '1') sink(grid, i + 1, j,high,len); + if (j - 1 >= 0 && grid[i][j-1] == '1') sink(grid, i, j - 1,high,len); + if (j + 1 < len && grid[i][j+1] == '1') sink(grid, i, j + 1,high,len); + } + +public: + int numIslands(vector>& grid) { + int high = grid.size(); + if (!high) return 0; + int len = grid[0].size(); + + int cnt = 0; + for (int i = 0; i < high; ++i) { + for (int j = 0; j < len; ++j) { + if (grid[i][j] == '1') { + sink(grid, i, j, high, len); + ++cnt; + } + } + } + + return cnt; + } +}; \ No newline at end of file diff --git a/Week 03/id_616/LeetCode_455_616.cpp b/Week 03/id_616/LeetCode_455_616.cpp new file mode 100644 index 000000000..3f945c791 --- /dev/null +++ b/Week 03/id_616/LeetCode_455_616.cpp @@ -0,0 +1,17 @@ +class Solution { +public: + int findContentChildren(vector& g, vector& s) { + sort(g.begin(), g.end()); + sort(s.begin(), s.end()); + int cnt = 0; + int j = 0; + for(int i = 0; i < s.size(); ++i){ + if (g[j] <= s[i]){ + j++; + cnt++; + if(j >= g.size()) return cnt; + } + } + return cnt; + } +}; \ No newline at end of file diff --git a/Week 03/id_616/LeetCode_55_616.cpp b/Week 03/id_616/LeetCode_55_616.cpp new file mode 100644 index 000000000..cf704baa8 --- /dev/null +++ b/Week 03/id_616/LeetCode_55_616.cpp @@ -0,0 +1,14 @@ +class Solution { +public: + bool canJump(vector& nums) { + if(nums.size() < 2) return true; + int base = nums.size() - 1; + for(int i = base - 1; i >= 0; --i){ + if(nums[i] >= base - i){ + base = i; + } + } + if(base == 0) return true; + return false; + } +}; \ No newline at end of file diff --git a/Week 03/id_616/LeetCode_860_616.cpp b/Week 03/id_616/LeetCode_860_616.cpp new file mode 100644 index 000000000..d1e6859af --- /dev/null +++ b/Week 03/id_616/LeetCode_860_616.cpp @@ -0,0 +1,50 @@ +class Solution { +private: + bool canChangeRight(int i, vector &change){ + if(i == 5) { + change[0]++; + return true; + } + if(i == 10) { + if(change[0] > 0){ + change[0]--; + change[1]++; + } else { + return false; + } + return true; + } + if(i == 20) { + if(change[1] > 0 && change[0] > 0){ + change[0]--; + change[1]--; + change[2]++; + return true; + } else { + if(change[0] >= 3){ + change[0] -= 3; + change[2]++; + return true; + } else { + return false; + } + } + return true; + } + return false; + } + +public: + bool lemonadeChange(vector& bills) { + vector change(3); + change[0] = 0; + change[1] = 0; + change[2] = 0; + + for(auto &i : bills){ + if(!canChangeRight(i, change)) return false; + } + + return true; + } +}; \ No newline at end of file From 8bca8f1443236098dc2e744909dc3a3e5e8ba226 Mon Sep 17 00:00:00 2001 From: Teslapatrick <“teslapatrick@gmail.com”> Date: Sun, 3 Nov 2019 23:59:08 +0800 Subject: [PATCH 177/740] Lesson - 03 --- Week 03/id_636/LeetCode_102_636.py | 46 +++++++++++ Week 03/id_636/LeetCode_322_636.py | 37 +++++++++ Week 03/id_636/LeetCode_860_636.py | 72 ++++++++++++++++++ Week 03/id_636/NOTE.md | 69 +++++++++++++++++ ...5\345\256\214\345\226\204\357\274\211.pdf" | Bin 0 -> 1411954 bytes ...5\345\256\214\345\226\204\357\274\211.pdf" | Bin 0 -> 838468 bytes 6 files changed, 224 insertions(+) create mode 100644 Week 03/id_636/LeetCode_102_636.py create mode 100644 Week 03/id_636/LeetCode_322_636.py create mode 100644 Week 03/id_636/LeetCode_860_636.py create mode 100644 "Week 03/id_636/\345\270\270\347\224\250\346\225\260\346\215\256\347\273\223\346\236\204\357\274\210\345\276\205\345\256\214\345\226\204\357\274\211.pdf" create mode 100644 "Week 03/id_636/\345\270\270\347\224\250\347\256\227\346\263\225\357\274\210\345\276\205\345\256\214\345\226\204\357\274\211.pdf" diff --git a/Week 03/id_636/LeetCode_102_636.py b/Week 03/id_636/LeetCode_102_636.py new file mode 100644 index 000000000..69990bbb2 --- /dev/null +++ b/Week 03/id_636/LeetCode_102_636.py @@ -0,0 +1,46 @@ +# Definition for a binary tree node. +class TreeNode: + def __init__(self, x): + self.val = x + self.left = None + self.right = None + +class List(list): + pass + + +class Solution: + def levelOrder(self, root: TreeNode) -> List[List[int]]: + # BFS + # DFS 使用 dfs,需要记录每层的 depth + # 先用 BFS 做 + res = [] + + # def + def bfs(root: TreeNode, depth: int): + # check if not root + if not root: + return + + # ? init depth's res ? + if len(res) == depth: + res.append([]) + + # process + res[depth].append(root.val) + + # left + bfs(root.left, depth + 1) + + # right + bfs(root.right, depth + 1) + + bfs(root, 0) + + return res + + def levelOrder_dfs(self, root: TreeNode) -> List[List[int]]: + # 使用 DFS + res = [] + + diff --git a/Week 03/id_636/LeetCode_322_636.py b/Week 03/id_636/LeetCode_322_636.py new file mode 100644 index 000000000..79d28eebd --- /dev/null +++ b/Week 03/id_636/LeetCode_322_636.py @@ -0,0 +1,37 @@ +''' +给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 + +示例 1: + +输入: coins = [1, 2, 5], amount = 11 +输出: 3 +解释: 11 = 5 + 5 + 1 +示例 2: + +输入: coins = [2], amount = 3 +输出: -1 +说明: +你可以认为每种硬币的数量是无限的。 + +链接:https://leetcode-cn.com/problems/coin-change。 +''' + + +class List(list): + pass + +class Solution: + def coinChange(self, coins: List[int], amount: int) -> int: + # inport + import collections + dp = collections.defaultdict(lambda: 0) + + for index in range(1, amount + 1): + cost = float('inf') + for coin in coins: + if coin <= index: + cost = min(cost, dp[index - coin] + 1) + dp[index] = cost + + return -1 if dp[amount] == float('inf') else dp[amount] + diff --git a/Week 03/id_636/LeetCode_860_636.py b/Week 03/id_636/LeetCode_860_636.py new file mode 100644 index 000000000..9ef178bae --- /dev/null +++ b/Week 03/id_636/LeetCode_860_636.py @@ -0,0 +1,72 @@ +''' + +在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 + +顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 + +每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 + +注意,一开始你手头没有任何零钱。 + +如果你能给每位顾客正确找零,返回 true ,否则返回 false 。 + +示例 1: + +输入:[5,5,5,10,20] +输出:true +解释: +前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。 +第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。 +第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。 +由于所有客户都得到了正确的找零,所以我们输出 true。 +示例 2: + +输入:[5,5,10] +输出:true +示例 3: + +输入:[10,10] +输出:false +示例 4: + +输入:[5,5,10,10,20] +输出:false +解释: +前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。 +对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。 +对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。 +由于不是每位顾客都得到了正确的找零,所以答案是 false。 +  + +提示: + +0 <= bills.length <= 10000 +bills[i] 不是 5 就是 10 或是 20  + +链接:https://leetcode-cn.com/problems/lemonade-change + +''' + + +class List(list): + pass + +class Solution: + def lemonadeChange(self, bills: List[int]) -> bool: + five = ten = 0 + for bill in bills: + if bill == 5: + five += 1 + elif bill == 10: + if not five: return False + five -= 1 + ten += 1 + else: + if ten and five: + ten -= 1 + five -= 1 + elif five >= 3: + five -= 3 + else: + return False + return True diff --git a/Week 03/id_636/NOTE.md b/Week 03/id_636/NOTE.md index a6321d6e2..3c7a892b6 100644 --- a/Week 03/id_636/NOTE.md +++ b/Week 03/id_636/NOTE.md @@ -1,4 +1,73 @@ # NOTE +### 第三课、补充第二课中一些知识: +* [常见的数据结构](https://github.com/teslapatrick/algorithm004-01/blob/master/Week%2003/id_636/常用数据结构(待完善).pdf) +* [常见的算法](https://github.com/teslapatrick/algorithm004-01/blob/master/Week%2003/id_636/常用算法(待完善).pdf) + +### 贪心算法、动态规划对比 +* 贪心算法是一种在每一步中都取最优解,则由此判断为全局最优解;同时贪心算法会对每个子问题的解法方案给出选择,不能回退状态; +* 对比动态规划,其会保存以前的运算结果,并根据以前的结果对当前进行选择,"可以回退"; + +### BFS Module +```Python +def BFS(graph, start, end): + + queue = [] + queue.append([start]) + visited.add(start) + + while queue: + node = queue.pop() + visited.add(node) + + process(node) + nodes = generate_related_nodes(node) + queue.push(nodes) + + # other processing work + ... +``` + +### DFS Module + +```Python +递归写法: +visited = set() + +def dfs(node, visited): +if node in visited: # terminator + # already visited + return + + visited.add(node) + + # process current node here. + ... + for next_node in node.children(): + if not next_node in visited: + dfs(next_node, visited) + +非递归写法: + +def DFS(self, tree): + + if tree.root is None: + return [] + + visited, stack = [], [tree.root] + + while stack: + node = stack.pop() + visited.add(node) + + process (node) + nodes = generate_related_nodes(node) + stack.push(nodes) + + # other processing work + ... + +``` + diff --git "a/Week 03/id_636/\345\270\270\347\224\250\346\225\260\346\215\256\347\273\223\346\236\204\357\274\210\345\276\205\345\256\214\345\226\204\357\274\211.pdf" "b/Week 03/id_636/\345\270\270\347\224\250\346\225\260\346\215\256\347\273\223\346\236\204\357\274\210\345\276\205\345\256\214\345\226\204\357\274\211.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..e4084f0a4807f0b734102bd80ca0358b31db4799 GIT binary patch literal 1411954 zcmce+1yo$ymM)A3ch|xls&JRW-CYZJhZG?YTnl#s1b24`?(Pl=Zh<5aBm_wEIHym) zbNjv9{ofv=|F=htD)wfsIlnd6_szNXu42@bmFEO;@u4#=ouBQYg8)E)yOk5Vm>9Q= zmo3D{-3!2?=Kjjj#RbC6&jkdSvZz6<9o>A~y&XgWN^U;3E`a9?01X|0Apiul0P$M@ zO<4ib9v&{X2DVlzjy~M{yn&b9yrTWe?cXG23ZM>iW|IdyJf zE?zDWK*qt#-PM*`ke3ViJVxmG5)TL<=VEK^_25TFCGgLpaq<(CzmThq(k z#@E{R8K{o4BZT{TJ^)ui-sgY(IRQs^H(7{}Er3Nkoo!b zY^UaK^Iw}tNTA!g+5C|f-oMjh4FQ1Axxs1xZgqDrSBT5sMtpx8$w>cU^lzrBGJpK7 zstf==zZ(E}o&&1__|Um^qyau&zPA6|7ysYBp1p8A5Bg^jLH}U(e}w!a*ncl156|B* z{|jf&bNLtW^ZaYbKwSL)nmeI?4I39o;Ln5iU-HWPuY%+QfrOur=SBM$rq1^dSatn9 zYysSc8dgrvTz+11Un`$KugE`B2c28n*4y3J%i7i(@GQG$I$P`5`gj9O{-iRut}WCD zz^&v8v9|^P^(ph$r;-^uw;a?*LC5D0hCh#0;064_P;H6lx3TWfcl zXO^nky4m|U0Qf*tn|L9b8yilD+3~u@mo;kRwseoB#7JeN;Dp@Z$s$JNJ3}n*4})o;dP*$>9l}SXZFh`8*ChwJ@H@?o>f^)qs{$EbNkJNtt z5NKUY*^lv%>@wBi@SeT5;Oi`PSD?4$HLM*wsP!F|CKNd79de~MY2A_x3Ey&P#SC9bZ(5%FQEYH1L?9Qwo;5~J>Ft5}rh{8~p7(`$F7D6d-h>Pc8M7n= zxjAF-culw;4!6B1GvQ?Ar}@k-<5k-%wg6ZM`L}wr^OqVH65Q6CG6>ehg)m8vMb5#xE?F``mgVNg1{C4#5*0lAKad-7_ce8c- zbKrkPSrE@ZGS=FXlpGEYt^yAJ{|5hOgumM0{{(miFUYg7{@Zx@{t>UU16d;{_mCTkK$tZyz+l8{{K`J`m5mZ^8cL;Pjta&3IG9|f0S4u zfc0|?eJ*|W-p@duL(96OYoY&>6#YYA`+uII|B-t9S0;FXe`n&adH+@90baJ~cK>YZ z|FCb7_jR-OdEOQMnS$p|ChP7Badi8mPk^3#gf_&@-uB;5{)+dHx(NUQY@yZ;0B>Kb zz<-kBf7tr`TZ;d8d-`|r{_pnlhm`;9KGH584v^;s1n~c{K+n3?)dukY-Nyc^C;b1= zqyH1v&l@o}+rPJA`~uJJ{)34BTVVbW)W1>q-x2)5x&Pqr|5-nO&JI5x;Q94ueiWW_ z@n<@obEWV+%ReXj4E6tzp%CED9mxN%4Eg^-hW{?QKfwK)_=Nrt-!mxwKhOUF_fM|> z-@Fm{gTMbDsr?Vlf?wcyU;9_P;1&AM8^(XPIKs`3cN2}2J}pT&8Q7Jk-`^|7Anl>pp^##tAPRnb`TfR~_XFbeP3I+q{$os(Kq>ytqc3#y{X8L9k>*#TO-_dozbYCv;U8=WD?Qe^dH?`+a zzc+gYuRGriVEp3Uqxy}uGspaq{st27 zOBuH?))h`c>Erj_h5kAj+GNp{X*8?kE5W}*CHRn6rP^!>HYLaRP)?}Y<3>e>*;Fc9 zbuk+4OZngts%V`lcTWe3;H;N^@(r2$3-1 z+gIPbvoHa&6rMj^nzgABkneuYd!((5T}(O!p_s+cuX{?~?<{{`*PZn!4?LwCGgrTT zJ;v5GFHo5JP1)tmeKLdT`;2f8g<^#FWq=M`{;tcg0j*B|YMjS{kkcWq?PWl8`M0n^ zs*#6|F^Ty^j-1Z{^oARk#C`Zd?~wUW@Mhi?+SB8^xna(- zQc;$>p{?y(4J5h2IzPowe^GDT`fktcEf&fMv0a_$%&D@;FVF^T8w8;aYK*Z*21$ka zcNdX|kM~M~IqbA}h=r-w=4NxJL#(0_ z<3`$BaG6xJERit`to4QuyQ9=m(&NaBe2A!FVO}>MFM(<#Y=TFkQDbrZNoFm3L556e zihaqL=ys@LlAyh>)u=L2NGs%u`I4=umy-BF5!P+24%?lMmg$1 zV=O=rZ9!GUn+T{I?&j{jiIp<}_~v>M=V#{oz-+#UfW3FTE*6kpKGRTSH)@S(Xi+s1 zv$v$a;=X9g&daAgAfo49`Az8oQTi_Q;}jM99%kU_kjUc}Z7~{~t8Km%1ZGw3RQMHy zbOy%v?vxpXR_C*d$ciOWbN@oe5L^BERdIK#d>3dGow=Kjqf<~rqZ@UzH>6&sZQUoS z>NfP1yP7xEsX;TEoPv*`Qu=dH%N$Wf%0xXjSWiI@-AZs^o-myw*duwPyVw_ev;M~23CS2|$tkZh$_oUbZ9T!{S-M$W zGKQ$VEhV_Emq+W4T*EQBaJVcd+b`>L8m;pE#07QO}ixo*XzZoLm}1z1q?%sv(ZKLTPz+ssSYM7 z>f63HLe9(2qPA)Y6dbHETFpN5zL@YJ5UvC9l{(3S@fdFxTn!vbz?CjP?ptC-f*`)E zW`lXym9!_%0bQYtI)uO~S8*_DBT*W4$bLw?iDK=gIEokNs>A)z)4R|&ndpoc!V!Mh zyUsZ}@sKWnP^m5ePO(eD-^@Xk&ttV6aD$8FBXnk}PPxAEpfdK_)EuJlA*O$NzyW^| zOos%)tLL?L7%#ba%eUf4i`T~U>%buC9#R<^ari(Q48Zg+1*1w8#mB|&(_VA#6^?s2 z2lnGBt!x}LMn1L+4boxZgz6v_9CS(pUrREdm{0(m0M_a(Q8E(wiO7BL8S>5xa_RfY;Z-qNS)CFIXFQC-xRrQvRhWUmMc(ZmfwBAu2|lD!Qpe*_b^g;Z z9adn-x`U>UhCB2&2`>W^{RT2nph`ZTKW)gTQjc7We3!eZ%$$`c{@e6J5UtOv6hK@3 z2LvBq4WNYaNZ2A;M3}G*P#852lQ@Hxua$j=uF!q}siv!vwMq;@i**>|NdmbxiVmIsHKyi#nbmM4qHde1!;SggqWbFCk44uxVYgbju{)Krc24P&tXxEI4`7rd?uu}!4~}JV4cU!!KI>eTPATd53NsZsAKp(YVvpJy zoze>_^*b!RB;V#JElZdMAB-Qjl&1F@poqFzU}SWW6uQ<(iz)`&PK;6-dZFHhob8ne zU!)F)OS0~A;gLRdJ!U$NQImwL!-7IUT_Ih{X0*n-H+3bFKP+E96I=a4?o}@?zG~fq zCgbozX2kt6t+9-}dCWsUhqEcL(=rT>(-*s|I1y=Wxg@gPWf3c5x(Sp`|&IZ z+*gb@oCA8`SL}vJ#P-aew4vV?qOL5JGdhI?=o>md`~=};!0y|}KW2x1X4+5- zB18e=gnTC^wHX)`=v3}xnoHuNSdTWJ$mEkJ?+&88>!Y2ziezexSNEzUOdB0kmAgD0 zSGslOMqN^iOD;w3Cvw&xUlttm?AMr8=0KPeu69(R(gUAQknNBlm`i3P_0<_{$Avyg zKRvkpL~Bd0w^zL9D=7%5f`Cuz@h%`@!@^)3m%Aa-3|8l_5g9&~kxilV>=Lky)WPm# z)QNq&TuI$3A+`qYPyjI7`g=b1m~|>+_B*(XF@0pc7^MLyg%y!QM=qIXTd*B+eetg9 ztC@2fk@);Q_^=S%xdF|GYC=(A)l$Z%FxWWMF@`}orRJ6QPgkajUB%su`6Na{`e`2P zJ=+^v9_vahS$25{YmSDMX37bnt#Yb-enilQW>GognptKMyAxD-x^IY#<_K9OLUS3_ zQ+u1^$gA-#av&KaNT`lTIo8Y@&89VXk%>cQu+jldz-sHrX$n>S>h%Y<8$>px3@dv7 zxuj(ld}Y|WOajA)E}5Fa;Bag$$rK@?AV0K`=!u+lCgrcew%Sn+epOlhzIcTo4r?OW z&)$Ru5wN-7a8)NqExqxdMmn-7*tFur>EubTs}-y}Xhu71Iawr@j{0z3uAih=#N)Gm zpxukDiM!^GICJ8RAiq(;R7P|J_s_IFgcOK1+;qp`;}UqBAYGiN7)-vIM<{9v85aX0 zc2=Rb@!@u-Z`nzzod5{4)Qyz+4wXhcv}p@MC^C-)FlBv(&h$_|)7;;^4O$%eMDpv4 z0U9GvNi{6)hlh9BLVkc|xa0@avTB22Lt7>A=XG-d?C&lP0kr00z)j;97bW;ajax^z z_){1?Y^n3$JeRT>f_I+Ui=#^}t-l+m(QQAa$D$A8mi#CY4QIx$aR+fl`H0TGStjNz zSzm``J3WPi0pi0oIA;*!8_GRjeJxhz7169x0`$*M=eb|2!S8d>I4IMO4OKBGm!mfP zfY&wYI$xWm=FSJ%5=e7y<-yr$k0VzYQwG^@ryVv+-bttjlp*FI4AA zG`48Olc4Q0?Xo)ACLn+S%dCm&!;$aE=k%OuWi-5;`(rj0XvN))m6L_eTcTOtq7e4D z^wIT%^#ZoMbS8pWzbrS$GT1!n!z$K>bhYy8M$T`R=>+8QM{Nm*l*wd_a!lTH_ZXci&wG=1bM+)8ZdwTPA0%tI{ScO%c zR+FB>7c&k4x!xoNOeh3q2`5IEH?!Mmz`MGZ_Y1-kGsiwJLYxpLauYE5Fm-P1d&yYz z%ExMdPS?ns)>9hGuWH;MGxNZWnYC@XRb=C7A1Yca1RwQwC2SB2MLNf_oVr;~ip>YZ0Mre@eW=+0-hC6B?c!ldg08LRsI!w{L51$g0`5@4L+(h<$eu zo*}9;!qGze03rGQS%klysWKs$jme=+)>MEdD7)(N(GdQ`u)#BJsa0Rx(s)yXrlT^TDw;OcSCR4a+M63uKx&z@mHUIgPz& zQlG5)8mC`srLTc$Ri0#yKUzkPJ?; z)6l1U_}{Tg#ls@33r}Ax->rsgfpH5eJr4B061`%u9uHXzwaDTY|reB8B-`0t{lOh0I_DY$)TcrJYOM!|eAJ^W8 zs^Q2F;G)DDY$@Ko#d|@YV{?Wz$jw+uzDTD4TX?}BP#e{-mv#mX&%zV_@fB_C86CXD_WKg#o z*C#0RgbB3<4&bV~w(lGLDCZWMC1I+luefw_ttZ@L9A61dKIW!>oo>VX_Lrw{_Vj~x zNVYnT@FVdHYQfb?#Iz2qx==fHu0tE4*acQpDeg`jwugsgS0=G{3h?rjX%n{2J)I~P zU-8Oq(%Y7z&WK`u+k|ZJk#}(oME8G~eHpJGzp7jD16clPDV}zZAxt9NTsanUpgtrV zAk5&*k7l%tQ`S{vjd&%Jky%2Vg^f^1t`B1@LnQo72}s=6RYPRuK;Ge8976MmBICi4 zH)gRIHcXL8LVGgIfwe@Z3p;iw<18Rz_i@CZDWF7z1=KuDdGqyb!%b6f83ka*I@3IW zOV%B|2veyBHyWpS%f$6O$7&qEZt~YX#JS>TximWJ5@i?Y(-NJt)yu6bu=Yuok*fHs zJLOrt%u~w16G|%Go60m);Y2r2CX30C|NRNEmdR#ul6oXm!j#eAGjcJe3-5!mA)v~CP;GCq$EJS0qRWdAl#O0&%A0r?8~8@64Z>F_l>2V9lXh-)(MnPO%YcIdX9E*x~YgZM&P_QVU-K2H21VdC!LRt$%l!z%qKW{zh z4AT}Uyrc~&pKuw9T2xxT4Gn004C|P)B?@kkvh;4?j@oTCi<;)z9O;6gAE}OT<0&^F z4=o(FDdgF#02~hCDp2a*PWMunOd}z|YYOST*FJ~_LGM?Rqh0X}UuC}g_=R~!<>^Iq z4GSEK%L@NPq@W*Q4f z%wI--oAEW?XVZo;35HDH8iB&oKSbO|g(yunU$>QXE~5kLKPUePAb}RMK+bJ*FGqQS zkDs1I@KIVDu&%%imzrlKW#?TWzCCcfl&>BZ#`mmgzlDvI5%!T$f9A`+JDlt_Hl!yB ziDL5@{?8Vhis{7_{$>US7A;5@%`Bmhq-83KvWn3|p~n0R`@c4HjLMg8eak#Yp=PFy zglLuF5r%f~B-)YbQ~4+=ZlEemhCRP3i(!g}X=cQ7{ZS$%3IyfBp2-0jXDd77B&a!6!u>MSAuh zl7!$Vh1+C^mw1wx#A+gP)`(!pZv{UT(GlDr9{t1(R6JL8On6I5bv(_ItHMlpWhf*Z zMPRfwII3G7aGT;$8kn>9qS%pLwH$dnIXQtot*3R~O`PSjv}-g{mz=bAa}m{ z8pd2*kz+E0Q^!p9^d)nIGXIbCVS_mcmDj$R zd%n`bZ^?xiffQsXz8DYEAIh3Bs9T4M=kofQ6Gy&^WVTAPC@e5LnNLzISA=rycd8{;(rb?Q0s*B-ug7rRB?sf|1VEyD3JK|&7hXkXZzj}Bz; z+U^$x`fe(4Z)lw=Q6n-&8ln^FR9;FgimuI}jBO2YRztK=5a@tW*={Fc}*wIx}Q zdh8~O1Krb)===@?$8X<^=(B0+K(dGJyS_;?l(|E)ZJ{5)SuQ;0C!zJb>fS0YzYj&^ z!Fr1wR&ddc{hyqWi6LRY2?;f+EL5jy?d}B0rOL*B)`YyKRUzV)%2$r4PFu@jSgnQw z_$uaOZF8Ar7r>snE;{tja9+G2I&fd;d>=7H8D4?SG2Y$>T3oBVk+R0Cck1A!Y^-jUrc`zNWT$8(p#GCBhWY}QYiN~ zb7>2=i&}ANb(!%n|2l=p_jY_iu{5J3ak(xW*+CJlYjK+J5t5wPjA$UoA%v%riL*f& zt;W#JH0|EV&bvvn(;GKpR$xzHt#v`>a`7{J&U&B5%|nBS2Q{aRDL6Y-6%!ty6c!G{ znQZD-M`H*iQt6x*Bllkp~?aGQGn1 zCC@~&O!~TTcL&GOa5Z!TxJelL2qK>2g4NilagXJmvkPlTlX5cRuS(KMQg0xxe?O1=9;9Yo3 zI$D!cBhNZH4~!z`kjmJ$>rTH`JE(lGawWo^h-#nLex<8%H>Ym*C>BN+C{*Go_9K%4 zB)I>`QEfC{6N2DWXg%MkDyg_SLB+!)RMPH07^e{a5&@hXdtMOclzTHxwMVTc7O_b6 zq`qA_8W@c=i2wTYy&(gAXRKz42~1I}ux)nS+~f zEhzy`@)~&2UsxjTX3}_Vz)mrpq-n#L)8V%!+UaGBLa?`Jc3#toYGe(hX)|S-6?0A)=p{Ons&+pn`4^MMD_5^gs&twwv*i0E-MNat03^Wt&~zxc#{w{k57Kcjf3 zN%B<2G{_7uQgS{h*Mq00&T$k-_+Zf=0mC|mklqo!cEDr-C z^n9FS^gr?(04h=Vce%zOp;5KnN^%7N;hj?`Ufd~C4kK;-u5u`+N)}WE^wdJxE6bqA z^7=Bf01O_Sa&+{Rs?%+@?4m9oV38nGf?hR~CG2|fi=qRks4`PNZZ>FCDMFn&5SOCw zqunjcJ@*u#=EI3^6R**o+*uIcOG&7sUobEMZh3#EgwaWw7;qJ)#c8$^C;+w|hlbL8 z6_Ih`AmCm}Cc+;Y15jXE@n51RV7$S zHlZdWr8rz^lv4JVC09eR`G|BZa_|)?SA)?u#&r1{(GcsV5r*eCmq~>_#-ry}IIVty z@cA=pJ-dLhleyq)I)hnozdGbs15EKu= z$S2yml8i&ahDtxlyX%OZ=t`hebM+#fd`-qFc+3lwTpt$h$5{p<4!&wKgxM^`ZZSmA zbCiOqsLw}WijZtpK87<+d~+n7d}b5Yl$QNyXd5o`C*g$Mi!Fz`3YyliTT~t!dbxgGC(#+!K>O}Hj5XUZ@h%7w&s+0%Y(x47TdNW5g zg*2W1r}F|{q;Vr(RKHpgHJwgO9!zQOg0dRX((VkUd648XpiV(iut+et9Hls0R_3Wc z0=muqHms#eVYEs>xm@ksDbAt1C)B+JYHP!XulY1os&|+e2PfB{IBF= zk7LXnXdk?dmSmUR?DF{WtO^BxI3A`vIKpXT2rz?P&C8wXORJdMCXES$0N1ttd82r$ zD$zP-JqIatfU;0LC4A(}p-wJT5Gz{+Z$@h6;!%L`$(4Bje%bREeA>Z!hi# zSo<)^caamm=;T7ew24*7Y_mKmPFkAYX>^$=xxf}y;Sg5Wf#H{?g-X1x!x^v29ImS{ z9H{3|Ip`xNX}F%#Wu%Fkf(|nI88kh3>1%B%+yC`c-b1DMCC{fI)KIsu-#g-sX$jt3 z6f~7CY+GkXU~%Qz@GE0iH=ZfCcJ7{#-e$ZAVwaT12&jbN+l=n{1Gjc)h0N$>z4A zyHHGWh~!9|`?R7MPGsT^i_pYWrh`LA4qhv)@*rQ5_K55MfM9-Ns*gMwATIw9($2ZI zTL&n8SR_SYzx5R(4tB})d)RT;)!5@Ls`ExIN_CLY{37feo!&xH155YTXl%+?q(Ci~ z8|KW6uv35E;V`MK?>|0M^%L<|leX%f`xR$pq-*fcU67(>lf#zwQyVY|WPbA7Y)ZII z=LU1AgbG|(r}9l?kX~|-s5L|=t*IhIFil50i*{v&x)`@gpr9Ilcy!WgV6uyx=>)u8 zYg$eBs<$ofNW7d)nIZNuRAEU2LN7A0kC5JRzBKxcHepkzJE44%g9V{K#H9QZduuL_ z{T{QLo%>`ZOC6(I+r5)XcJ)H2_;4n$(Pxa55`U%QjIG}+s_~$HL{=r*HgYoIfjPuHn=h!F*S@= zs2wtw=-;!__Zy*aa}QW-WS!XAf7jTK9CQbDrAiWrD-FPEWpX3H#;1CDUSUGzuwv0c;(%& z2cRKg2A+7#+j3N=hwyPgix9k}b!oz&F)`tbqVsA9PngeyWYf{ZKvUMBGa<=04Q25= znJnWKTXypCPbt~fQc^r<8X9)bR;#eQ;#XrGV=hwg(Hk?PMsU6}AFkCCLSOZD~%(R_Vm zxV$_wsOSM@6#Fm8;dY!*%~>Da!3)-Okh4dKWDJ-|u)yN1&vHsWfzpqwhitEWtQHDR z8x;qI@E3{+*vX(r>L5DJNueHyJNGWOEc;42G6a)p3uJ1vb}0pPlH>>wqfl`mCB{>X zZs6h6G*2gNRly3u1CPA29lXhM--)n)(V+ZYp85(viq%oS>udVS5m{rzuxwhoS!n3E z|4LE0qydycF=YM`{WoZyoy_QbKS5ERr3dCxOIjI=8ShBjq>UR0tg5No^`*>Lbat#` zYqh!wMSr|fG1)8Xk@fz9Dv&LFUkg*W&^ufmG$dj{YxR?3d<#?OQ4`!ARxM6Mb27=}Vq{mHpL4|XWLW{6w3vOBp_qO6mWSp+isi+p*76ObAh<)H+d zY${$@$*SA;)sNPEa+3q+MEEhn@X3oshc$f@EUIBns`J}k8a-B{5z7YJNP}jCTm7A3 zWs|?^Y=5e+;ay!&p@c%LvhZ8glTcqJuEn)V^h;^irakblm!-Gk*CR?kKfkU-*|l3h zNf6b9IgAhbnn4LG+g62Nn98l~t#*I{v5%beQSv6znA`Ombn^Gksk7v5a)^vUxSS22 zzVSNqi5>~`+vHX_e|jMufm?^j^dfUa**(IxbOFLX8(5jnZfsjpLl=;aS6Ys%AG-%N zr$tDdou|G2kw5+0SF&G&Nje)7xq(>R9>bD&)~0SUjD+i_4YrQ@%6m74&|y>1iy>Z6 z_Qz94jq(Uwjn>_U_aRokFOz>5n>ROjX3{|3ku=w!(@5`Lyk*5dW>9Aeadg80jJ5;e zzl=huFw|5HF1xx}@ch)AP#+rlNp`G$k0#2ee9qp!_DnaeAkhGN$obpRdxB>VY>4W4 zt-_89Dw?_?0jbwrLuLgc0z2&{go%xCgq9IRhVx#(c0%J{6Gd;5W0cTd7#m57Zai6$ z-Bso0wQee1r>K8((F_(4Fb<73Bt_NuJQ#tGnv%^dy3!$1uY`)oPNH#l?mtK-f=f6u z**2V`lf4@OQw{9gp0Yx>Cop5q{s`=4uUUy*I;OQ*rTUssn+|CbQ1X3MD8Y)2iJn=9 zCW+P-KTfAQQoc&q@-ra-v1KWlqv2Z~%E+ma>)`x!=_eGT&TJq;s@f4S!1jQF+}zD2 zs?>uirJ3i>*bV7+D;JiG|FC;gW2s#bbQe|E3KIBXBIUcvwLnOn)oB2^MpIc6r(C$^-Kedi$Rm>+m=9kGtPZY0vN9^8`XWcqqt7OfMfp8$ zxDU6cq^o1>wCLz8NI%y9ULMs^=uPHaJmp?St7WUy#z%Sl>Vcoe6UFp(Xql_(9HpQ7 zef%{^!zx&E_U}{homTl`gF_E%gG_w~403I1WdREfLiq+Nl)Oq+`sAKBO&~W%KafhP)M)vI z2V3ErhW9At`!Ve*b1}QlMzm1k=(n};LmR0546Gx2T(Q{06Daam%stb5_+o^#Tv}>Y zcZay&=-NkO2d<)*rTwZ(YBQlonh7j@%)ISQdxk1_azP|GRV9uy& zEph|*L2fA#6?_&~f_z#(VRwUC7e@AD<6qr*9LJT`Ce)ocEG-YOComYJiXG2LQ{ zT-q3Nhx#K;3zA=g;%{W*M-a@%T*vECEkrUgX4q9is`$EJvZoOaYVPodl#dD%*`4XD zg_-q=7@?|}D`=CfS<^=zehBZvHZ^8@uu3~YV_pkH9@8!k77E#G0e9$_77T=#DYG#QIVM{7*zSLr3N_HmIQTSdfv=Y$tfD-`x_UXx zpvc3zymrgE-3Z%lA@|5&UQV;&V4+Dv(i%V-RaC@?v9WF(F0i!Ld!KjTR9`gdCwp;7X$?` znB2i~t4MN$o_b$0g%UK=8R}uFNSTO57eZnDS(a}4&<`zDm(qSjhKMsBgfz2mrFX4$ zuI$oWh)Df5so3h_1)#hLBhPF`18$ZUaKU8ND~L3OmoyIgJlA&So{QEpoNI+Rijv>- z+w&jiguT@y084<_7MV75L7Vvt$hw@q8~aybFP)D>wJ+ht#z_^v}mz2Rd2-u?hP-QF5K+;F1Eb$48Bo zZO>`~Dm-)4htTxmS_>p=Qob;R_v;MP_Xd_H;5V&1uu8D8dtvD8=pL3;jVq!=5d78^ zA9*NS^r+s?yLs7#s|Q|ms)$YL5)l~1$_P%XZ8sNz zS0ikD6DrIHUzVWI#>T>6TuFie0YenfR$jc`L`kR$S>Wma?9sdQ_;#Hpqpfgv{T^85kIk7f}j=TX1|Z zm-M=^-|*wZ7r#V4aN%q`P z@FQ@2YH%*Ry2;>w0>bc}t723dRg%ub^Wl%=@_er52P3`MI9=znwxwFs3VRa*P<{e! zYeR%QEgX?|P2kO5u&I)30SdQVEVW9joL_kPlw3U^{A6+t_*rm8dgQ5M@n|FHzT4iH8{+{x*f1v4LMZ za%|<6NF{Th5dG)q~GMruo|A>;HIZI(fMdXmB$ani@v=5vT zM&rk~zLhi$l{VpPjUgVtETu`5s9=#^3AuJQat)B>TmUk`1Lv)bbo#;`;mhx&ok__y z9?Qm^@AQ&Q=o!gaTU1c!WHi~!i6UX?2wAYyR)aijLdC-Ajq-FIzu%?)(f6RR97dZ{ z`tWz}ktkSP^nzne@hgB}d?SideMyI4wC{2${>hrMy+x@QXYE$Uh6Y8)NreJQ@?>Ge z8S-@eaC`KWwew)ANOXwH7-MJ4Ny2ZED9_ti`?9;J_hI{TsxQ1(OGT@&8tn(?XKka6 zJcX&{^p}?Fh{?&%lPYiN=OtEId%;QoBJ zmM}}GQfN6~>qDAucZD z79_R~3+?OtL|1lRfJ;8PvYpbW-Lhv4m9r4>!!D*(S9%?V`bCNteZ*s0ed9!@#x$0~ zX|VL_gI^TPnoN`42bDukhSVfm)$?)vkTgJJGwH6`z`$p4@vXa>VKpM(l=Iy4?p?6# zmoxCNsvomXrkQ8wTFJ~Ye64k~i0P>#u>4d+gaI*ZCDOC^C&KO5EAOA9qDaNfB-_fV zCSbUJn?%0PtvBpLrlnp7wuK)S3uQ4JM_ZBdy}0tfgJ19Rj(ulbl^H{Ny683rX=K;O zJ^rfEIkC`tAHN?NC&ykQChFTnrxA*w`;*Kxqn!p^C;En-}E>*{`%uFuf`Wv zu~San%O=>bay?p$6yS!_{ z2m4lF_FQzGtH!5j$)uTwjuWyZ<(|}Zo=7mL!?5~$9skoF93wL;P+6Qn^r$3dYeLl= zU!DmXjvu;dyh8qxJHT9(p9SeCO~0_(T6C=76|Ulyh~L}rCq;nFtHXe~>1$aei6DYP?BLfLECjBg_N#F=CMnZ|Z|`UlHJ9{;>7g;)c!|3~ zN(l-AYXpf81@Uge=JvpcTWz_Zk%%i6Wekq79d$4GTNC7H?8}=_Yt$IC&IZF z^!Ml8PZrB5!ST;*o7sbx+Rd=ipBkpmfhl0yH&u4=gn>ng5|tAdYFfEk_&TB&9=eo{ z7*6IE-EF@33hHCSHQ>kbbSV!$U`gppXP=ibwF z#?($3bXL<`myvw}R(*;{H)5TR=Bz(IXY!}og=_BXvW$_3QhmqI+6x7XuI$}A7X?H4 z-kC=D=eg=}`T7S^eMb!c{rggcSUc*v(580u68Jg7YVEkR@FN_5f&A5Xy*vmxlU(U& zOUwFO({s#wSn9-KMXP>04GkS2e$CZVLg(um7h&;_HKa#|8cacxZC_g0Pv`>eT9wW% z6TqoB*QIIHecD>+Gn;?bC%Se#{m4NTib;N73MQx-WtwMDwGvZQVHcL6&iv2dqsT^t z1bZRLxoqZo2A#$xy~mFB3eyNV}-McHpIlQ zcgNX2r~Cx+GiSbzRyV=3pA{# z#pfk^`vOj^irW7Y&$wq*d>R zzX<_P%EOp!R(fs5rw$c5dmRJknGQM#DQ`KgSp8t>$aSPjvx=S(dQ)UEpAJ`zFHL$h zL#>%PnPIX3OOV{mqx6ZwYb^-`5V{x=w0rROi)5%(JIkqTGPRCdJ|XRGR)T`{3GXS? z203fEPKQ~*qn&Tk$T@T@-f@J!0OfG%Gn6kQk{hPr&+jfXf2BAWPM|v?IHe976E}H} zrxyI~WnqJIX21sCNV7J7362~rgDWWJ+cg=W#d%hVx|R1^w&GrziPXF&*Ge4mRRvyF zjpkKpdUFMUDoA>jqsGTKRzcgl?z~6gpeb^KlMC;&@pSfQ@+(v=w2z`(@awu&QM#Ew z@sIk^d5LRt86ZlHx!C9rEnQe~!QJ1{Z8O{2xvSOK2`njOriL-f7@@yyA^(|G3 zfrCvH>N$gn^IZ~8)oNlE|Jj2G{74U_K!s?DWn>JSb;|ryPL0FVaFdpfuxGRSTbnGz z0>$38w48LKA`UyP_brJGe1unu?T~5jeO{#ecQj1JkMIiUNyG0U^G6)>R#B)*HQiiu zoi?jR2drY4gh>7IHamr1JbWZw0+XoL6_bNP(H!`eq5CBgxv|RTQO~L*H|D|W<5Cqw z`2rJB)$nEue4ORae-)F%^&xB6eEL*4s9#6%31oxO?2aE^8X)245rV*m0Eabkw+%uc zfBEA_K=n&>5(>CX-C1L)H(nHc^}G;3L8%zUJ1*|!T=e&Cc}2K22Ht2jpr`?hd%XBa zQ*&7bFss=}Wvl>k!(}%5yD%h`hD5e^$!slwW)Yrfow0nH$hxK0>2~akRiYck<5Sr`7o< zlJa(Y8jG%*373Q2h`6u05|6VHaWvCycNT_kUi$tVUno8qcYS>|aw3sC!6W#s*u0x8 zz_1v{Kv%C|d}G7ixNdn^)rlj_HY-_A2=KuGUAK&EAz&KOc?d1#=Nr@`!LN zRvRM>k4QT=c8+$=&}c`bdaSc+Uj2ZTy?V4UoV5cLpG#|*eB{PEbd7&Y(^2sgZe5dy zrvmV$_4I~bkj?VOroPu5$UL(@56O7uTwa{n$+_fs0+oX0X2cFdOyAKFrtn7nPs3C;EcX;#?P^k}4+cfDwVu}FFDBCDW8Fx> z57)Co=7b)eYZUlzpq9oRTV2Et=aL%fn-RsHIc&L;ld3bst*g7fDOulBetcq{T7Qj7 zH-|@UcrEfm*WqBOhQ!DHe*uX=cE8wP$*_R7`EJ};J2 zkDP>|$PisBX^S+52Pp3cCST5F=QHSdSjmmsA`c;kPLKY0^{It8zr6JblT4GyZwsS0N3^1n7a z6$0Q~eEg+8Os}ZeNrJ|7x$sqZ9r6zFTc9C*=_aSrLa}Xm9<1-u_V%GK%)ayI|Mk^Z zU+(+AIr-^dojdWD7f$`f>e>JO;_1J*c>1RsD}So~{p7;QpI$ou*QY-7pZxpP)&Dqq z?y#}Pu3TB0cRL|4>EDOkp$@PGFw^J@JLMCKFa)d^F7JoTY@0@^tQC*L;P#*mPFEGG z!}Q$s{51-3`*@b1QR{9CjnpY~$bR2s+hBo?f$378bGoNbIIMXcEqEA;zBH^Awqsp< zd>bCo!gXbl*M;BjH9DSbOoj>tqQ-6K)u1#zCsaj03&y#)6&DWyfq}SiAr5$jvvQb% z24c*i|GKPo3QtXNDx<31Br#8~TtBa4!AMj^%tafVQ=1U0tg{X7r0gV4W%GKMNC z$vQC+`pi05Py<)+K( zKvRuu$x(c!7!;lz^_T`%rwXTjka91;0sgMjGyElB^3?g>y!$NtVx(R|tI&oF(~a;t zD;#)lKEHbP>IWBBe|>)T&nJ)n)tO^IUBB>?l`}uyxcEn#Yk$1G@}upG-(S7(qbn;v zyt49#S604%W#vb^YyLm^l^<=9GKbl?m@%n|oT)XhEmv`S--#lmRX4hTgI>y&|{sz0R3;WMagv?FOz)LWrL zF%eKTrMOuh4wA+6e#Ba-xiOZrOZ8yBRFcYWTyI3;9E#FGc4PLdSy`=|X}KZ%6&qt2 z(`2x>SLb^x7s__cc~)a{uI>jZvW*``MMThs=tGp?!V~&RlQc%VCX!i@ycazi&un92 zB@eIRyN-~Sq!^gP>sRA-AVNhLVtpo|j=EBX0-s4Iw}+u$D6lCZe`J(nBv!^6Btc|+ zYiQLpxMNQ;4+q$iq>zkd0TAL(Er9|O8q$nND9Ylpx@MsrqfXqBF@RZ}SaNQAIkS=7&IAf5O01p00q5eu^@u)JqlRD?*@r7F zEtIp^SXT?fx-dI5O3%oSzb2j2R8FV32kYdOt~+z(^Ec0){rgkL|NF}MKRa{$PtTwH zli9@|Zmj&_&cz??torEl!uF+?c2-~98iem{U;6&;%8T2pKis_VqurI4F0cJyd*u&z zSAMW@?)w`T|M>FCkA23px&HHws|P>dJ8kWyJ$of&tlYf#tQi-dxE&*lRH|EvEDc^K z)|v{;a#bmKU8e=j>qywCz^Gy3t?-ni_^hj*^G)^!oCQ?$tXx0B8dlW?2Rfu!y2;B6 z3jrE97k!8Vug;53a>B?x$kX_!5o{XTHeszfD{DS0Tni>#Iy&>vGZC$D>;NchsVgfd zv-GUli#e znuGvP#aF@~3s&QcFyp~1OFbV}721)aM#f}MleA7fRzRKQp5dtxPL(w;KQq4oK@);& z2{Fg41X@l=iNAX0g+36>slS5PS*e~X{z8j8HYgqok|Cflt09I1lp!+bvIkF)rm6A@ z<$|kQ1Hfe4&v~6wLr@fd z`X5=@+Is8k%D?{hw|{f|tS7*_e6xyIbooZVs8z z@NakJyBq5-?W}O9dU0pXf99p_`0fub`|N4u4^Ex(dDiRKt{$~^ljy3YE6@;OBUV+i zb&B6MAWX=JJ0S6kX$|i(tzQ z!Xve9qrb0t9SK7g4RI(QQ>V#6OEspWmMRuP)=qvdk7C_?fvl`9S67FJ_A;-lnc>Lo z@3Eg}HQ;FjcwJ$n;VmHaBnUi=H$bu0F)4=p%|%0?oakpRP}Ye zO3aHk^zvXnGhJ2(L5`u000i6vZ`p_nolJ49A|ZSw3!Y%oc|i;9Gr=w;4U^EzIPOXL~KiN-j$Ys^P$mtH+}>hDh;`?KSp{d9Kmk7gHsusKjT zp8>tJyZXZAweM}N`SiyN9B91o!uIO-wl4k9hpNkK-`!mQK@eV$jLCn-zx%@0+DpTK zuKZx_{GVSu{qvojLmi#=SrWS`R$%FH3n&*_>tGH!guzx>BWb1yNg~^qEy@^NJbpY{ z>xgXE>0|s+ZTTyaID@GA%J(JV4Tf zB+be1yFw=yYT$&xYyILd2}N%5N-}@dh9o$(Q<%mvUGBaN>j^4FC2=myHscQ>z_IHN z0pd1N>}RB~r%;txc8l$k!gy&BuhX8>NuHYomz9&H)KZF1NTyi5FvF4n$dQ{S9IZJ< z01Cn8`F@YzXOAKHLZia=##k`JqA|jSurFp=Oh>;{UZ)a&;%F!|I|Ej1N-70zdJM4Akel|HWWxmIaV(Fi3u4&<~gOtLvZb*s7 zkX*WrrwV}sD?^yQy}3m8PNtpLTUG~QnVPObFiNN~9rhI>=_bjV>moPaYi99@AdCV` zJO~naN_ZWKlVM;*lrUW_L~zHB5$9%bO~}ZgARi~*VJ8#dHm~CjVf?Q1eH%ApvS3+Y zeGp-iP1{`dvV9-P5v$a zI~)GP&tLNYd|(<7-wUg&e|&cK-`2O^>+R{?-F0JpNcvoqGa46=h*AUJ=X>ZPN=O7O zJ)vWNvx?~In;o;(Scysz4MCV=JG`(>&4}FOU#7oQfqkN4W9(dge#}~(OqjC^I0plX zwP!r-R~o`!W44oR)`rJuIf^ll5icrq9R`w=Gt9I(|E=*diR<8&Cy$X6eo}T3!Chsf zhR-vscwP4V=v*lML$H)s%fmCq%&g{0&{tfXbutOz8Z8h2 znFu8!MDd)ie&Q8DLrKsjOe$?m8K0^eiun=af)W44S>u_o8hsE>bTztq{b5M}x z_dGeFNnWQ&MWiL@8OkB5+74U_%x7w0q(h=M^NvyBODwQA*xB3r@bsB~IdSyQPaOTP z$IrcV`rNnAp8ej+%F|~qJh!&~)Y;V`B(1JJcX8E+mFHGgpT4;9+{G0ilAb=d76Q%e z+4C#IyQ`Z|pAWCB&wTKD=FG~o7cV_`Va0#_nG5UBU%K?{xeNZ+zCFA2^qKR|pFQ=1 z(Q&YUwqG)FB5R~j1mN9O9TJVbX`~dnWf}{P z>>8T!;O4Lh_G=VoPrSV-Y!IE-ASjliL0yp^=FW=rLl~J5Do7gz=`=2vB5V{2A2yOs z68E09P(tU@0oTiV3=_-DBJ3hLOppB-S4hfn-(wyFYahvD6y=5b6{PmEDU}73n$)~q z-y;V*cI>_K4^|a+n$V>fYl0!GOV_;47_~80>Hw`$C%C3*JjFkfh)Rfwq!O{jk<`Z6 zh(x-sd__P|Er1BgydaV#8+68SIF@N)LIKF`a{ODR`&G3}Lts=0AxtA; zW?c(;(%lfkSPv^FB5`zc#$`?CR|4mCa|)oO^C%?b&m~7yY-M zI(6Pht7p%hfBy98ADubQE5BD z9#a+{-a=tjQRQU<8CwQVK`@eT@GEmvaLE}IU3jK2@rT904HPE$)%4-8`!xer;U!mW zgO#)C3fqZm(-c{{t~)hS*Gee$%rX0t9>X{Lnu4fK^)q(R6Us{jk!g>?aV_>I90h;4 z<+Nc|X~{!`Wd2+-Dg-aR-sf9!rDu3T(kZ6L5gGbmWm^irWx2JK^Ez2vfRS3cku0W2 z-jrp0wj?2Qc3&#Ds%zW0K8K`8CcV;3!);cWVO33tRkcjLuv5-_JK4Hr1wNDlB}|ua zgsKVQ8_&vS!~omevGsSFhz#zRokLapNiOY9EucDopI!8rqgdW! zM3WTqtgRJ}qCCG&@wyH}pitq|Duc{0trX(gydt+#4zs<=fEr-Dg(ZVf>j*YG^b?N0 ztX5n2TM^UAL3WxUYcR-@CElbwRaYiRB$Y`>1ynEdUY8fS#XXXfMRW^=KIlJ+%1A=F zMJ%pSKx;Fmkt(mbprKw;*BH=^At}BhIkcoH*yRLM3vBPg6GjD!oGQTw6CV+ndPX5K z&B`)5*ZPcA{on)+#12tqIW&&xC{M$I0(wbsfPI?04qH$;Z*@YGVyUF$hM*7`z!WC1 zBvo#f)jh9-npFaDy```T0!4ofiy87Iyv(KMd`PLbq#jNrQ z(Ua#kzIASs!^-gQ{P3TTpWb-JN1Su(Po1AVedeN%NBpjT%LkpuPtU$}dhOZOAs!81 zKfn3J>6y=`o;VZY)P>E*Pi^{W<$vGHPoKH)of8-S`23k)f8HNAw0`yK7eT|bv0!VJ zvbSg{Y>B#xOt1jxcdDHf~S~D?RECO3s?T((3lL^{r3OJ$d5% zV<%=lQao{Xh#eum48jwqHy$~@@$||d_!oWXdGweMH$zPMrVl{pHXr+J_N}wS>kl2> zc=F8fna9t}zIkfnnPzLGwEKZo*Rx2T<-+m14#jVzA1N?ZUaGcpayZ zpi;_Ytk5%_QXB0tbV670I`&9hx8MYp)|bYhlPrG}JrC2i3cPc*8_y3Sont7+%@#^Y z;p|7y^=vHiWf$BCds_edy?Adn=eX&wIR;6ghFKXIWp5jVO1w#^m^;-AWYTQHN$Z(6evLN z1I>yR!~77a!3eM06H^kMRR`J0TY#w8_1S4Az?U9_s9`M73=jZ9!!Xb-h^k2le{wFC z9vvO=B(&GBa1uAqLtz^xPYQ-In(BaY!X=?9E_|%-<*cw^;HS5~`1u=e{Kd(m-#>Qd z*~7=bb@Y;tCQpW#^7t7aL^d8hG4qkd2cU;P2{GvW=KUYfe4KjhxYgL*(*;k6c3}IZ^PKwis7OjZoG^dQ>#RmYxi`~BI_BuoEL!@CvlYs%HJO97B%T9T)W^2aF$+$d zOwH?@^Z;L|gvod|t19H1TiH7)+t_Q=pS+fY;|X3@cStX@^a9fr?u$f=d`oyHK^)&j zF__oQ!=O7cTZ}Bg9hQD{MITTeKd)->_AV)Ghy?-aT&6-mwG1+~FTv~hB8dPQU71Q*hLN0j!z%Wk@#O<^p@OSbc=i(QrV$g|TpIPLA=7U=|d@$>YZO z7Vt{nCrHb;xd^K^kf|1wP8xOB%!i>E{z_l$_3xaz@Uv6Le(=f4Gw)sS$qtq*MN z%!ZF3KJj_t>=0{)S59p_apIy6AO4kxKO2IGk5Es9faP~=dr{^!d(V3%jyFv6t z2%5dJ0w;(pRl_ob4Exy~5RL4aO*%6zV5wTPG@_@VoMXJMNsN;KR>l`95E(EXJ|lvY z&tz_A8D6I-C1J}?AGh0cpD@WJEpRvhLbpRb*O98bwE#i~n z986mYnSn5`Gx5mWMrEV+lQuh2AR;r>m`HSm85aJ*fqY7dvUU`f3j$T4odx|yC{Z2& zg5?AAm*aInB5`s)zO|~6?{i)}&FgX|Ku9N%#0jP|m`9T}x2NC<$#G*}YG2Cq}y zO9C*B%!lK6#R!)M#WvfJ7gbtaG*$7sm<+J06|2TQ#5B48=>EqK+e|Yk#GwY9^9HNQ;=VQksAFVv{@r41(o!EH5 z=R_wiJ@VFlNA?cw{HXb?VGo9Ie`%eul&WE9+8xMRqd-VA1;g8lHKC=42C&Ooa zpy6!D=T=^L=;+MHvTvT8`RL|9>4Ve|(N1hUd3NI=AD;a099?_n<8%LTdH0B=RiYgq zl3;i2;hO-HC;1^?9u^Q~C@l;muT9O$>bQ(b6az+T>y5E3UYF1iPoI>4LOW#WY?AR6 zRbQtC!ZLxZ+Sj~}n&;P%?8BO;=W-JA0tP8Ao?_R9;1O#<;V7KLac$EcgZBk%UdM@; z)kSWac7lV6&O-xTII|Z?(1d~TDdn8!7Lx04eadCO%u4<6RfJ z7r77OUE6z8#`BHvZ~{Zd8jvUqBhys5lnbLIgx!d9(_2uB9DEAXwRjy@1d%H3!wx%a zq%!IOiw!&_9o6TKD0Yj_I;F5*ldC=#`do110--LYC79&|lJ%pxL?}2Jr^rTvW{5tp zDd=qhQ7OYyX)mhI$8D@DD=uBPK|gq+<|mrh;VrBeI7!tBi#SaRQMnzEmT7j{fT$95 zlD*WtPH-rDysOq8zBv2q<0oEv%`0%n%d?LgZgLF?-;X%a0x3d^Ef} z1g0SXZQg%m&BwckKMlWga@|L(2S4?{KhQrP@18t<@h9gt-Z1v`-rlyg*Ft_|^$}rI z)fw72|Lt?dfL-W*$b=ly0?Sw_y6zDj3Rb3|I#u8fm^c2ciJPgN%nzN58!gMmprnUi zR9`8)mJ_GvTzbreR#zwn_+Tf~Gq|k8(s_!=mGE(GvsIcaZHUuI83O)sZLMf|n<~5b z+~nvDT-uvlT8c7|=*I*M#%YOE!y3JVo}+`*Wa3!4va}C{e0d>mOlhPa_(lpx0cMB+ z&2Cn75{*fPc04s&R9^>yqzs94k<7?WL!Lo#R!BPY6`q#iFC|c33W9M#%@s+73Ae$? zE$|h=>yS*@X8j)faHlrDX@RE`6^>{MwkASaP>q?WuS;chH8cbMVpfJrD`=KxEDDVhQm9IkLa1UPBfKtE4b`pEpeEm&TnkARU3_jS z7Xs-L!PT8F_MJNYqjwL#@ZQO14sU+*$fi$Ke4g@HSPXjT`|HFZ;J^I;@ z+V~*yaL93d;JE+2v)??q`S546hd#P+-$%2DJ{|tu|MB+lv5#jypBmo!*#E-zBcJ%! zz3daEAt$?6lE?tSn4W5cK-7zVq?QzwLBKI=dQ< zTJ6wd*dLnr1N?A&BPZJ$XitDUBXjA#24W-IKS5*CX?2yrKWplDw;Ss$vCHcusg% z`AYJWxj*j|JajUJPDj=YAaLD4ivkRwr${PKoCSE>Bu{Et1E=3b9ET zP_x%-XbG*_8aTxV3-v8E6X$)NDMI$6sEo(7Mk$%SC#NIDZ9N0J7`IZ;LW zbbad|Pab{Z7YCnt_uOMg)*d}FFt;HLeLC~mjTeUa@?m)KlOZ*LLP4sZF_{ZEA}uKFDi4%}v1;*+Gwuv1x~Ft1()6C{LUVOYC%^ zU9q?jxTPudK_$-o`*Cqr>N-diGIjO1$KZ2v&@(YbmAhW13Y2771X{}T$=YMUkHJqi zJu@IJI}_V1d&_xUdWDVD+TxKMbM?FlcnrIc^W+4+5UlL1H`le(uxS4XD|7m~Rrbwe z9r;fc0UM{2sXcup)uEgW8g)2Z(U@3H7GB{n#BP>U5lhC1s^FM>Y#|^7C_$qkTDrbY zLo|3RO%-I3ZDOL=)=axy|=U}Y$3Dk^qj8{~^Iy5-I=Rvn8^ zb1DZZdtMDeh9ktcu#cJ=i{%C-DSx|)t@0V3NgjM;-k-lA8p+K(Z+p8X7?T0xa-j6 z$4+iOe{ttKtJ}|>-+J=Y?6J=-`Dpd<$CvK^a6N<}{>tXvhqv!MG{mw8J{`iD7w-CC z+h6Oxk3z^B{`2y~9}Npte|&QH)w%t|+Dq52eSyUhDGB2{g4^NQsnPqvMKO%*k1jQ& zV(DzHB!zZFX?J{Kq)_1U83!##5xuu)h;~h5g}8ubuzkYJO_B5R*TN&h0kr!{A8MZO zlwxqwk*Yue?nIO8l@2G_ANCGAX~4oNP*UK|%CZaow>@p(4+qcO$R>&hPpF8H4v`aH z*GbB(S1}+s%_QY4i+WlzSJM(FXcR`8O0_XtkY#0leF}g~m#j3A2u0H7C_a5Y%g1v* z)5~rtBb1MG#`pUA&ma*WHKxcenf(?>Mk_?}wNCweCK&dCvzM zcYm)yk|h3+}LdHaFO_a2%( zap1F`UH<&7FYJY$wtKs4Ezk`sMz$YK@tL?qQ4XmaGnr8#eBP)Ta%1CsxRBnE?pm8t zGk_q4E}1Y65K=0Q%}^*;(;Kp?jj<_1*NWksPK$J<2g%$ldAzE0XF?~rd*>u8<9rg@ zBAA>6kQ_6BcQK3Adz|Xco$I0@$$k*LWo=|CR&BZbsJ)ES6GIE z$y-tno)9pYW(cghik+4)9N|)Jp-n>oc$g1CgV!O=uh+0_dKeQD|1sN)?FqL};^?fr z=>O;N>DfP?Jn@5%kNSA@$iek{53k>SaCYax%Xc62v1Z3-KzAM7yz4!mxor4&amV|Y zANXYEV~~$icORPF{F`I<9G*S=!I{6jIRCdVt{uE)j#xT9w?{4g^V#j^-#PN=o5${c zW7Yp)__uNUK_9%fhM)C6esI@EsC&ZC-gRJY5Z>SQk?yX8J`@h|=+1-NUU=ld$-iE^ zcF534Yq#uhfPc^4KP_Af0@smszD>B7%o{k_ zoT5l0O8ZE~WfHUHFhL{M$~_Rv(N$2el1*@-T_@zE$?J@CXcU;8s%Z&FpFL5<%BM_#f* zPL4<_cKInzr8hZ}Yt{JWiGRBv#yVuYd}v{@5H$g2RX$X<0b7P$+>`4HHlnDMlj4LL z1f*zf#-%4xQin*~#{ZkUmm{i;Kp71XN>851i9_q-60z~ynV-kjXU1;L2CQ9 z1KW4J=d+}3ADC``@3Md8?n7G-9$NX|PG0_}_3q`3y>~XZd?Mpx$Ink}f9p3#o_zoG zeXpOn=iu!2H!s|Kcy`yJZO*X#7kz9RghM+%_TBpC+U@Ud-~OI|J$uL$1l|7J)mr49H~-S;kVj z_#gnIcCU{ah?SEMwd)x37)j9mFj8;Hmu!%2&6!Lw?vvH;zrXRblb^jkyZUi&|M~3Y=id70 zi8oj7f9t|s2eNz-O27H`?w#*#-m*Wva@%|Ux|i>GZ-`L$ z?O*%;(cM>id)Crs*X@Q|BV`5g02Z+(aH{NB7#SM3Jg-yMYJ(TefVK!Ib#RgoOyifL zP9Ot!l_9eh@y~W@t4rZAuwxO6^{@--$|nLC={*uZ5SK^-G|TFUf`K$sGhjM))W8}P z-s(*{-OG+UirQmj*^m@1#J;jpWWr_YGL%!+s&cnzw!#$?rXy;4E$}+FO(Ry!KZkb4 zJWf<`!dlrRC1-U`b#gD8pyQ2Hg2qz@7b+N$yv0t2e>uehzU#VlN3R!1tcjC0L0B1< z!A5L(%PB_08J}$p@m#GIB@IW3wc2HTy(gqi2-(`rbV;oW6VMZwTkI>WqhX(^+@r10 zv?|VNE@lzuV%QiPhMPNl9;QLAMdq8UW`%7w*KXpiNdavyJ5S^7NKv zw_lh8J^k$5l_&R|yZhJ2?%%(D%d1d*rrQw*8yVd}`>D9Zpp>Vb7GFuwe*rT0*j_(3yI!Nc~cq z5%ly7vAfoJCreB0ee06fwg6f0$RxqwY#HC=&3)ZoIzYBrKC-RgOVdaa`BPwfjX8(b;BcXRvBuKeMlBai%#{kQ!5 zv)f-?xpm*pt?&3?wDXOZH*a}!>!y8Mx4tn5H@~^%W5i9bt=+P3{nmY(x9(fN?ZD+* z-kjaC|H=)oUb@MLmA5u;dvo)Z9GNZMQQ6Tkr1yyL* zY=a|0B`u%|3Aceh*w&_0r`82(4II|rxtiUiJ+lpppdsIa>9fUq>#4oOX8gYXhy zzqttFxOQa(t4kfiqc~kv%qWR!&Erctmm~QE+J5p*Uje|(`f<4T}~1o&=@Pv zcp@H)YMWcL(2m1>CwYNW<@zZ>kT%45xH>1NlXY8^qj31v^Wn5`8HTSPNxI9jx)zQY zEvuWXuOlt!=Msv***EfiCkRWo6S+2b06B+>J3SVT;RBynCJAHnnSkl`b9l&=0}Kbu zG8@wviG;?)gM3?OYiklnQcOswWvUyK-#)3^pBNN;Yhq9mOt!I(mjt4IZtYuV&whX3 z!H0i-;I?0#y7f03x4f})>wzmbzkTJFeX|fjHoV}2MaY9TZh2?t*8Mv-ynN}V-=4kc zt=$`ceeBkEwr+Uc3&*{1&)aJ+eRAa&pWAng{n^>wZ~prIhu=PR+b>Vvw(s%{uMWwS zk97VAZ{9b%>DBd{UOwgXApavbzu{lmxZ(B9o8G+aU-6&0>E)ANxcRLu|N4FVE`0C! z>Tmk~*tOwc)oThUrFo`kg68d=B-be`6q8v7)78i0*d~qfE|-0N7_Vg>lGx!D8&80V z9%Ez|3<(^F{y}b5pKGmCX)W+H&*ZzJ_^B?@zMz~f#dEIx#0367bjV(@;VbOJ;v9xt zIyb2alWlGnSb*r6r7PPps=7%F3llMXcrG=W4MQuuR_?w~B!+u8%KbW3=yF|Xg(LyY znq41>sRaIRosW}Cr%@G)8iim%079bI_vu(F%T;-p|06T4*h_p%(r_nZ-L=Zetb%f} z8R6hWRB!=T*1|NvY<|YHgm&gz2@Y#6Ik4j47`gE2lYq*taUMEVM<|jdUdY)Qi2xL8x6plcH zYnY6_LfYRP6sOh;;$e((VyEx717}x$y#K=ofAQ|^|8nT2e_!#@=jMHzx4gacwcqag z&~xJ}=Wlpp=jPW}Z+vb2ws)_5{gvGt-`M*7S9WgLx9k7i_~!1{U)%Bjd&3*MUwe7` z##d%9ez5z?tJmJzv;XI*%MZW&(H;MO{La_bZhmF+HlJ|4>f_Pnn_rpT`1-p4%GX}q z;jjDO`TDDu`PaVj`ta{-uk76T#^oD+bMD4{mv4Rb!goHL`TXcuZ`XRd?9Iq`2v&Q8 zVjwgFdb`|+*uM>KklosR!C}9a(QYm{(b6agG9?Lx{g}@5BM%6xJUlz%>`7r(HvT)= zksapfg`+?lic9xGz~D>_e^@DJ^l>ClfSOz&K@Cn)P6tvU1c0<47mEAc6gASd zF^zsu9b#37@JKG7bWaQ5mlhj)Ig}vbl_SCudkNeiA~qB~qC@!cudeYNOwz}5DGHI2 zZsB!yA+Pg7A0PXO!}L&L6;Jk4D8Q*Q$bta$P54lk-qnKw<#hSsiW2}tsiKty);=7< zv;XYbzc_K?k^gxA=70L&>pwqx%f8JUUfKA@Yg=D`eV2od4-h^s3{fM5p5Z@30P_F% zKfm_M?l)cw@_%f9`@;~A=Js#TZ9V$(2lu^t{Ptg;yXlpko8H*I;k9l58UOG1{$qB- z>)SW(+xhxy!;ko%{o2c`!>@&F@z3%<|FgHga^b(8y87xhd(zrgnQdYFIm%ZvhST-zA^uV_DNsk3yMztGH45W^(y$_UEuheOB#XVYy zHCA27$wENGt5Di6&joC{a=5gVfQg_*6Fv%-=v@1OxlO@HydYuqXoHbT6`r*7oGp%i zVLLUZ6G59~FW-pm=^L*OQR9|3H+**U z^;d^?{p-K?^3K

!Z@fH~xL~h4*)V{e^w2v;Y0f&IA8;@b+IG|Hd!ZZvM@sufKAI z!;Sw6$Dkpo4KZ#AKsUWH^Z&_d*YCf)`+L9Ih^f;XyZ7y1|HOwnyOSl12 z=?Ih6!vTlJ1Rw@p$A`$3z=}1w0=Ybs!L5<Zxvf0!hV?McEoH=)>4#+mo=7wk-a_b=xkdFuvfRZds<==%>aa>;;{#22qDJb0 zFX?nLxmio`;X#8r2&XckOL0shC?!W9z9RD(?(ldxWG&e2u_-Cy6uiz!MRz_HPVYUG zGhOv7Wqn=vb7R~i7_yPI`zAYOxEJT)VLnIV`o17Kw%h&H(F>3K>fo*aa`?ae)A?`w zhmSs2hH&#*Oo9f6Hbju!|MIILNcp$E_A=)(S9~P$@#Xh^JG}DyzrFm8m)D;;y7}up z^VXjI*~Q(5UjFd5Uwn4^E3>ct`=I4 zuYTRD%jM_BMralqkpKY#p$Sb$AR#mhiOJYZVn#x`S9dsL=9%X)Gb8es-Vrf`H6D9^bkBO`X~9p4wAql<^{`t5@SOB#YDEp}M z@CEnr4_XhO&;OtQXuO>3sQe=#YclL>Bac>#aQ=*sgRX<;9>}+oX3Y1K`O!!X2^um{ zAz=pA8QIK?DW06p9>V=q?8DPzG~I3UbpdgP0ZnC@uM@P&AcU~5NXt=}w-RbwJ-ApI zD2QehwB%|mFrkKJ<3x%ZnH=JWW5!9Qh>sC*=?fE99u7lYh~1iiiHC`n+%goE?6D*0 z0QWFXnni&oPGF{4#2};%oNrHP7p8=`b~_+vD5yIZUjs7jfRO4o@MEGNQvwyHWu&Ij zLXtCyh4?y3XcZdGCHOi?OLc;XyCl%l{6Lrx>JTFokwvN_6i)fwy8x6*kGFd-Ov64}iJe?L78w>v0|F z;P*ej+xTZ4^3+#dX~A0nzI0%MZ-#GcJbJ1A*v0aH{4IZ|Jos)T@+zz)zHo};W|9qnZ$XjC^?r5gFD?1qRkrvqzai3iyNmgJc}1iz7_YA_?CzC zm#!Y((OcLiqk?@S5_J(xRs< z6`5UN^v%SenHCG$Y+T>^r#8s#qwfj%u&Dx83{N2p5ax$wgIsJP22_Jg3Lf@@HL)f7(V45ny#Kx!8i=51-dj=Dp7Eu0Z^%{qB5e#h0C<&C#VnurJ&B-_L#f zFQ=|QcE0k@SL*-r5BSXR;Y;ezAJK#xxJYmczC*3ExSg3XwBJHW(c#!u+U!>gd z{~Qq$g86QX5O?;0GRzSn?n@YkBooECQ>Y`LN3(jPZen}0c=G7%X}ds_=0fHg(+JU9 zTnO#_P0Fu?XKxGnS#`Yr{cnDM@`ryub?ecym4{A1NNWD(B4DEKBkyz`zg&Ivih)HB zouQC)Mg2Tw&4=Ol zW%xD~zaV)1_EPUR7rH7Woo_&p`t8MzdiO#N?()#NwvKKPj~b7?)82HW`~JwA62cL( z0@GO%@H%`OlS)=!E49bR6N4Ythe+S4bd6g0p+Tv3&M*wkrU{&trbj34%0~P zv0@gnpDxJIIuM+{2kCdD=~(234nH(oBH*w^RRR7j`v+`?G-qgx(2@ZophCBXIi8Uz zin#8b=5hkp<}9K~P}05eiu8phL56c?i5pLI$P){aQZtaQWIu)lfy)gPbOP;EnYhDl z;+8RurUz-#snW2*0V4Hwwf2yiu(&|(E7m)y(aIB{@OE6Np3Df+SKmHg7m#9vgG*vJ zDx?BT>J~}w&^d&*0EU2`qymdr5RWr3pNQ`QmgU6pe#rVF;_E`XH9|1czgS>x8%u+J zVuRc!O_wepO&2S$bO%2}(j&t`SiFRf^C(;~)T|@c++c0$BMe>$oLN;UXvZ*VWeUp# zUq?&`ixPQLvP6ON{-m7|scRCG_Jy>snvAGIbdnx*iqSgiz6kzH`E==mpVF0?ZS>ew zw9}A8VS$IgH53Qu=l=c7cYio_p~B50m#PqkesiJq z$dxu+dH7=MH|HQWbsm1F1z`oQzz2SNzV-N(#_ulIe)HDcZ_m_zcd7j7#mXb^G=6hl zL7`ut?>&0C`MWC$UO@nQ==|`v7a=OOetQ8zTL;45!w{|D-OEjgP=K}`zR>)acUv!I z`&WID9Vu}Dq(EE0T^BIbP@28e z&|{#Z5H#DA`bx~HB4Wb9fND3MPSZ$PM25|rq_j`w*_b z#vK_M{h?5OAX<&pVy%{OQyu|MvDb|9bY;(tVkw`-{Il z+kEJJ8}JeQe&|B`q4TX@UuZ*Qfq(v5|2%lA^^m>-Kk(0o^ji>Lbh!!93g5!NHRbcI z2j0eaOTU2+tMBREf2so?{`KkB1E=7v_JgNe51msVgU|o3&pIbs;u|6Jf$T`x(_IiQ zz?C5x6eqm}(IPA>8G_sd*o=VTjf-ugNNy^cdJW2cij<3Us6BZ`&b-Eowlpzr{ z$D|qBkE*Igi6E^PlE5qsqm6f@p70pnlGScx!)dI|{4KVFM9~y!{IGXo=hy3kE$vHp zL3D)~A>xQkb88}qd5Ktq5SxnMKY_SQ5xGLo>ud(Vbc(c?5JX-Wo)Cjm90w0y^Zd_? z!(G=Z|9<-02M*8Pb6|eS-okIs)E|7i^WfVi)?m>2_1Tt+7drI74@3|M9C-bqbM0TN zpVsm>>JMSGI@5aSZ0r8F+V`DoJaD?H|3rPs18=E|`on!4?7Hd;&*|?!*M9Jfy4NF@ z+P}Y4+i|1)Q6O&!;S7dde0Jn#cub`--aphCHNajOZgG52JNqjA*vGT5Adt z=OOsDK_GdhfaGcc#atG!1w^0)MC|*d3P_4SdB(*e0eyXhtOdoF#XSc5Nl%zfQw_JN zRk8_>5mAMD@gpR@F0|-MBrvh9q6*`N!J=TcZLIaf=Wj5ez2BJ=2TXH8TAz~^r zbY)aMK|GbzT#(PZT_M30(7CHjw#VCH@dla52yr2aeB(S=vJhA71QwHtH8j<;ByHUL zhK-@QpCBeAD##dtDT!<`69bF4WUZ8-9uZ*}>6FkTSq1JvR@4|9uo7?644&x=GK0l9 zfk`>qrhri!1xvaR==nxKErWB#0Qm}HLIkV+=+;;(w7|9}Z@K+rw<`bh!gs$vm;3GU zX^2Pn9w|L=qWRESh&VkRk`Mv4AoM73bhi8Jvl`BvRk7)TGf?jQ`g{k%lZsI1G=PE+ zoNGaRdGIV;@4z44f3mKwpKITLs(b(2eHFsa^d3ArRG&XKSlV3qgbN%pOpyshAK`)mvxrP4 zWQ{}8$n$JJX30$zKp=uKpf%sy@fhrjBoSi#CG5UziYy@Iw&BXiW5h(TGjC5r}-4{%vCJ9VD0+0UO zZW%)!T7o5RXOHl{X90iTqFciSWK}?u@#O z@?r7aK+mP2xmpA7Y9_zy`)mLA&V!E~`|i=>KP=gsxoeNRWPk0xH#!h3?mO9q9|#r@ zM}B?2`@qTO17}7LoPmq#tq0C_F<>bS1+nJs-uajo*TIloev`#7y7K2V!NR2jY!RR&wt zl9S=Wt|_p-2$%SA_CgFmkV5DIF&L77gS_no;YA7wfr`IS0r6KD?b{}-FfHQQZGu$+ z77Gz0FsX^mWP^8mutiNcv7w2dNKmHIr0Ge5Y0OK+7=Snx;B(89*w3a4(Et+Up|sdJ z19ELV^}y-A;^Lrcw*~-(9yr~-PZ4(zt=jNc_rKi*gmvFZ zcuV~)yruBbxsHNer<)I-Y5eBRnctn5e*BfU_gv3?_5Jm3Pc0lN9qv$iL(-;-m|+NN za}Vtw>1*AR3^LL6bEj|@NE}VUgfv)b<--bMWurV$VRU7ZdWvV!lW96+_?c8sI0{7B z7IBA;LTVdkahLgiB9jwTKl=x}fU(c;RHpTa(M6Y)rm)aL(9F<*5SeU-3`#ZFILQ=E z6X~i5y{B}HI-XcS7bl{`ScGO#%h>BC&US+IuHPN^+Hf zcFmPIF<@GloHjBc#(UF^xn8HFw18NKSJsYVNn5QI4sm4VuFb7_Vsmv zU0}RVSHjTj&k%-@1ku+i@EAl5SAbV^^F_8~XTUKV!_mPi2#YeEz>M*(1;n#qWw?+K zEcryaNM7S+f{~ui<_vjhjE@cp^{KTsXBf2%G9hRf%m8R1P&kP@6*w2tf5mL7kq=p; zj2lFIIZ>_FZ~k!e__5;~)@}Urpa1-qRqOxrm1F?n9Nk zj|`R{@7;T>btT?)|5F`Ww1;AFe|byZ;o#rs3U3TFc+;EPtc@ zn>TBZzxdJewWt2L{e>O7cVBqt{amdx8UTb;UdbP#sKD3*8-|HT`k%&TSms3210kZ! z@lfxYB~o0OSz=2R!gvZf%czJ5m81eS;;wMQR*LBYI|{Zv4vscEXTG0ue$5h+EgmBZ z&bCrv6++!Icnjl0h#qGOi<$FeBDNNVQdEy*Z}=dgMY9WTBK>0`{-ng%iK((Y1_SPt zxaW-J!?MS)y1=#vV+Oc{fh}MyH<$r}6#7DZ9WOWFI3?WzHv-qeFqv9Tz)A57(R4As zj^L-{)GFfZP*#^NFgu5cFTuU|`a8$0xzaDx69iOHe3~%9ZA`dcT6M5FLoZdCF#fVx zDVv@eQO4zn**TVS2~v>}v^3js0Lz}M+Qlu#z(nPqX{A6;S49jC%Vn+YKT z#IqR&R5&E)N-6}J!@)Tv5||0D%rp)zC|G!$@0c!d4VjJM+TyKYe2oc#-VR^Ky%WX> z6JwmT0%HE0^_FB9il`w9og0MZL)azbr6OiJgF=A&n5fH zP}cwK+!6T>A(M$3+>__ge4@7_0tIyMdOIjTN?_mTQNZ}jyS_Ld!0I)?|| z?)}HfFaFmjQ~z=P%RjB${2xc(`O9BcJ@Lem5s_KKe1LqZ@O+i{1ZLK*a9GFtulKI{{AtIf<;Da zYyeKw*WCtRx6qPDsKcCRHPHxpr%9nC42?wDXeCM6Vi&}Z6>t_LtbAChai|~@l?0PR z0=&|q(E^LX6FP%H@a&fWf=wO@Yt=r+&oCc|Qz2rdxPUAK6Bh=ZAs{6_EyM*8g7b)@ z7JvNl0&mF$3OKh}ut1U$Nsn)0ItC^^6)_ARKMOUTpygKuib=h|ZIzJKp|wT$2*E63 zd?YBCd_X*|%h+Fm#n;)l=7L!&WwsXQqO9t{Tk8p)&DY`F4CkWK+9J%X9TStu>Lz0t z$a}Cx$O8W8d5;B;~s%uL;I+j1g&Q4(@#D*aNxkkr#G%&zkc=VwJTSy+O%oY z`5V{2ot?YZ^xm9l{Kth`%l7A%?9D?wTK-1w=et{Xy*9dQPkGsq_MQ71OJ5(|eXM== z@!p+#>vta?EIrb_`;F1k*BTId?%daf__FL!147KQBmHH^Mt2|YFFn*+dZ>BtiP4fn z9eDSiJtRA&N&tq%cLs(LqvQjES;9;4erc!~|nFi8G8bLaYO%SRjc_6(kB0G<`DQorpU` zuRbksaF~e2Bf52D7Kk>t-I=NBGpEizx9vHIM5|V=dh$t# zL|YFYJoM!^-_+~P_HbD6#Px1);8ykD-nw!3f#UK*+2zNY%Z_%J92(tqu(R}FOJSUo z5M>6-4mX#*K3aOTclXiWJ#PTI>D~Q$@6LT4xOmSSgJrJ|m%P?mdbq#zaPO|ydP@!s zm!Ie^JKA1$Y`E-jXPNqw5rm{AhX;2Zf>@@$>b?`*|8b?VJJKS z`GpsDtyr;Y#gnU_{Ojs9Yo3NkdgZ@2`S%{CzshYYJ z-11hzXc0LuVaNGqV?%pvhRkD&Xb-(0F0?aojSF}Y3piDvcw`K35@*QqDEf>g9t(-E ziae3Enq%f~oX3rZM4Mp>q~mZ%5?(W`vQI~!r2K==@rbYRb_a29|k*WzA_?-*K#)q0dcZ#)LOU+R=7rcl#F z5=UgEG}!!cdTKDBKT6_#d@*pt0&BWLnwcX_hv?gew=zY`2#YgJ^L3K4&Y8MdgaL?c zoo7))cq3M-U_02HMzTSyc9=}uiAkV4U6{nzC5XF_2uv)Gq)7n8f|yiLBup4fi(Z7l zWT8&%VdE?WRK~6Yzswzx8lpOIUoc;Xm9d4FcC93(PTLJ)-zD83SkEx^N*jissI!cT zrtnI$R{P+C4|eZEZUB2S-aFgdH6&J3fNXFFicGb8ma;A&6YVrAHwW4dGAjdTqGmQ2TE9o+I7I z&a_^b?_C;+uZD8U7lrny+Z^Y=UMc1Y^=$o*bkH0qU3$LqrK$8kA}{Qy8!*9 zIhte=Unl;nd>x}jGvS~a7tWeOijtC&8N)ENk0LcDuiY0?(}GsRqe(BX>=S&0&yNZVl#pyOcmmWAy&&{9hm-#)q%-FvOwM;%_wF=~v7C5yt z(i%M%jZq?OoWzarXY47c4g5om@~{vD0mA|G$?#R}dj0CvuTP#l37Ba8%JnOsS_%K% z^7NK7XUdt@#Na|>o%-fwQA?i7vKHt)53gV&>6tf>n1V-&{zm^DRg#WNRYuN z=?k_SkJcc?mD!{jx;5hssNl!hIYHzh3*nM9-REIk9ezBFIQ1;Oe{8x|#SfgThd z(I(NFg8qYmv{fkZU_`bchs%iQT7esr+Ew=1p6(-2N79j3I4dSABgn&-l z67FDzjT8`h=mh~|ZF3RlGqftrt4KbvY94Vr2KmZ(k|RYZ#&?E1w0w2a!Wr)efgPA6 zEncvy**rcy>0$(C3S)A?|9??PpzkPQQ%p`lwPS%Dj|6j@iFgzwg?0?{1JV)M8(~EO zn(C0|4DABX38N6elqoGF>G%}IBZ=H;>edkfLUrImRK0jSk~Vj0owJ}SZ%Hv>qMFUl zpFVy1#TQ?M7_@fP+6}8VY~8%|$dMyguU@TIt9^)8{r*tDTCG95-77UZxk@8j8#rC@ zL20ySw*KEwU3=j0Er>^V?I|hLv#)x`D~(^i+Prgr2jb412L^ZU>uLDYzU#0?N&7p$ zc(nsy>aGL*JNNdMLP$C=_~pLNl7sNpVCm7pT?d*9866qjxqtY}z1@3{wf_CG^Wv@6 zrQZ0nmiVFRWov!6)~nU~m1d{g?vMK5(&b<<%+6=ud+)s+JDyv+YTZ+Rd1~Fd4I6eo zclhw(zkTpwtJT&XN%t68h@pUNH7t2=91gr(;uEFm6Q5>$br79zf&KB zRyh`rQYW);JmM&6n)fIA2aZRA*G*FE8i_k{Jc?R|nRB~A((%a7jF_aa3#=h2C~qai zxiRU$ja%b*6sLBRk(3Jwz77iuuu@FZ4T&03Fg%R3Od%=R@S7)QTqcBe2IdjiWa4h( zt%FJA;fO){LVTT72z0FyNprrXjfrhsk6o{|F*ZYJ*CFv8U%%QW+$$=J}1Ewx88vWl`EC%)p~9|H#J}Xrd0d75gfVE`?r(d-|@2ht9`>??5_Os)#@+y0sQGK zJ2rx#v+S^nN^s@Qy%2G_n$uH1%MK6W_mV@yJ6^4;NTkZ`U%fWE_sz~P_5&VFNg38qE{eHjIYT5irj zKc=r^;~Y^!s4c7W*qI1xm&Hi~BvywsPelo*JY?97b2}uK8zz$K;X+(Ddo~31nk!2- zEHq4l5L=*-ZU-hX7pm2e6{Ivy?Y^)HOgTwk7h1e!tT1VnftNhEdJ^9XLzGGmDW(h; zS^Lo6pPYi)98_x6-i~)RK4QRYGRrWCQ;LU~2Gfiynx)g$Sg|^UW;^S|tq~uE@mkqn zjT2)h;sQy~BP1?Mvbakxzp|)C8riw@P8lb9M+1jjI`mWsisvexq_MiPa z|M-dOl0EsK?JEDbm)u|OssHSy%ANb`Ki}QH>$Tophlan{+r8uE`mYWQfA&i47km3~ z{f^xYKvEE@e*S9rj@{j#zuLd!)$Y&t4t~D3|I7Wodk#1M_1)Gp*ULv-|B}=HygIs3 z8_kplm1?`zXjdA|vZ_wA*=`RygW+Ju76L-YU*>1rkx!8_EkLU?DnKn)| z!bCzMD*%~Gw?uAioaq6w$bLaKha+jwVFg$N!{RG!kRUZ$nM3vo_r*4|A_$4!%qI}JawNh|u`TRiS;Eg~h`7)%Oy zC!f!M^wCEu2jEX8U4NN@4nVsbJe-;wahPG?cA}e0zbdnUAp6y zy8dZEJo@>b-meafeh!7beF#i<>~5=Iv~T$HJ@D4xpI)r|YxD;}XET_he!&SvG2LR=-sBT0UV=QANK8!^={@Np)_ zBYW7=lC+@giF7<-KQFAel7tm!E5{vjA|4qXLfm7hmzG!uR*tHqW9C9y^yhelscP5` zD3RrGsje}E_)$8M*tWWz27Sqr7XhM~!~WsZpXIveH(8m6I7 zU|NRXwX@rJEeolTiCC1Ubnwf#@l8S>UxDXJl~R6~r%O~n?~`1#2G>0mKh zpf3b!{HP0TP1j`YoLF!pJCprNnT831LUn7e2dLrj;locpxdwp4>eZ`Pu3WW!`}3DB zUCNisxW#2#@8kxBR)5fM4$7r+zu$MO)q0~*E|;rS*R9vwqMIwYj+-qOi+R2sH(l@k;mrK6_I3a1#U}jxx0fnb!TH(CojYEx{nJaWU%cA>rx)w^ z7XI9Mp!xJ<-2POik#Q>-x9+%Z!Ogp_lPg#96{u9BP_6a` z!+vYf?+?NEz+=L{q0coF681X1*&lv5di3bZmFrfnT)F0{^=qG6ziZd73l}cjoXxfM zW)9dmX8fk~b?N;K`2z{Q&L+K?$i+^vWp!LY*TIK4Pvq;A-BJ)_zRs?sO%<|nGKZWf zMC74GPcflACQTO)htSH8X0L@FBd`alWs|lvH?)=;!no7p$B!BC0u2AeLL!|%q=^J~ zfryLT@MUMphvdC^Y}(5WOy$|H$$l)=4uaC6L#7icCzrW&7Cm~j4QbN5>hF)Op)U}x zZ3zU1LJs%1aEWsd#z&#v2|r}OD3j71UY(RgI0%~}GBmBfrIwgELM2GtnRTg}T!EQCkf#0gqEj{P|k zCTMATZpBX|_0}tfE3+kzw0IimJL2Rfn)IfDKcy{9rV459WY96^yl@>DDA{BYnPNcu zrwIFiGn!|zAwi)#8qLqopFe+o`}XZC{<`8X|LZRhjCStadE&&0@4o-O)9R{iQpV$e zHbxr{JaD1l%$3Hw-37Pr)?3v&fTX75IQ4qHR4zj_n$KqEbGeLD&J>GT2uw51bg6x< z(*JvY@Y;0mh3`5mKF>e)R(tuu((0Fz|mg1>w+9aW8U@ZY( zNx-5B8wV|{ud~I3hCI}PCQA9i!6JlBXa}}FmPD1pBJQwZ89D_d0g8J6HuMa(Bn(lN z={Op;7zcR~B#6h9M7Wt4bQURKP%u7+aHXVdYZeL$!rH!tk8A}gdPQCY5A3?pUWE(Y zI-#|`os4fgLP^cC3Tyrl5ycCIq4Z9(R$gH;FeNsCiWf|xx2>E^QDiZC9J`uVi@4>9 zD+@^YJ%&&fk4N^O8}h-{8KOI)%^Nv5nuR2b1dhH0bJWsxn@biUrTETjO+L%vihU4HMqef#!-FJ8TJ^?Ie|UcYzm-p{`H!gZ^j zKIaj|pLRyTa0tHK>vTH3PQO`if!nXtRX_qvR0oJuav%idvc-(!OwZ=wch+%cbGdvW zGn32T%y+&l4L&W6PrL2IQ}vg>EpPpzw&k0_Gt=ItAN)W4t+VRW?)uNW+orv(U$u68 z(b;pWd1S70qR@S>?OknpUsT4|OT!tbHJdMGvT&Om+%%gl6pN)|u9Sm&yYQ+P%av-a zQCHCjg3++o?e*b*z434iE?V@gBc}m6wOXy&+1a<>KD~YG4rqi`D_6nq=bw50;>C+! zUj4FCEHVRt4QJde#iPV_1Oco41HGRr+bwftyn4v~A+cm*FL#C}TN$T?Xc&=@j||wh zQen|nSO;cwc?H4NdkbrjCMa%+BsS^NLn{fCz|DX8X39QboXB}kGH#s!NKvGsK! zA!W~EA<`S!vCeRmLf^6a$MHCKUz)Eoj}Qm`fm|&AF`z?Q6`G#J8S=}wEF|$(A}zYx z@86uB1`xDq)21h$cw*(sl`B@P*t~i3JMX+RH8V5zePriEik|9>Mgtv>s?BC!>%9Re z<;!I)AZV7|vcf4D6&7;293ZcpTZ4k@xbxXuMg2gBjF-+p`YkRcBV^{i@y*l1xSY%u`(Yg-0ULR(kPn8iIm0wxml`sO7PHe}(S3!M z_%qb=tJ~4nA=5M(O;Dn;*Fq&54+Hi`5(7K3``s{As=}CX2NgyaY`* zVcEsXhfS&%7AjbqJn;Hd6k!Q;+xRH9Du;N-^HBd}=G)ehYLg2%b&=7z^Sp>==l+B? z9uML>kStILiNOw8&p=pyVr3Q*9Qu;>(6hG*qLG!D?L<3o&|f7I86=^AP+JT3lq8LZ zMzfluz}5?`y?RK`AmZdhj8+Xyc8MVG%>at$KO(IfvUEx&X)A?~u)r*(5OgYBK>E5# zof1+?g5(L3wNJ8)<3xmA#;9})$CB@0;E%^S$GLLp($1YPDvjC7HSpT7VZ-s`$G*RI ztyyg;Qcj z6=onN<%`9f1Cc3{EzD#gT$D5UA_S>?KAS1R^+GOR%oj>O6lyc&-dwpi<8)@-76!6H zp$H#vU8ewXXm-wZYIF11tmEdhvziZd@`d8uyyE~qDpd1s6~bJ(RCC?3A`&Ylh?V`$ zpxNmR`$K4l(O@KLom8MHN|FEx0WDJ~6h8d$!B%RaT=mqdl~1kQxpU`{BS(Jt z{s$-LjCD3spr^%VeVo#cWPIay1h%oHR4cOsyAZa0d3V@Vs^C3eO z{X%LTncjdbBxJsh$tW2m=L&nnbNv+o?YzhC%eVNnP|xHAkr;k_qzHSYuzyJH@6Du> z)H+74C)bwqkJyjhj&dNx&>trd5N`O?Xnf!TFT`LNGMn(z)P-ZB&|eh(biOX;G0@l$ zP6lQhcGg-mEDGZ7%v7Phnw5O}2>8pBhd)Ek3(+QiRr;bCLFO^E4efAmn+l}itu2}KZ>eZ_^ ztlqHu<=t?x=(y_e?S4P0F}9YsaAY+b4ftfY-R<;xil}S1JI!vTTy3|TMc0MEl*?ry zB+X~?v$;YB;z*%5Gn0kb0`Uk!%*=e@R;H}*Q=tgJX6n`~e4tP)W}NzL#wq5@1*bfd zDbCKrceoJDX0s6Bs>Om+aGVSTuPj8dB7AM8P|jst2w25z$;qmCDOOBzWLz(KmF-XfR$FQTD4=x zjC05_q=Ij`Ves4v|Ox){J^>t`Q>?-wGhw6M%e3Kr=&O z-3aYZ@|27N6S@xCT8ityt}n95csz=Y6v{}7ttnW;A>>sCToR>aO+lP|(qX1-l38W0 zl^@@z0V{0#v4B)+3l(tjMOrKG_AVvpIwbwZRkP5h$XK7R*Gx^vQ8z`y)~dOrb@1Ed z>!N5L7@@4Btq&N#*fbpnrUYMS(^C`AhfQlCIM&CgAxlrfdoD@Zs5~T#in6-m;*bfP zAr;JLh_4%3bmHQSko>WNT?dZfKZ(E$Nmgg?MuqK$?SNOf9Zb@hjPhamcS2q$h$3T3 zBp`W`NK+zl!BWWVTwG0O<8j<8UPzhVOwX*YI(Sw+7NYS=F+80TeqrnA}|~D*=L_UapDAAPaLKo_&C%QUx&nkBDe;Feruq& zt?T8>CBR4!1^_Nq8Vv|7MK?FE`MQkj<^dTw^$5j%#`Kc-OwQl}arkcqB zNUA{Of{*3hdQk}*$|bi^syA8?i<%v%XPXj{dOg+byoI36*KzBiJlN~?{{HvBA3l6| z)!H=}lHj##*RHEquQo~zbZ(1mWXFvuQk)*{L}b%bY@8v{L=jg;t^;T3={rUWOfn45 zX80%7fpbM|<22tEuLE98t|{n+56QPCD`lQ4lB7=BGA>q#i`;BN+mq(dUQ>rj$4o>% z#3HnXy?poe#S>O*e_J3vtz2i#HOCkd)?xJ~;{Bg`wH3MyA%UC*E3#Lv#m8n>7le zbX|i5NV1ZaawTXPyMSoO#{-*m^UAc0fhb=t1QQFo@dHYJ;fEEICKzd1oljc_$EdJK*yqrxK4ULw`Lq7--8;_*V;|pw|4(}I~*f=O& zz;>{+q8OUtY}U6a5#sCkGr4^J!o`aaebm+jPp(|Ma_yEaTV8wZwa-8Qyi%=uluP1U zC%%~#Z5$c|li}4H4E&Kl9IAz^R;$%*_nOUCy{-h`5Rt0oYPnplR4M>r0LTFR$>#If zeCgI~E<2x_%P6pu%_vFu^z>Y@=)y+;G0g%BDimh2#eB}0oy*Ute><5>zF2f_&1Q2> zB~vKm^M(9urr=~VnfY6DxlGZSozLZS#auo+mnr0nxw2C(mdcI`RjJhKO@M6Gdb`=` zLKtedI^F(o+*c_NXxI^@Da=6w9;For#NdIy%{k7wYu|3$w(Xf`o>7|cm1~~a_RO(k z$G-UDt6HtejF6|vv6z)&A)Ts*x;S*;#HO-w;@C{*q7wHX8=sdnqm}B?^ zvjoUWp{eNa=Q+Q$q+CcQGiS&$B-EY>qS;YA5i?GUureOcYKO#V6>;%rR1nETq>%IG zCJ|N%1(YDAE7Np#nphx{vRfwcm^;N<#vFy^Fd4^D5H^F3tthtavTz~Po24fn-=|Fr zhg7{qmR+#07+032rz|P}+4u?N5hu?Dh#c?Z38nW$O57 z>s3$!=AS|g#^Ygc1mLKtF%bkNSI47fy;&|hP*5vI1ubfDU4TV^dS)}ZxqLaFhz zM+Gc^N{Yt=q?3i%RGfnfX`%RBzBrdFW+865jzU<4q85!8XJ_-JVr6D}2Er2{tX$EV zo6S3J5&oZbtC`tC(SdkWg1c69er{7MF4{G({PX``q^DE?l_aQN^ zFyzfP?R476nQ%O!!?}1VffvNnd|k+1%g#X{B*N{$CzxYoX9myq7&1{nkAWkUlXG#_ zfd^ru&@Sa4cqu`~>%ixgk8RePLN*S%kaQ*!yjI+Od4wa_YhfMC<6HU5w$~c-vWu8} zTzf>*Ex^|y3Bv`{LSV>4Lco@Cd6d);qBMo+DSA>PV$tw+&@nufv|wX`uT%7tG{9Uk zYeZ5FUrRgwYkZwYTJ#Z5?9-<|+;)S6yhNxUR#-xv2?7-^a6`p`e?-b*KCBi5Mpw8X zNw8!ocI@>^cx$W!5Pv2@`jRpMEv^jvLZ(ifWWEl*Wfa#k`4%_Ad>wv2_XXe3Cr@G) z-$x^F1oJ&;Et+{Tsm~pF$LsM%)d4Mw6($v&^ zxlo2Mq6oUI1HnYC1?4g>z#7Myot@9jOamI4Q__S2Tmb}B$U08Zaq=!;tf^@wp@YbE zYdQ!QZ5?l#)ZcE71ocSi#;>cAXiIO+_= z(6@WvP9cXvo3q!MLf0fry;l491G8lH{zS0zQ7aKw>{`kg+ri zRb0SsGNyQYd>!f_1APla)1?X?ijCv@KbY|EMaNeqSSkEWU|o@MekP%9!@050w?y3< zCtHP}1Ehpu}rV9}+&<`@y-aCx*b$VhlnXmH`S9tqz!oopHEhFO8lZOYI z=#DfbNoe-5G<;oX&a^TNhCS^Gql6B@X`$RZRyPF%QIWz5G)w7IEDLM~4_!AW_gQ>h zlBT1A&!QYXmj4sBk78C~UdJf9bW6a1}DGo|sstJWL6cCT6M_L}`#wbE)eE0sDx z6W49b+{%?*2pt8LeUwvLgj{YO;)_a?oiDlomuBbla3No~bz`bf$Q6tE+3DFlM6cOf z5Jq!_LN=G3o6BYM3L-g92`&PD0?Y;Qs#GYe&*Taak19^dDZ<4}F$a;ztyJ7vy*5Rbae-mo(q4?XjIV|@Z&U}8OHf#Gaf5`0jeLH8H4F)-F=rl$cG?bxwn zjebF^Zrir)`0?Z4fA=-SJ|RsmzqI-yz!Y-aCsU6^T&zcaM%eTeX$j07I0E7}1vLoAWgNW; z_b7;_!*=lWd^NNv#E=GlG;9-vfL2@L1@2j&c(9Q8Mx&x6k%nL$WBRFCR!4=vk6rN> zC`eMgNNNYk=ES?z(FVT(>1PnoNek!&bR9m^)8@^59m8ZZsl&#^i~y{Rbu=~ue{W$; zm!N!nyMWKYVxff+wICAXqN-2IqU2{VD9A`w$5#Tn5*29Nq4)4eB;yetXTFXH2(~$n zQw$an3@7cnr^P&q!x?E`G&bi*+TDcKJHjYzr`k~+3_GXC0`ql}SOU{})E8VZ7>$5= zfb$z3;#O{>YId>({RbGz61*C~V%m`QpWk zfJ#P#f#O(*j^JC5DS;OmLWJ`;#Y~WgaJ8f4(<7B++EK^eb?d!uyIZdVhNzWFZmHU? z)f&Zo#ZmD{g`WAje6>)8c$CZLZrqqFIVD%+Cl#}^N>`Ux+V6QlM%7{!q7?w5S*3d@ zXb|K=_$m|%5Z53a0myQT5V;&gMi86k<}%qLgf17p5rUfIRNZ`8=jJw>l_o^VZlgEo z`GDqzU6@izF&qb;7`Yuu}w+ax{nn{6chzq%;$HuI>$^Z5a@Hcqv6LQfHF43(!46 z)AK0nGvT8oP3Mf=(vT6nH4P0+-g#et70uNJnb*i{Jcy8yRLx;Zj{PSL?GbTF1u8iPm4?eXXQ#QAmHVn8KG`0_+ zO^9xH*z6CA>%hs zLGg8fp;WkW^S5rP9UbQ8;45-dHvvky@b6-#SjcClrsh{YO`4>L7q7vH4Yad1^{mgGXa``rwewv zU!rikiLt`ybFg5@D54SY3Vwb9^2Gwec@fjL1(Yr!I86hQ2y$6O1q8U($wZ39B1+Vi z3A5=R0xMRU1vHuAPT`5D;G3e55_^YKaDjFveB4-!xQnNsCpv{ye~DX51c`ycX~r0I z0|GYr$ETm}+qZAy#*N@1kxkmYd-n$)yjQJOeQlE?4G$A(kNAuO-507utql@+rkl10 z_^QER&}kVpb*t5FwgDE^T(?mvHLInnTc|jNN+zSgO);y}Su=Sj=giOK;U75wMy?Xx z0sP5i=JVNtQ_Mq%0jx7WmnpfG`T6-`QN<${U{5Zq^mW<%+)PeqB+bK@&dg*0d(F;f zG}J0pD)4mNGpumJ(XPpl?GwQm)e<^vB*%_PXA zee4Bfl}Q(hC}21mWiy!*Z@&55bI+~RFKGE^pMCbtH{bl>haUh&1;i?w_(Ej0&%#R* z8;^%$LHvv))t^jRh|l|5B5tC?;1Z^YbLqt5g0WlLt4G8wIV3VIB=#~uJqFukO5_$n z107y%ZxE2aE+7WaUTsPG5VAn#4{+ zMV3i?9S;X?5Oy7sUY?x~n{tn8VLBy>mQ;!8!-ToGdgwWWz&bz3cA?s8i{yhW@yqtzZgZPooWPlEglT939~Ush+(c=GSyBSFy6)tLTEJK zFjq!Xs&OtB5Is($0@4MWt{mwJXM(^C7>08$8%ZXTS9HO&18vq9Df&oABSVwp#!5E6 zA_@5l&UeGvDKh}Hio~D90;dBLPoifqG3 zkf<@Hmm0+EN{5^St^)Yp)YOfG2M@v&9m3FG|N2*OjNl~CoH=vr)~$ZOXAA@9W1%^Z z0Di0W6w5GtEvhsME;bc%hPGiyQXclZ>a;sB#YVH&sz2z+ zh)3m8{OMsEN& znJnNSwZxQhve{fg?LMS-ty6JrPHo*#sgxR(My=j}8>ut+nuBhm*K79LwRW%Dhj}nO z>8LmMhteCsB*EG{&WO(AidRsv~su z>o0%#3t-ZV7cWAX1gykBj0pixMEg1#ab`f&4NdF$Gh^OjRC7dQ-e?ymoO*&`8wPuo z#Aszl#MA(Oe@JAPj|c~bWUF0$bIi|KC639@=$2(~-H!s&@FRNf|Er|Zw4oB1E!jfyFev5vo?25U+f zMq9ocVvW+KB*8jK+XtaFrYW)*8-rLFQ9M1GeQPYx2#6`HFa(4YBRpaWBynX)ogoIV zIC&Tqh__4@bazTbrhG;F%nABBF6dW4j~41j_Ngy?sNDV z1Yf53||NR|1c0B#`(-4o~Hw2@7`}ThK-FJgQB>F;H2D{JjmN)>dP9Nbs$F>kNPZzkm)xN4~Khs9fE!Ev}z3$W%edkoCrsk_|wU~2Ms%#d} z&Ai&kuAp8@R+k0%R4mLZ77kv8IS4d!fPk_pHCDfrVj%~?OK(I}RvAoL2LRFZbOzqc z77B``a}_+wl}cR*j?EU}qd{lX?~I27G3X3OLq(p9M;h-8hQ1dJ`@=zN5NJvl2@o;V znd7Xk)Eh4_PbG-wmtmB8iJg+0%fIu^JE(Kmym|AsZQC|&+H~N+0RT!$$4FCIkCMvG z-U}9w?NP!wd_J^UDP1spSIRJqE3k6ac|9>f-1#I953SVBaeUZ%)`rQd(xZ4S{h}FPnms=5z^0@sdA-{XzM^ zX2fYv1;M7LUtP5oO|#>9UEk|;+WoQD)rkXvj5IvvnJvwguWbnde`wdr<}L*7Hz-VQ z6ly2XAmA$-?e>>ne);Uj6dRFP}Siu29HB)tH3{LrQ6+XY@7sAK8Ot z7)($gw;53HAfp@OZv%)&qd|AnYxPF`ai`vc*o3MEx6~-Pm9ksS%;cS7%_){LnR&Gn z-F(h<3t1J96!VtP=K&+l%>ihFC{u(WRZs$mqFNY&5R=K4A$;XBbD5l*fsf1sq$)TH z8>vv_IQc99r2+&YylKIO*r&t{4W;_)Lp*}XcB|3$#@<*-RzgonqZPI7!GDKQ z-HoD%JQ4X`Y-H!t=E##F4KjR+;M__}b?0P&TF^TAsU$D>}a4F(CXVQ<*%b-^B5jRv>| z-x?`_MgBA7!R2+^KcLNc79So_d2F24DuWqldPJii!x4?VPrwYh&4Xb(Ybk==@&Sh` z-ck>tLAsz@&!7g2+mtk9%x2m|nJTHgMclFXp0IBK7f5I)tR6Hg1rrw+CN8_!LR^a} zH6%=6@^(p%Z|KBW%Tpnpf||~LotO{H=+&?#%;a#28LzAA1{@;>v;c3C5M$&UX9yMW zrx^>*NsL2g1y`!TauLjkR4t}bUG$bJI;Nvt3eI6q$wh95w_KXc08^Rhg||4JZ4coC!E>(;GrzWL_$>(|?Z0a7k(fk@j5Y6oTc0N-%$1Pw<}c}fXS-0M#Zf(E6rv@DeHR89)ti|J=gBn*aM3N50&7Te9;l(1jMr0$OyEW+ zsdQa5OPjAl;DLS&E;YMtr&5_7kH2p=zaI^+4hEn02VV}yS39H6`@_$geJEsG-44vA z;9;%V5keBfW9!CIY8fwp@L+3n5noRk6ZyPvA-`S*cl) zKw85$X|M^Zf1!fuOca5jNR{(pZIy*JUBt!@t=>=bbqS%JU=gfuj!{c2E`+q;$Q$QQ z^qi8k%7T|&G*fD7MPMzY&nH}{WO)0d^i-UuLQrE06nz-*GU{Z*mL!{DuWJi47;>5! zdrI4eXJQFLxFO+F!+|3NX59!iodI7sVc_aX^Y=b4B+(jEg0~cl^OhEYDZ^;j^cZnR zPaP3=e8rZm=ytFljUPnB6Us*9V`BwrR6|%L{1UDMjW*LwxQEPeG@30GzRu;ZW^;d= zo4eZYpPIe3fA;3SIrXzAH}h(7eouZD3U9ZE7aP65b;noBmDzl*GUzpMLn;}aJkBCF zjy^DnWun!mmCAs|rdhhuodV;l)9HNp;fK#X_Z;T8{_&50+`M`7OE10j$tRycT%hjK zqcXLzVY}7h$Hyv-f{2$0$*^ojS6XasbcJmOzPs-a+9R*;t7BMOgKDMLZg!N=y54J) z8tOozoLkWuvQDm)cgwDmExHh$awWGkJ39|Q)nZL+=oCAbck=TyGZ3fdvbmz0RR<}} z&Sh@hf}jP6sE|?WarlrX?v#1~Kv2C_&llWUtzK)js*Pr&(d#w(om#imYz;a?KnG$l z@CU)LKN3R-KtVvcs2&YcFU2Y|wJT9YhAVE`2*Yr)_|wo+dIbc)-N_RtH*MOqapOj{ zA;!9O0Ga?gO-)UWbxc>CYL8YlUDDW($t6Pl4RNQ5ViwwkdXsh?AA>;wmE_Cg$dZ6cTX zI&QaU&G)C%Q^J;`Bt&kOVuvY_v{Gde=E~;l5ZX&h_O!{U1TAAr+7efgunK6V5fDn{ zI}Y@Tz!NKDZ!9mkK$A?qk(qH>pxc(l@fDU2*?3%V!H@0RX7fu-J_IaJ;wzXg#C6cQ zML2dCeWT&QY&u`7eVxz$t&lzE7T(Cr9?Lq1aeVwA zf|C{@YPH(8-+r}s?_LN%5Q$*=jdSmF=gwi~OPT-)G!__B)DT)qVO2mn&HkeP?52EfXJe-zz9 z$*okX@U=?GP$-nt)H#*!$)OOm z;|EE_@F07S`F0)`v?Y!pp1D2tGM(nP_4@mH_wDP~-Y7Z;uYC>1xu-A(M)+c3ZdWz` zV!ilWrSM|Sd7nyCzhz!HB2S0v#W=KAnTPCC<3_?Vm7F`)wK@dM7Nhj%1 zAN?d&N>X%|IP;Mv;S_I;Id>Q_Lk63PRk;LTNA8pxA(7P;(3&jz;W2MYM*NJ)!o$we zmBCh(RENNty^JyY+p2?^D%)3dKD*@U#G*{5v{V*S!+C@c(Gnz0y*#bEw&&z_!K~7f z8b{E%7!VA^X_CjTcTinrh zws)LO<WbG^K=Uf$9!Zf}&HYZiA_3VZ66LvH?Wo&NPwxhcaT zc4%l4-^?VC_*<#xqGkY6@WPp)<77{tKK=aj&;RwWe|_qyr@+gBi&HxT+`QTAc9HiO z>+$Q+OlEBHfjps7n-dIZsYp-tg9R)kmZgiX+bUp!p+_6N!c4x~>$Te8)%;Ft*l!M+ zRkg2Oqucun9r--f^v@9 z22TZ`xneF;C>J1bWiy#<&8;}4vRiId-CDWS>@+*z{|Eg+ztabd)@gORwQjH81JvdX zhJHT~gE2&2wX2K}M%1P>u4c0)Tvk|wuk-cn)KI&64@tCnE|}38&$}57hQ&(dz4zYR zwQHA_->=!Yam$7c8x9;e@aZR?Do`v9wwvMy4={(zUpJ}^WnkD$>j*hdXSq3ZJ-i7PV_I7b= zrSz;@dZ}92TP+>QXFd(Y_2H;78g P+!T%iCAtnti&G(K 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

+ABy$nN$;Rfk;JEa9_N^#I%8W7}|>tu1g= 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

rMfh(n(}6`lcYW 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

  • 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

    6a3wD4s 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

    Dr8=@ds=Am!b}V+koGE`uxm}0gfO;tIN8n2WUJb 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 F{{UpMb$$Q< literal 0 HcmV?d00001 diff --git "a/Week 03/id_636/\345\270\270\347\224\250\347\256\227\346\263\225\357\274\210\345\276\205\345\256\214\345\226\204\357\274\211.pdf" "b/Week 03/id_636/\345\270\270\347\224\250\347\256\227\346\263\225\357\274\210\345\276\205\345\256\214\345\226\204\357\274\211.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..53142180fe645c39d1dda5e4f06716cfa0a66edc GIT binary patch literal 838468 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

    *cC+L9p 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 z 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ð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%0A4_MO}`J&cj#7E$__gL{|u0UO1k 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

    pFh7E?QUBQklj{Of8FKuk1!jk1@0upuOupxxG_ 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

    >Dz1KbTvCKC1#l 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%0Dlru){q<-IkZv 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 Date: Mon, 4 Nov 2019 00:05:24 +0800 Subject: [PATCH 178/740] week 03 --- Week 03/id_021/algorithm.zip | Bin 0 -> 287416 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Week 03/id_021/algorithm.zip diff --git a/Week 03/id_021/algorithm.zip b/Week 03/id_021/algorithm.zip new file mode 100644 index 0000000000000000000000000000000000000000..3203d91ba7ffd12986b3ed482303ae594f475fd8 GIT binary patch literal 287416 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

    46% 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

    Uqpl$NqTQ~a;_g~QbYyYEiC|MmR) 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�wv|CCi;>cUFU72)m>o1BJ#eN z7!G~sn(4gHortsFEVz1v^v=#d{y>U4Gm-kG0-VQcHD?n{M*FY>+V^_rkuQ|8A?6V0 zop8LYHSDN6GqAZ_bP`l3R^T=Tl(l41_h|6V^wA_#npxXlVrTKL(RtyST1Hl!%&UdC z(|SS%##nOTm%>0i%o>T-Ku`U`J|+AJY2d{H*CHxBj6=I%;8#{KxGTEWMw*FfLQs zD;GxbNbE{hOqN6k#@q8Db|YB>)T#F-`w^dw_)S2EOOu-rOv@xCO{i7B_8jhjfeT{$}m^A#lzl~THQo|~0p z=Qyh}Gm|slY5ksqCowIgdAH2{8B6IsY?GJoy4X*)KO(Bu3Lyi>5{ZLDzbcHOqZ0Xj zg^9AR`#v{qmR2`cw_&(A&vFu3dpfVJII9SoPqSWaRNm`>k|*`K4@ZHm>t1Y+mq+c# z$3ic3v#AXAhTc9=-Ob0s>*h0lv~=LG|5-(Du3V_sNWVjdOyA9K)1*pD-D}NMu! zImQzlL&eHgXn|80g`vHD&d{6|@kq8zYKuwM$E>s=Wi6h)gBtCdiuG-icSEoA&zurK zaTsqZ#g)SZu9V`}D0&dqX2339P#XjxjBD?neead0+uHAH*DDa7yGll-VA4vz7TAHB zPG~o{Vit!}Fn6!-P@oryjP(6rk-!R#`mFS6%&|2~3~^&X&zPu1(BXS45n1s0$lb=m zdTMF=d7H{~HnWv8Y7nS=u|g+1nBn|$b|_QT)jvib&ExNgJm()t({_93UM9pOg(t7)e$u+}m|dn^ zUjnK&$*QKO{ub@3VSRjytoU#k;J{%OgXlU{|z&}aidrBK)9!X%k#pS>Pz$ib=n zw(0*Db>3G1j_a=kUS&0+M%O(%7Jr=q%S&VbZJu!XJ)>G0>!amoc_@7kn=g$B29^sTzL9_S?ABrKW>( z{T4@urO{kKTOc*#a$x+x%hyCNU%WDJDp=r9K@A*yTXEoEKStp*q`=tUbe!%ZUh+NA zaKCP{|Gagv;XB+{pQlkW`+g_6E2ob+E)>nPZky!0>b!q`LCAoR0^GDem>-=HR|I6V zLqRavIc6t=*Wa~T8eQ%3c;6D}XJAK=>sQ?Pv6?5*$5 zSz!IH2?KBrn_B9uYz=ir;BoW^B#`8uwl5Cl8?!_AY>d4lIX5OYkJroZ#LTzDAZh80 zbQdGuIG$L2ysXLULj$R}$!5DSv+IlC;lfMV4G+dP&2N(2Q79@w*_y?aA|}9!!#ZvM zJfDoi!FA`U8(0Nn>ZI@V#Gnds3r2Rdg{j_FeU0$Rj1oo}Eve6eVnG|c;(Jgm#f};3 z)_2Kt6`CMVZ=1EExWVvsRQed|y&^)O5hH(H65i1jWl6L=!Q|&o<1)l{S z?ITGdZ9L7+5OL-x#5KTLBsH4`$U36rOcnibpGC*%WeG>iEFC$|?3Lk7&Gaw7*?WvNabKFL;6{>Zb=GjqibO-UCUK=$Sze*F=pINZ37m zNZfizp@Rv-{M(Jxl@z%hC8m>69+b>H3Vf)q{tV)c&zw7jP1)S=v`$?r96^D3i&f!V zM}l3;9F56hmmpa(5GUYQ#DD^^q9y)3O3VWpfvel#4BVks^@Ua=ArI$op`50aZcWm*PiWrRlY8!h+!)3!N11 zfOAlN}=T|$cUYi5zH96p{w?6_CNZJe^`U~ggO z8ta)k@;7ay$Ir!}%uw=Q}>wXfR67f<7NKcu%!_IdsD`?S4*EN|~T^y&m_WQjG zpRmuZ`Rt`gY$sG$o&jl}5)i|TPBfBvkDMSNt(K>dLkpRX$(iPKW#GFz0=5V$73Bl& zMm zMC^%K?k9R?LB*BPJbD!-gW28d&I55YciebL`C5rx7KiG0Qyqu`f16ceK6 z7wiY+1KEz*`_TURBrd9)u%{q*L0UBa*yS_U<{5eh+j(c&2WSb>f$FQrI9)}AXG3u< z5}p;Q(&rexo}ZX-vN(cGpCDx1<{!;`N1>e-__G6ku+Wuj4>w2*rKWMMFSkx4cYj85 z^2J+l5>h!dgqU3c^!xG#R}q&1E&X%=MSt9@gFl=x#_uo+x7sWy>a#{ApV5V`({~nL zVF-xk;w9Yr^uQV}CL<|#%^ZWyBcHlp;Qk8p4$LdA1(uhm?BE>i#a&(pG zRHu;KnJ7sl^B^BGa#k=D^V5qMi47D-&IpU$nQO3oSSBQNaiZ66(+ zIzZaOF*o2WDJdp=Q8N}Ly?~#02pfj^HXYbybbx5_c^T$Y+yKlnSGum-K$1>4D|V;+jm@OK8^9jJV2c?q6VCd2L4n!%*?e5^B1Z?u zc6F=eZ5!f_x&u%+@tfbgGGSbxP#Pe7d7?YK9P#~oD_zoK&*)CR^mbScj>Mg6Jl-GK z#rA;Cl6WK5z4nfaV~Q0|igk78rBHf_-#AvJne$Z1MLh;Ax_2;qAN(}@#4=WPe&9>x z5Dz;EWRjljp#j_bON{r5ANrB?RO!9RUSAk0MTMkq%l;k zNr0eZOt}gAQUZ9L_SZnE$8V7AXawaV-Vg-in7k}%5Z~m@lwA*P#QmIu#!ZUYz%KMW zMKW>L@yye_-2R@2;Mx%BLxp?m=#1U$u+u>~`e*xUh%Dhp3e|B>oqDV1-th0jo2C({#Bje!*piu9rJ3&11$+LzwXll$r z51i2^d*m8*VkPLEb(VPdpw~qVv}!p|)tU7?c?%F7-%3@{U@lu(amO|di>a)#>q24B zk;oR;>gjkY<#&&Cu6VEA*Dvp1OzR&|N~3A&K7J4<)>f7w=TsDd9jNQ0t5KY*&Aa+A z76Du#($2RAa*zr1Zq?;^^Gm)K_p= zt*ejR9dxBe)XUieD|GG9s!JQV22n9F+3%1xTy9=5egbLwWwh3&sIq4vlq~xC1Mfe| zAUkn%LF(O@N?eq<3--!9K-FD4%bAMBt3bc zWUTqZN#H{V&+*HrL;iH#fmUQ-vadOJ%!#v~ec_d7ZG0EP;+l5RDhKUJ;J^v`6&3ij z(5hPbtzB~14EwpQT;f8?ekZofT4`z4BZ73dw9IK=c}Nd zVOUpUG47Rx+PSaDs!>mi!aiZyO;&!MI6 z!=t3tG&U_RGWsm+9AK8ZcBaE=nql53&usco&!|N|3)qPRZoF+nhx-Y`o|Wup-TqR> zBlm5!OQeL490*kS%jevEM-Gc@>>b&ou^Qh!5=ZA{OyhwJO8V+5pLo~rmxL@lo~Uj| zWLf>yE+7p~0zZHVilworMO^@Ez~SkNrBSq<4Uy1OqUo0KC%$0Vj&JWBlkuls z_7b^8_BDJ^==XYTSaO8lj+~UNobz>YchtJv0o~%Vm35qL^NV2h`>|7KTMgA)-;{Th zU1^zq($C0*{4gW%Dkl-MGtM3m`4_K(&b5E9-aC~MG^mUK|ND>*^PO_TFX0kdy0MUg z{oW&!?BRanD~hAr^d3sk3u97B=h@1vr~Te}FBV>cW|S;AwB}K-gwz8!!43s7lVbsw z4L)@TGY1-GnTq}oM6n9N`}98k$(Z!E$?*oSqi8AN0m$4sWvt%HEeVt9b8w~`sYNxZ zT?K^aPu6gE_8v8mOR$gJwsY<(4buH2lYri2rXDm1-aB70m`!~AgE19|JbB3ZagURW zF2G`=sRr*$B*A>Yz|GuB!}ERoac5&3iEAWLArJF$?Pme2!d)(Xef7kASulSp-V0$SQ8R{B~?ufUxv$O;$D6>Nu#=2xK0ZEzMY znwOxmKXSNe{wFxqkCNB@{8NA#7v0UWzg}~Jf-U}|-|N=sZjR*F^8csPTp+&IpT~Q1 zL|hoOX5Bvdh zx;o|b*YJklN`hcq*Y@x0)D?(~`3KDD>eSLR|A1Uwol<%bKnuLi~WJUprP-apR*|~9bGWg-vD1?(h;qw579Cc=yZ|q1d z%qC`^EBW*tXJZAXzKgo_J^ltElUO<@lngia4d{~&Qk|`Oig;+L9>n3DZN3TINsir2 zi_=aI$g<=DE|R?xhBQuThm{sGA8HfcwzwasuNr;W`C8OxyG^8r1t6#}cq~Gxh$C4k z4Mm5Fo{-uz(5tn>O(shG0aHbQRFgR6veag*oy=IO!l?yQ>2h-W0J}lFPyF<@Z|S@0 zK7l`Dwxoni@P3Os3Jwu@bYv%qu3QW9d6J}t9mMO1BoCcmolz{0?q0WCV6I7#+<$Ht3bJMx0bR~QarF8tbsAFq1X3Iy@ zmrWI=3HnD*jdC`u1SW?|x?8FC`(#5CKRqe=ViD3Q7#Xn0c$C8ib~k8AL3H9QZyjDnF^hIn-Jq zDSq^64y<`=Oeq(&rAWLv%U1)ZaEv{gf%YE6JYzV^p>K@};SjJV%o*a`5u=Je?C~f8 zckC=GgHY@Az3&+$Vi27_LFE2G+hx@60m!t-culK?9+M}1iUHpZLy&1@L3YnJqO}u0 zX9MxzL5Zb(1XnhhEaEJzQRRe|^G8bmaP9#VK7Kh@9cCdG_TE%kbuXJn-8{(tM89;uQ#R9y8*E>TB!5uRh}X?wRPyFVQZ$4H@@u zy}%zUt)^M*M$jTu_ccPAmoS(LYFEIkY9>?R+srYrKH&AXwvOtqajH2`FB9{cf+Qq; zJ%#XvAR;#dwnrUpe|DX0nRkWcOKbUKU>!gn{*-IQaN>L8$0ZV`^$#gr5yP6W)5@dl zGg}Z7gqrcUY+Bm8syu(;{tW}sj9y_^KnwuBTF&k4VtlFcX&{&9dznKCGKoEzN%t#8 zKZG(&!n}#i2f$qH>IgcV@D&g|dAX9o{v>+O5-l7@yZ^CqNFlgAq5eb_Gak-sGm8Cj zTwhc^I5u6l{Izm7MWV-rw_DY}tvTYEux~Y#&LiF4Ft#o2&HRr0#lHkb1lwcXR+)$Vc z(y>%m*?4spVDddtzc-H{U}j8spNx6MdnGJ*RFRAJm&DAkt90Z@$wM(y#{vz}0X6DT zXYjS3nUM02&LLjYC|tHn^e;fXHamq_IMaE>N`Vg8w={B-0LVaZJTjcsfLcRR^A|UB zBHD>C+ZuM7!5%wys=dJ0wDUy8Ju5a;|LUk1$9`#YnH^NPc-usl`~?Vpgq)^8uaH%kKMM z0hBLxr;S87pFi|oAagAOLT#^}3W*{Nq z!SPI>K&m#}j?WOeik)zsf)N9Ye3YGM+oUY_<2R)SpW*Xc#8H-)e2p^cqw(Z=NU7UH zU&5qF0kDVllDai~MRzCW>pTrjp|n_M_v>|iv)rE0FV^CkdT_&Se%fdVV&Xw0S%~gj zX{4>>YQsBqe?djytN!40Nsv7W%gWJ5ISoVZ5du_|+LSN2v5m(XB$}Zc!_tDr9Qe2V zwh2eBb^G`3)Yxn$%Bs8QtTwBk!oNQ4?)%DO)L%kcERoietUQ?&bMg7D#*WTbOe$BM z5cZ3ju9kNB@1-sXuBEq_;sCTabW8v2#RvE~vZ9O>R~X1P3yP-ah%eKQO|#QAJo?!F zy9-{IsII-JYz1N%=fG$zz&za2Ch8IKq;UNq_QVn{{gMMWWyDzW9z4V1Ft)4gmK(Gj zdEG+kJ3aR|W62`gHms{sygmqp@wD1JTZ4u}n^c~;ws`F915Rvt7haS7tV_ZzSr*NG z*1}L;Sz3s!>c4Nc^7y5E>jhL~MPC4g>G;3(!B5qDz3WKc4@BmdD8|FSb^K zE6wenUpfMf7nYwFw_C0jO>fomjns<2T{!PMXYb`vjsMu*r3y6MPTgiN9-)29_D*k~ zBBqH&?zThAv>DXs0;QIfhXP_dI?z}N)_ ziah*?0?)ioRwe;2VrM+QT#U0u<#iz~QkA+>Jj-~N z<{~acsj!AUZ^+%&&PusJN;LO%iQVvVF9(_%yn@+iU9ecCumszek7lept`KE(+S1=R zcUAxw5EIQf(1Vn^zH?%#UvR#0@&s2!kNGRwpgfZZle_r1{+$Hx3scUT@)?#SetF8q zlT|)Z|B>mC#pE^{Kw8ZI|e@%_k>7McK-g$|q+?zMQ%VD&@8=*ka z2n+pzqGQxzfSDXsZQ8UuNHJC}dvjaE4Z19)#{k0b_yN5HqIt`g$!vrf{j&SZbny;? zWdwK~Wi~S;7%iK#k627u%3aH>b%n#B1+AR)6Oam26~g-#sC%(iarZnN^A4OUEx%0| zsH}fsXq2Rm-!eFRdp`Cym*5H3tY2^iN{tSu{-=QvHRt)NLXBEWSoTUtjwqrt<<;ei zMGy4&f@5+k1X~Qo)4Jg&X|s-HC52{dPK9PBbsTPfG@FRbe(Q8tSj2kP4~%tkOJcu) z>|};n0Tgk#aVNFkM0#X(sMu!Yc zFuVSC$Si_z)^_K|mN4<&7MtoyN4s8c3eAk^p1Qr)0;B@at%)DSk-lV0(8)yN)?GBP zFiK^=AR%GDm!ZcR?NzT+4L@MyYdnu`*OAJRd+!6k$+NZ`oMIHu(365E4CQ-x}JLpG|rAs%6;Mv)vrLR3FY=@ciRa zP0Eu~CVEd2-PbWoE5-PL>8dQ&mBf$Z2bQS70|xC!r|b4Z+51YwSt~j#lY2|FyWwLh z+)fd?>XDywoGBWrYC!Z|3-R7Z&~InrrEM?4*$fNzSFn&(+}Z#9{-nS0`uuO0Y3ONw zVhErGnQ0jCnL%ERpqP?OcQVsl?*))5>2I28{z`@aKi~h8e*b^2^6xJ3%MgA^-mSNP zsnYFD|E;EO6uxnJd&4*H-m&miv45Ab<*yXA|H=EbfS;mB{wKTozqM^z0N`fm!kfdS z1%OHpD_kF=-}L&wB|%#X073x#W?8u2Mj$l$A4$-1|E50stuSb+0oQt=-;$sy0)V2q z{-_I@p5H{y-*Q2Z1)%+5Be@zHD0yup`N>Q{d&9)=ubL@n@2H0d1*QB+wh03TEBQV4 zOA=g2{|c*Ux(2Tkg3vw`rb4YL>JU&`TIDwLqm3ek56x!xXpF|LpwL zxXOEu*LE0NS!wc1wfcCE0!yA%T+Yt8MEE7jypv#TbDQ2r_NEbgYKSKT9*x*2`g$)? zIdy^KBWimJ<_F{O$90r#pBZ%@VC9a`?obef6zdULf=To5N-y}O==+S4jHJ08wF3(J zHGo+|;CO_>D8t7(Fk|if1=EKRGPU4%%-`G0(b^A|TRjkJY?b-r^m!C`Q9}uVEKm9` z+Cn{pF0z^1yy?9RSXceT%P`l#Xl9@bP@5~70(ZdDI65Cb9M-8W1DhJq>BV(Co85fA zU>4mdyo%OJx5FOWVSPq+GKD$FUd(A`ae=fyps2{|;qj>TU=axVTw;Bbkyy^Ri0yHp zQoQ95qiX4^x8m$OUZptpin^`gBegerxZ$5apa3A_+MTqp^uG|0g}n$`1O<4q1UV9d zHrn|bYaO;#zvZQseAvh_k8`2_v+tEYO1BT0rMHk@ z?pBq(UvN4+OJq#Bmp;+l*Q_>+&T0lb;}c`r;rEe*?fY!;R|Ax2k@D2Ho1SPm;2LsICWf%kB%=Hl z_e?#)uEky|944WeMYls0S0+sQfUUc%f(S$Ps6N}zbS=NcDnsp^5>;1u*gH|n6$mO0 zUAz8glogTeDFyyIcj;7$(%s%JW6OlO>oMaHsOaTLTow zn*>Pv+9HwZGULjG6}mz`dxr7an>~(h*v~jStIdL_--TEc7DBsa|I*!2A5QxVK|?Rs zRRkNz{;S6(!S^?NpJA@P(~$RJt%6cj%e#@s)6*ncfx!wD(1zvFf1a&zI-&Iu$XRzz zdvBo&X*Efnc8Ng3$lB5`j`t)FrI=226yA$e__XO!oBI>dhJu&f z=DlIn@x7m(=^n}YFgb#MeZ%N<+mqZ;9}FS@x%s*jkrW66ktcxMk{lalHpf9)L20Cf zOVwAv&+#d)p`LmmqKV0uCEa@;iE}*=qg%G*u=5LnjYlb+&72>^X(=S8S!tfS zAilY1)bqWp8}2E2sDqYPVHz-28LT-?|uZYMWeDUm30)}->Ag>i5v0!?(x#Nb4 zkSi^VjP~T;Z_bTDd?DPX+!T*5J;i~5Y9QE=w5jf5ubvtH}A8} zS~^zyQU*r&E8j$(2d8|Z>U3%>8N*dQoUeQzI+aLzj*$x*9v3j;t30$RpE2Bn1AQXpNIb@BBSqCv!yB#|8U}wpw-2 z2&5J=@6rPUk+ulOc-Cl;2S3qm+&vl^Z#GR}=j zOYiQiGLy_z2e;T_w}?bnSs@W&ZtD!ZXXyjQp881*n%o`TRBr3TZYPl(Brk@r_J^;- zV$h`b>>`+e=L!?I&Cd;a{hw(Q!h|&ntouU#;&5@tLnuE3Vv<(2up= zseFBlm_|0sOe!LoNy(grDfP%{k4&OE68qu_Z8+6Q+DX$Q7}W*O7*r{0HOQM(&GemE zsSM{9fWA(Gdj~A9I`kmwS=SV~7p^K$g)kJ_HaOryT#C%hER=Fa=mXp1K4DjB`SfU}MVDcdaS3-aB?yYnRMTi8kadA^ z&n?nexVniaD{vB%ES)>-_zNOL*x)q%qQHjn8!Zw4eTV{-tcEw!o>mabva;}R!S)kH ztO{Vz5>0yCG1a}^B3634P5G*CTCb9yZ?zeo(`V&#FXaXd<0?g%2TD#N(q2PY0`UY0 zmJ6zwSS}uO1Pw&r2IZ%_qtX&Y()9B>y}0tA<8erE$9e$zDoE_$n$>W+WaKu+1&*-$ za`*Zws2C2UBmh$51>=iX-}+Py4wtPl7{Pz43joAta27vJKxotaKxc-b+|R%l8o`Cd zHIu-$NbCN!-O%>=J9uq)Fu30SB514SI31Hgca=jq0lZXRedAO?jm5zdFV+X|svNj! zqUp(UJu<`>?P2)C-?$D3A$v^SpA~>jt*Vom+PDuno92o(2HWt6HK5W|rqx@sqMGn1 zaFG1LTBV{3jj$+NXuq1QE*r1_>a#S3t?-2F@oSEgF>At%N1}*2b3jWuoi86ZdQ3K( z8PFNuuckM;E>TyHPMcozZY6cnGRW>6%}#v$5~sSrTwRx5!2KvdD(JFvBT3D`6m7c8 zmNsoIP;rpG+u7u4)3F)eq?^x&a`x64oT-&BT%t`oOm;YaFMC%V0z4|Vw$-1E!xkv+ zx=9=dow`*teqUv-??CR)3}L$MT-{N_Nc(F{gcnF4#(o|L(K&dYeV72JM4lY<#qY*O z;x-dj$nEbR;`2a4a@k@t+ioNwP*Y@wy@r184#hj)v7iMjpkmHugq4phaSj`4#>`~LB>JP`S(XC6=D_Tk2 z2A&6j!0z ztV@%agUf?Y-?PYOE0t$D26sabMJWaO0xme>Qo5#LYl0Z zW>X>jifX)?fEG@eXdiDMh0de&STWm{POJ_!!{c>XmmxV@8S#$u6C;z3x2bjjHRFg~ zs8HVb&?J*DfdTIsnOMP~g$p|(bi!o8L_EG>L)La=xIpN_;8D0jG?MG#8WwZ%1X0E# zuO`AsMfsvNb*I^Hl zZ|-z&oT4d)OG0UqHLxdbRfY_23fS?ur#{Vnz_FMC9`Vh~Rku&5_B8ETXZ z2~=B7+gF$mm_TGBMr%#Sq;dU-*%utpBY39>Z%$l7Say7NVN8xxlU-)HeVOb73-%y# z_XARI+opGv2zQ)KPVU|o;p1`wr~=h zi!`5yNLh1?C-kf2r||xeHcn{4ECp+P@I;Ur9(j9U$fk%G$1kVUb7s!TA_&%nFir-I zIJaI0)|K*iS)k=WTd2}PX%wp|#JOWFQ>Im5=oXm|RSfrL0ZT0XNp;G|ZPnrG(=Bn& z%XA68Sp}yIV~#7y+B{9J0o# z?mew?;`zSJog+Wn`iV{+*I*>@nE;r(*z1H`d9`rAy&&pmwoLZ|rP++?{oC6<Lope5kjG68n3i$ zNpHdPoUO-U4jm1OEn%yR3dlYewAx)>mEH3t3%P0MMLm8w5d}d9IV=8^l@Hz%tW$IM zne*co#G^c6+j06{yWeFV;lRE!v)F<-ksiT*(x|IB1$RDku?Z-XK0SZLW*|B673%Y( z5BZ<>E{HSqk9W*}!_vS&`;(>Nicl70X#jB>f-DWdJ6Rg8Hw8%N^Ix+x{7`@2QT6?! z`2UN4|K=n9Ui^Qo^_K2Xfe;yEd}? zWc#4MdUgKJy!fx$KIreNmi*bDSEi2^3G(TEsQwu#GdB@ViCy;aPnf+IpE05XCfSZ$ zc&}m}Yn|%#CMmC^wD9^V7O}a%7>`yXYPJt)CAXl#N<5q-NERL;h)dM`$6c1mEl2ip zoDIQ$rSB1k9p1I1fkce};da_Ax#B3X74q^cgsx6GT2#QE_p{P8>P-%&*B1kY-ArkP zCe>4Gg8EKbcuw@=dlR8?ZzRS;n!CIZ?4K-u^mgt~FQOP@G_fMMMpxZAm_dmt&Fwy7rm~ zp#)i-@n~p<^JL`1iQ`_>4<&;LE9P~5O+X<6PYr+?q|$F2@g6zKe>O)#>-9Q{mqlIn zt`0Nw51s*u{Kbvx%;ehwPw7eZnN_W!Ml;0Gnjftak&}86*;Co4XA_WARYN_g!+aBp z6#jgM278r2t5pukRMHpq8B2oz26FXd0M0|HdUc04FX3ZpXrm?M*0ynDD>~F(t`Bsg z%5`Xs;!Q*4fE+Gza9W;^vL&{B6VPmtr@9!z<=9R?B-*IE^p5mjXYHPgCGvf_8^8BU;?e=?#YtuL&}y7!l6Do+@*cuK|{ zw@fuIMDd0k`C;;XpX#-GPPQlQ$hi`kYE4R%0ebBHt(I$=xALCfQ?Gf*&YWqcH%o|c; z>`9B@;ULxog|KRDm&kEnQt8-~8_$eiS89+{l7ip?k6OjUe1`m4p)rXT8;(MQw-1v%)dCy%xFxF@2Jw!cdq02 zQuZs8+vewn;Pua5KysY#;>PC z4x=mCi`DDmwO05ni}cvpuru21%hh`?gY2seiwA7Z`jT5kKOxx`S|8cK;eAwn3?oe2KDADcI3D*vIIDAzV?^2qS{?jm>8!C;zJ?bI1&HP`K{Ge5y& zi{G2tCRuPeC+=GyArG^>>r|2boeW z;i29&*!P5b0PMG19;x<;fc9gMU{Rla4BC)MVUx0xWv@NbV;M{s&h0$J^)xH^pwMEB z4T}ajC*>Q@w&cw6q+PM~Si;mp;Uafr>CByMB2q-95j^e74sFlV^pF8T zA!*dnv}x)6f-Tq?HuLB7KGs^wMoqrU;FmK?nN+XbNS0I&e>|wK;~cuK!3(uk3IMSyiPzr13yn2Oi2OY1A0&VC)8#!*yq=Bw!Y%2MvQ-}HL zFd#BP`^VnH@gI1bhpz%opZgpU;J*H)4ZIzrmCLwa6#DEf}zeV+&qu6pphi`QD) zpa@&U9rE_x63qF53X5UyWnsRJ(`pju*d;vm+pX|UqB^C=@=$*nSvq<(uMH{h?#|Fe z_VR5kBp-*UzGpwQ8*1g}q#z=rI5@uSkHU%=S{n*6mK1>xNg!w)9@+AJO;k=r7{Y*l zz|;}zryM2vn7OzusMT@Bl#}vUu5Q6!3<<|7j#q1zv%Ar$f)W(r6s;#FGuALCUe4w% zJX1TEd8OP(=W*FuU4)MXa4A}!R(-@6)#VU+Hyjow?Mar?V$Pi<@?5uGTr{DbnV*Bt zh`(^XtM~6KrgGe-==9bifm}90g7)`GaPVUc@t!DBNxkhEzcL8ERpN~yqJ#ip1yK~V z{5f4V{_0)AmG1~=BGgSIt>42=VHx~VYoVesqG(hE&=A6?$HKpA@jR|U7`3xnk0PBjz?FXWkVJ<~oE{n&jk8iJ*6dj@%M0*sQO{maiS>SHB|Y)XW4JCd}`c zsyrmMX&E=;R^^6ycB(#72Knh-iG2%sQ97it*OHF2fUEkNpn`cW{+7*LizDIZMDVOs zJ&tC?QQ+ho{Jz!_NuLcgJo5M9F0v_vCa#l(C!RwGy)`y$&i$<`ah$0Ba3(In9hax= z&O$=+;(g*BDz*vupX(UxG8Pe|`r>N+=^};;_2~=04??p%M>l$*0}&HPuQ)-ip{&B! z7C2p|PORMD|AIIXb06D+D8^2zEa^jbRifNB5kxPyz}zOL>qrza`^S?LyaJ#Zblqo# z`pXCYhi4}cS$OKZcXi@@MPuM?b6F)GP=tEK^#k~q!tC>M_3a6=K|NO!ub*yHn=-0H zlYy~)EH{Z@>p{=h6s>zB=p5j-P3M84k!bu7J#WCCPASclVFkZO>5Wj^lT;P`2NP8R z5V_dUPsDVQ#>&_Uw9fd zCe@NP*OxzB&pd&iupKQthcQ5mR!<=*H{^#|q@@@0k0J%8?Irw*zB7aP=MbgHhg!pl zHk@^I4Yui<7ha50az5wY%smBLUo((>sLWYR9C8m-&w^R8E*eOOxYmB=%XVy{3`I+hRFjbf}WEl1IF6#$rLvCpe@ge0yg-YvjLfCn7j zH8}Sal-W3MNl9{wQr8EzH$H72$dr`V(TMlAEQ0iwD9#mAZgje!lKk=_Qgeg%gwYJr zyHqXYtOis%Ek6BXHX-%M-*;P)=^Y6PjXq27;L;>>u>T09av>jGeEiI>ude-=IL#|( zuq8ts2e3${%o&7TEy?g~cE?=B8pjv-R0@9{cL|U3Gu=3gIJZ>2sk55wm@G3Z7eU9& z>M24bbHN*~I@tONFBAVB0%r{rQo~4b&*t z`&qqBirr)2Z*72ZbK5vn7}st|GMf|Nz>^FWRYNF~w`=)ADbL#>L|b`^v`W(nw&bqC z9OLoklN__v0ijSLtWNn|eR^-n{PrREAJI&%-H;hHfJ|)%7+tqMA&pA&kEzQmc%{qM zJJ}b_!n4V8DBzqcAfRXwdwu$@MGIaY!HS#j(UMWj&aC`->fv_@A{EsB4?!_jAZKfp zfCYja8wBK$hq2tcv8+Q=Fi*PPTs9H2sy5g%O?Y{K7Z~`8;f<TC;jP&zd_?)m#(sF-h?PVkuwG$TE z>WSk7|M!$+tQSNJf40Cc?U7--d1#{X*ajNzXVutTps)(x) zKI%)<&M0UNe!=a47l9O!+V>p%PRoMCw!Lq_{edOR@4Tj`g8~-Am$?R7W&)`s3!VzH$;j+dPGsX20ZvvN?j zM1})9`r;jiMJvJ7RNUe#+&D!l>wriPbv=S!lzwv}r0s%)QK3;E7{|zsxHl_I9(8f{ z`UV5twC!z#Ge&;pIRno~vCs3dz3||)X-^HpYs*C}pXH~2S<%XRR)2{MS_DF4ea`Qi zu=iC2ZZpVKBjl_e0${yC?l2pKDPMw9E+?1`e@+AqjFN-I6d8EiWjZ;yCqdhwZ!#R# z=Qy2G<0JTwT@(O2JXuZ&%w-}2=B5RDqpYB_lCdzQ9l3I#xPqGscYEYK#aG3qoNBHL zacg`Mr`}leh;gRK(8cjD@IFf)!`j;iJv^R`ychMoe9V)5aGC$g2xao!n9c@5FX>0+ z1ZziuMQygGep+=tT?uVMnG`i%potZu32m7--2)XnYb8OX4u=#L3GNhg9%EfJGd$#l zp2J+<71FK`y<2nXkzXk3q8w7uGN1VKa7WYHb=j&)U{6+9wuQ-{K zc1LSr%$|n4ZpQ^mhMb~jB?UXe*L#ygmN6 zv-|$1`>u{ThM^>>xWXu9$~i(29On#@S*KR7zMR{t+|{M`RA)eLc77!qfsEj-HbB&k zWz3q_54uiI`IRxP0WYpLDUwq+b1f(pF;@q8vSk5L12smEf*;4R)F;j4XS)}6*Ug=E zDm9i<N5RaY3&2R0#%pBL5AaVQs0 za8~mG!crGsSF-SVFqcT8UA0Y-Q?Wq+w`0{_sH z-&#LgU8)n)u}v-5wy{Stk};~)c5}zD5qsT_qh9wj`4Ky{J;%1H>7gf(OVn}OeI32luENNw2-!w=0`5;63%q6|g zT>TQ?N*Qdk=TJjjea6iL<8s3vEn!xXtYMeS)zt{gMZTUT#p0KMue%bV|0;h5VX>)! zbXOu!&*bSH;N9y#YzF3d7DN*4CM|wIs^f{GXd?0;l0+JVfcUr)CFs9x79I?Zy znPofVIkKx!MlGG1frH}{!}Lv54Fazm9)P4d!Mc&EVs9&?|8}Fuc#g~&3NZd?R+R|P z$|pb(()~?Y-u5nxV3C^fT^)2^&FvrDmPh;!0N)Ts8=+sMJozpD-j5?{S7ZZYL@o0y z>2Xs$a?GiKy#B;s*UM7YQzBXk^HnkoPLe=+UIQqbIvDS*_Ws>W#D2t55YcSwt<4ArJ0~1J^rh5&#)~xyx@kCxQxm~7*joLOw4|Utp z9QqoCdkgZ#?aa8CrdWX;15B~cmn@b}6hnMI?01qIL?9;X0>8H+_4RA9LH8w_-|c( zG^g48@Z!VT`w9SRLAi9ylPts+3H3oE%tEd}E;?x;OBu#t#IM&Gkqo|aO z6C(Vn3=kta-P3b^WS7)i+LUy$@hCb?HQXB7ZTaM(v5HWbr&+(fcO%saJa0C;X>w#> z=D5G1b*MfC(=JkuAgr37%PsE;`ca6RBk{>>dG6Ga z8aH&m?L&af{*;PR!+Zc?bwKb{urSp2*)oFFVbI=d`v$T+CV}-C36?7Q%9RKks$sK! z^&uGg0UnlKbg|sg4a1MjJ)>7ZTs%S>hlDRh?ad)OY%#1_5L=c7K%2og#nkMLiXkBe zBJW6L58TcnX!WD-QX+05quwKo8z>a&uN&NrsC@0FdSu$|6^`VywjDX<@@AZ z27X!nc4XeRa5CdT^S2gL=`BlQiKddzikCcECdCSkCy1+J_Z7tU!mYXt+oA>II`ewy z8`JWYp@2a7E9#=bXCG@JOs`I5=FOhsqlR|YYKE> zuN3xR=5mD*Hk$=)>c%_eiWrTUHJrg=F~7M23!kZ;s*bL0VNjs1rBYB|_`6a@CHH1~ zBK7(T$LT*y#M{~26o~jSBO>-gAn$pRP)Sq+#whS$(0%ps(1_G9LZ)bB+Exr zRN@sxDiI9L_;!z*>8sk61itA)P-h|MC<3Sh(@44Mr+G}{y;;-2r~JK~a^zfn52&%5 zy55Krh?B|Dxw7~?In`i?s7GuF8l5#!80WJNPq1*-E}a{C?+P!PFKS(oJQ}Q@D?Fpt zn?5FRLB7>9YHrJG@oX|@mx{S{ya@5|n_|sLx*H(ZD+c6_fvDX7Ao57e=u+n0nM`Jy z1J-08iSwM8JISm1YM7QTBbplttuTSmy(-5hzmfM-t4o$E_#&xywQaZzbXITpb+ zf?;NYzn2t6y_#9jYT}D7pFu)A|CJ-_8>;a*d8B$WXB@eBlktE7H+|4I4@L;8Q@40q zG#GkpWK{}zPidfanTx3bJfejjig3Cb6_`x_nT8=rUmDaWpL2(Fm-H>8XCIyjC-3@3 zhV-6Fydb5Sr;$igv`gzRR-xADV;50b+=GK#C*Rhty|Q)HR?dTXtl&Jka!ROZEo-T4 z$h38lfSrPkTj}LSWI{h%9AAQjYe{#)seK3#*g0$dRJH8S83$9eV`B_73#x^D1OA_%YsT*u|T$*^CTDw z6e(;*SaqN_dr|%Yu|Yqn(HfmdmoG?6n``6DkteZF`XXjxO@5ea72%8O@a}PBu&WLE z;|E|gMrgZ4hVdIOu*={$F=NqHIb#1@a zg=V~^zWA#m$TPJwz*;*Yo$*H ziAs`Vkq2zimaDYoF{@ix#>cJCAl${Q?})eqya{D}kEMfy_10c|?aqtfH?NbP5Ar{` zr(lX-VLii+_61Zj{7b~jV`J&&T`ct_T%VXu+>F2~;#wW6^OQufbj#}s zC8PL;ma5Ycim)6YST&Wn);ZVM&M)Gpz(&>GyO-Q$8%+?2?IrXf{buIckcjQvI5;y6 zK3a>jH25YAqYjH|M;WVsIo4PG!il*1eW7=eA2~sgPsxuS+@ANs9}Y__v@;cH_|akd z3NkWTCR(5BIEhIa3?_a5AcT=&^XkWsA$TF9DfD21#3cqNetlmP zA7^}`SbZi2@EjVlbDd$XejqI;NT8$soWEy9H@Tp+SKMW-3|--q!Phj{sM*~YmiS2c zX7;e~2a{ROP@>vF^eyW+dO~tV=`woynS*QdPwfr*&&WhEl6qBX)rkV~gyO<3!j8|~ z8OBD==lBMmEFiY}^_^o=y_w&19LA(5K_Bxj_PdA(H(Gw}DLeh1MmpNED57G@uaMWF z1ryVIiy>2fHaxqHcOw&nggTRB!!hIS;oQSG{S8c{riHw{%s|SiW1p&iI$se1(hpy@ zhxMer-q|J*iD%51ieTYYG|s=bIOTopjZF^!z4OXiH+U;5P0mB2j|Q0pi2OKRchD7F zB1>ez27yLY7Xsg_`eICu_|wN%Uu(bc-SsKnQyB&Y68}|J(2nf7rg4iOUBa_Wh_~`R zfFs*2X-!9oIfQ^kq*DUKk|A6+q}WDEYwLz?R)1T-<1$j6MFsbOJ?U4`;WUVOFq5AW`lUVo`1( z%v1+L(Xa!13VZ}0yycUCP+8>O=qsmjA82Y|{slcdVHzVqDE8D*fQ{O87QLOS#JZZ3 zaQuKDNH`D?DE#h2<^j4vD6y@>L*@YUeIcSiaXoHo`MJ+u(v~J|M0ooH$(h)a`7#W@lE2^m21WS?yJ{#ZvXwM z;IFrTzxkJWet*=j#s2*NU(|5x)~&?sGu*m(EAf}l{L{@_ zMQnhurv{EcVgzuoUAN<3ed=|74)$NEzJIF*;J;b}2gg4~JGg1d zz2gLMaQ@Yp{Np=taQzkW`5$xNw1n$tZ*p+`J0x%p?)!`?2go!0pT~}a=buGQ;1Kyc zzHT@~{@I&wh~DKjh(q+RVlQy~C7JxLKK;AbI3E5wyEq>HRgZFrbKFe`zu{P4ld!M9 zdEgCO`Z{&}-Ty{8{w)O}gtK2`T)(A26!05|Z@;A;f>Jk*Yi`P2*K(~C-rNIyyTF_6 z_$CGVCV@AEuHRDE<$mAzZoW0(4F&1u9_YIP0S07_G6kv*`v7 zCEIZ!#049KUhY2Zf=3nPe1or%Y#N?KMad!1Ebzu@PXH9QYyefg3j8EqhIf!41S?1g zjkDx26ruCO2y)*@_N=ST$xY?y(7|!~MFKxkMoi@8$MA*{aW<^2x$177;g6=6VDvLj zi{zNkS@PPVqrapNZuBC_;tH zm$;0zn;%g7W3r)Qk^BpT+mN15Q-o2{MKg3-`#{78WZmSzMEW6FUf6_Lt7MADOh`Jz z9IxxBoI>lGw?3Z|zwih`jA88V)s4$$7$D zc-DGOCHU>N4QFvw>(Yf%u>qgux z$0kPD-&H?3{ORu{Z1Z^(Jtg z4|ua8|CR!6T{jDz(k-hekZJM1zwFFxV~%I-A!n6pH;msAj%1+ zq0g4nF*PF*T;(pnO%{nBy+*d#f4E*%1}8+y7o(FD*nZFm2YzTUQXC`1?Z>Lji+e1O z3FTo!-DvHKn*q5%V-_pjv~Oq%g)0~IT|auyEn0O@(kbV)xL-TR%JkujlLc8a$SHu5 zEvlMQuR&okN{>T+x>c#%i>d&qb~mPk;OGc8?~9+AHq(o zXZNOYmc;on4fyMe{lJ=3Pnj{B?jFccc}SWHbA%`rGQ?ThCC9nveJ#d@GFog+$#cgq z^*tQIjGOeM`VPV~6U@EyHR=sK;t;xoZW76Y%jy;`bZ zSjAQp(o~+{AYHfKR4wde^ycNt(+8@$r9vu?>5k4D&vup=@QJ!?s%Sz3rqg_G{v?#?`rain&Y*SB*q#OybCz#vGZa>pYqeP#qr!#Im7KI4H&Miin3cpGO&tH z#+0z(iSH#UJoL4gpCUu{bDSa0$o*WjG@Z<*bKvkczdk$8InnKnP|%q79XlV8^A{BC zuSSOBA2?{g!r+V=Lhqgjr3dd{PDCEMd2~?gS|AxkMuq|mzsOc=YCiE>kvz##!|B!k zGGo3vYSKehi7fs#dZI0Q`Dw<3=U>*>mZ~1dSV0xhC9l6;UW#P`W=jjzTzH zBC;{ZGbgS?V7Ju1*sYY=7MoN!Im6$L_-&xX=R%B+ZiVzIJ!COGG7#~G6jH_BFujCv zdLNq2xA^TOWsXn1I*gb0VCKtImcW!S%CH-H-@-H?8-9aGWnw_?cmWE~)PRJv){t6A zHf{f2x(=EsOMF^EgWIQXuyH<7*c6&n*Y(=izc1`R+ zcYn@aUCaDoyF+g|UddCl8p z&CPbCg2CxBgJt-jKJNpz z$2)yl?mkT{ZLXRal+P2`Q~AJX674oIDSJ8)o7l-KSknq<`!U-|m^tT_oE=!6*eryn z+dNMjU{&k2r*VYq@n~9%vRKxErFku{kkx<$K@_A*=7SkIBA}oE$J(UUJXKri9rbv@ z48I-xXwo=i*t;Uw>Hsb=9P3|AG?I|`v$srGuoIZe2`NeZG-F96F4 z5H3Ot>kg@hr1xYYs&QI|pMjZzKiYXp5|1R(4|k-`ST$hDTc{_Mo+YOz4poYwjBQ@} zA;o?4;V$dh$vylLz(ANkwp{*YCcqp0 zN1?oDIu|V#{9ars1tZ-k8zfaT?`*@qNm{+uM7r#j6>uhzWnLHb5^{$8xJxJ$exj{* z*8+RbqX>|N_N}9cD49@DaGGnIGLXdt=I5~9C=m*TzKcp_@oc_T4ak?FU&uA09o~?M zjf9te4^KX}JjrN(!o#k7$yvZ!9csFV(@P!#E;qo&^HrQ^Ta);aw+pH9M-*xP*dQx@ zu`I`6#HMNy80~z#@N@|b{3>Jy1#-hQSyDvHlswcSprxYYC`%cDuJ<)c9Zk_yc#DpZ z!L#-~R&NGDE`9~zxbsx}xBy@lV*B;7;>uo9b$Hd9uiC=R>qBBxvONJ~F!wjT7hC|ngo#AjK@$lz+5OzLe^ zxdcKsB7eT)XDrnv=JAWr`E!v|fu-s{MoxUbkT>?|`_g{aGr&g*nw}3iM;=tx-<2R` z+p)vucd4_qkjHpXT&2I9I=5p+!Dk~-*Mr2VSmhYT97MPA(Qu07MjGoezkD>fsc=o2GoXY0j$}{ zN2fZp7TShtij5sY>aOq6YCc31sukjR`zO)%8jq%^J$N8Jax(UKbO+A1&?{SI_~(Pa zR)_N^Gl+-k#k94H7ZgVXZR3RfaK`&{H{O6szvCwV0i_SX&H1a=2LitUAYlCW^B>^7 zl)jsB2k8X= z_&de#TLvHk`mX+b6mZ|-|6k4r5aIe~=ONdx4G`gG|8M9yfQSg|KY>GjqV+dZ2gvyo zuD==L-xSJgc;x1_e$!%pOM+elcq2&umJ|UUP;lNr_P5Xz&jrzyW9E|Aw-$_Q+fF6 zO8+S8EDxno_{1)HtgCWG+z#eB-GPgT)>8aj_>XlU+j&9+(<2;y-|Sfkh=oeP;f#xa zb`3&G^Na*dEqZY*|%Su>Ge5&~QteW9?whYvf>Y@*XCTX5(p8z8J@^3iet)!lEp24-STKI-vmyD$#voh z4Vu*`hE_IAyOlPeROhisW5#*GJVvU_HI;(>|SwpLRCRzC>k( z1;TZEf+b8-*>7{fk+vY6iuQu>6wyvJCX^neufR=?NLyQ_5EJJ;A52%AXJ3InPxrx@EMMJ9CWH;WlzuyvLj{Tk$9T84Khbu%=; zFev>vrLf#k%5Ty@)6rr;^@rF;9lOd}cOsRTA1=Oq2m=l{#BOtz?*sE5#CNtY`RPYz z^wGd-k_%&4q9;D9>BkABG5j%Y=N4K;1J>qcxSPl!)xE@t2yQ_|2xkfQ11orHkz#m! zrRy9=${1E6l5dAx z>@aMSzyckU6-)I51PSC=xL%?}cBrUF>y*f)1X=8bw&l9hr@PxmmkxL+&HNtPt`(0+ zqi3oFaLUQb@wdP8SF$De5x(7ScgujB0WM}yRHls9dbzE1*knSJi54X4%@FX*a`y%= zi@k_GDW2^kAA7XTI-hk0=G2mDJykFa;1?ZI_V3<}B8kemfc39_|Eh#**{MZvYsvZG zM}&KPgD74zPPTVl@R9fj&1C$sF`h6x)*r;4F@9HYlh#G}_Cq^yVTI>)FCo4MbVuDa zZ+^jd|7vw%AM>v}Jyds_7Q_SYfk~>)DVMB*^)8>$Q>nYW=tq z-x$)kxZlL1s16j&9?=#Hv}_H7QB&B17zNwOVGX80G(pL1#djiEo)e)dA$h<8Hfd^8 zanwx3kDasy7)KVtyNx9-8-4`P?ipmu5JT{KOA=>C2`he@Yt~3GPuMaci<~ znDcWDFqq-|1FQqJKLEfHha(Czlk(uBLJhcN;Khv81r+D#aXPqGQl2{ZVr2m*5v%%k z`G~{v;-WCR)^@jR$U%oN>BDcbla9b z#(VF|+&El$dU1X;W>gP1zusw8pW3n@nuvK^TX0{xZr-Bf$Y=;z5G7Pk_|X)Rn!N61 zi?V_~7r*{9HCIXer-sye>)}`>kEB2F7g{oN8l6Q-I4O^BarY4os>HauNtQAtI8Y9g zFlx{%$jqb@1J(ja7U~ba3FaG#YG07jeGA0Zjw%`!)Ve zfz4LOcC=z<&_X$#u?-C(@UmQ0Nx%pj)jJv0J5lGmfMG0D0k+xmUCHIy$Fd&2tTO+<% z+&g`6Y8m}es3N`W%E}sxGq3nah1&85u?So~ zsGIx3Yt1PT>3XF?ep1J!dP(PwPT*J-r0|ODEiY#&S0s}jS)19ngRg74Q^WyS0PPv; zVzhc&PU*QOM5FRgtk6{{8ijVT1N!(JB#a1Ow*+`g7BD$w=gxZt5nT4qu3F2oi{`ZB zrHPGF^=o60+$4w)`Vg@?X`(WdPweFy^x$wyb>W?4)%m3e3;+-y@dQuEN^12Jg)(rs}&NuOD@C2Rl zZk^6)htBvGd`mx)Oj;(_1pT-pKm9;4^9~!it5fd@@v_}M+?NYi1UVareRw4Rg){n4 z-FKIN0(dqseN{=D#|hXCWT$Q6dETiKkIaq=W=2!b4foC-bY`Ngh;R-W#2`p^+=4nO zWw%!|3Uoxw$Q3)t#^#U1E#Mq^fzGbM(3+5+Zmq_K_uLmvGPv>}-Bo7&B?L?=GFWub zn@!XzyKp49_F;r9B>s!5{4o;StRtt|j|?Z43(N}JvXjD(%*)#9-5tAS8~U6nQasU6 z9F;~-re19Dh7gftEX8z@_|1j}xLru`t(8!fgvd;UZ0|#qC+POw)iw7-96>R|eud3c zL#3|W{()^bc%j6JXAQN-Y|EHr;1z4qYi_OcZM6 z_UY9_lLgJ}Pkf%w31gi)sy&WrXQ|ypQ?4r+@a1!FLC}$u=DzE_?g)NFtg8dXLNs6mcTPMog}brUK~l zw}qd$z>nl{1h3-KKTu1@1FxL*rE`{k!RJZ-@{sGjD}s(Qcx7vXyza6iC5w-)M>*`I zoXC%k$4d18D$Si{Onz}FgH01v@mYO!!k7M~qHN?Zn+XB9oB_|Xk4GLOwHUW3kIOeE z=sV`_uoFu$PN)(UiBYfms10E#>|SC&qWQFhB9`|0;Eq1$zQzacVNk$!TOH6=ykUda zoiQB76O-%fNKyJcG!5t8PaAv*Hi}TL^2Vs!^V3I56OdDH^N~{aGaH2w`EpEXFD`*% zXrz5nyO6yy6TkjBQpz+ko2G8!lf;k$a!)L-bqkw(BcTXJ2-s;RK7#t@v{_|;6iVl> zgyrE7go0gdZ9VD3T%oi`Ns=iL?bEyhm1|iiLMybIJ8iQ zmYU(MJwcW%8KU#g&$aW4yjmEP8#vg=`%0NHY@E`fnGnSoN)*ccJb0*?N6WhSb6A?2 zd~nB*pb1$&&W;*;=fpz~D7WJ>w`={u$@=ew5q;QQ+M$;0;iB1La+R z3&0!9?Iw9Wmwp3Reoun9vRr>)hS&22c%$k4b{90RK(3#>+M9O(a{VOM-n1D6(t%dJ z-!h8=L7D%I8FK#@V1^)$-@Swc0Ou`%Q#)Mh+CeVJdJ_~-3zFEYT3*#*VDgpb# zAe#tKJ2VNTnWb6-r)7EKXz@%WUcKFpY|L*wHeASuwIU}k&7Xk_l_4({$u??kM3mMn zqraG8+?7jD1ok4HH!P5UOF(h?!}uc)5+N}k%@=nGME69#*f?$pp{gLGUr=y0sG}rN zoOpUvQS@ag`XyhFE6aU6g1WcFdGB1l6pX-Q`87V$^p=8b-kFdlfPCjkRM^T%kmOtS z32mTA)q`wE;ME5g!<9V-!FV48yTNuZ+4T*+B>-R=Ku=dcu>Q)INcCKD7>BLLVZ+<2 zB|H$RHiqcyYkCv@;#WfA5$;Z31@;5z_g6_BH=W^7_VC9-vr1f6*0F=_CHx;0Gd3Ad zJ6Y?9*km&jED$Z|_kH8-Qhd0fP&OG8*XZzWy8byV!F!uU1onW@?PX6>|Drh}S@9EO z^f1k_e%}|>#BY=ewZcRVBKi)y6Eb&N>yYcXEd z3m$5lJ;5FnERo3b>1Jo#=}Rae1v#mWUzomU8*KVc58Vr2c}sXT-S_YU1G^G2BGoI8 z%X_B$;gM&{I{_mSC9~6WP!UhklFu<`v@w@x%WRWB|NmHHDeN2aJb9}Cz@;a zBTI7nM$DMiy&bAoTQrC0H~0hb$xG_WG&qlH>^Bb(mx835Lr=8=b8-A^-ZOF%lwlAh zbWrObm0V{KB;?ErjFBcBg+Qs$w9{)r?bS53g!VO}CwSW*w=NL+(xtAtD^T)+ZUw>e zlhFIDm#ZkrL%uboU_jGYXU^C1}^&6&b4-fTUVph1@l}4%9wCzjmm_X zUjbgiKplj|;l1^ZEp=zBGo}qVsA^UV#5V1UlEhN<%r|@wrSK$CN+mINt=S;MzH*Et(lhP8KM;`c&wX$SI&gKS{zp34D46-*lv{lOb5Z$b|Tyg5wNbA0U?tLSEe$zG2qd;FI~ z({vCPI{ucObw`KP3-L~ECi6|JqfF4W+ZH8OyN>uNd=CEZrvm-%hs@z;ylf$_+xB0V z($TsJ4@O&|vvQ|GvAf9h$y>6S(Q)(j(wf$r%=yX6NhI1wusjqr4UOm|ik;Kxx@;Z` z;N>#^!eWr64_opA!f#m>Tm)&s!$Lac>GHzt>lzJNU=HE{+w(wAvS_4yBavjq9CA1X zJehvpw3lr1t6)KId>UKF)`YufPZx=w0C}NaqoE3AxVxW82iJbH?$fhV^TWWP@eZzd zk`n&4IhgN7Ki+pwZb!!Q`KcVbe8XDn<4IOUfB9H#1Wdjz)b^XwapjFNa%M@QU&2T?XEF{2A*pb@ z2m1)ymqWLfQE|i#zv;sHa_;>TD6T41+_#ftSVEuXS6gQmgdmJg5bv63_e7-r0fJSH zlnMo5+Yf)+1##tqRChK^r2XcmDrQjRlT!Q%(sw3OAg$S(6((fOIm$6O+o zz0}&=F74Rn(QwW ztmN0-Z#EB`@2t3>Pz>`G4O|X6EAs78d&$dbTK2eCefjJ-{np3_RW(>qRpzSioKkr!%# zWsoSNQ)hiIDaYBpSCTU4f$^$c2n@Lt@~*MDCnUyk+o)YN8Wi%A6w&9}zeGQJ+i0W9 zcT-^S)|vIQ7^%UBZ;3tNp)M<9l`;bo>LeTz^o~1(1dQX<_Q>9ek1TnZke~o98v~Nf z2)^xxE~TS}(8&#}sw^${D`ql;njC zCbyA!&#rPzi>h?iAsE**idLy>#QFagEG3@u(YyS51ox-j!^x3w-lfm#+M#N5g?3LwXZ+NzrxIR&? z_vRIstx^UuJD*eLj{0GcjgCEaMs4BvGfwmyhm?!v*yd!vg|7CZyBAkK3$y(4`f*d} zm<;3RP>v0Biw_2Ph4S5*EKNA(TE(wSiR6Q6zAJ-jGICtQhzq701+-M>9ZJCM@eLjE z`1LSE1u}ThjoQHV26r#H*k*CqF0nxoFgMKr;K$!WOv~8Jk9Mdg5vh%(ZV}qze5Amz*88&tvPM2~NZkHq97rMuUuP5EMY`N`jNR zh4NUG7_t!_w2%r6OSV3wgqjE!zau6!H298c7dp=Fz5#CY@}zCmcCrOvxt2g3tF<*f zc+mzyW~HqGVkf@fr*I50^)H?U;(qJ#Um4ZKWW>=zEmf-`Vx4X6u*hgaplmFHI@6vb z^@{>x2t2c7*)gWyY%m&<$r_LR8nq3^p2j+l zrP$?(-ENXvL~Zz|6o_|GsRgB98aV1)-Vy7d5V(%cCzekuY8jNF%S!r&$q`t3(I-8l zsPf>ss`3VHwE7Q-+ z|GR$w_N(2q;B~hD4*cx@1UuY75280-3;?2kKy3gq)_>LB{jLWA!~p*)+I3eo|Npgr zjyC;Q_YFXd>#wZi|LY&e!}Awd+Q0HRfS8Er-2mDRYITEaT~Bo24FL6f5(JTf*mA$4 zUe}Wz$o&U^c0GB4+<%bnt~&-} zuD|5L@Z4tEMT%VWU~Y7UBEzBwFH)YVYJ(^N6L^|(6RJAkh!7%f+k-~Prd{tbb$#7e zIO3!d=Y9y9n0I>MVO)`7Y|Tuboz_fVWY(diY-?PQ5Qosj`L?J$Jr>pL=68NJfTK|B z91RSkvhvaUQG=O9p!d8n^f^wKzGp|qkyjP@;3VQa0R$D~JAG{^UhJqaobxOT8H6p? zv0So&Ec*cHc_UV&3w#Tm(S#pUXiuY`#6PlaM9Ejk40%nS7bLZV@Kp!=vn-C08Uuwc z>OOdq+`IOa1NZ*pflKe_5PG}1-KB3f+Kj3e7yFwo35G_^4f)j{w$qW;8Zl2ohNaU; zOVDl`^b?aa*#h52w{20oZSI=CdyuUrKGKTq@Mv!SYn7&XRHh=egYelAKtY0GaC_ow6T}o(B z0-5)F{C+KKaxZ63Ls8K4y_IK%ylsYdD7>zi+`=#dZ~4f15nQIQ5bQn&&ic>$1j=Ia zDM4BJB|(K5w{4f|;P^#KSO`aWa)w*MC(voEJk|dGbk3@FJ`ht4zDY0-z5Wg98$~ex z5081(tYmQy^tff}@=|%96fVOqx4l?MX?$+-+%1hPQ%e7}ICNC$K^Z}=nRaR29QJ59 zL2e=09_YWteu5`knl??SXI!AyO_eDL~Z@Hw@ zzOlJS1jTlSC#n^*U6XNR^&3?BqNizE0b^r9#m-ovm?SpcP@%~?+9V-#DzqzeKAfVt zjlRPGHKga&c9Pc@5)@kuAsDdX>byX6v)iU(T} zZIHn)hM}d-&=M^0p?=sYBGzAg!$3(V=?wmH^^?%y309>rUI-|KOJAe!DPlA%(>?Su`*L5wxn~mYOBml(uzFDg)Sdrnc_qY$%m_X6m-Vc2l2tX%@_w z6sYEw(YN=9vC!(^XF?Kp2A^8r5_v;I-|Yyab9qnA{2)L&us-IKG|#2^^chw5V)hrZee)z509OC zv%})95+JLEmh_yE;&aHDnlfhU5hd@55izl16F7mD_!hHZVlX+4YUo3ykK;m~$6yr{ z?UiOaH2{>Kv_8!W-Ar3jzZ^xEEz&Q`cW!AUgho>fVQo57wF)&Fr1b76I$Hu!1pSmO zgGYF?2sof;1Mx;2u%}znK9o6$LKIbYShswGxxi#-H` zE15~IR_~y?t)+6?yl-!WZ1_Hv|3B=#Wk4O-wl0c0!7aGEEZj8^2ol`g-62?T2_D=D z4oPs=;1*m01h?Q00TS#klHPqoZ@M>UzkT|i``%l>YF5pft7=+}`F&%41HrLVy#X2w zYfasv&n7Gh;lyUvR~wj@VP~Nh@)%a5rz2qzJg9nR2fT(Ty);0hG~}{{-sP-I>?TfN z0%yVdo~exMf%rKvpzfW%q9A1b`!09MYQt}QIDrHcH#$$J2jVs1*on>5^(!Z6l-v?X z2aLpCDJL+}SLEV>GtQG|S)VJk!9GpcfP?KAfhp`$n ztN5kooDKo|SRQe#(@S66;b8>`*7_S^IBH=_@EzgZE4IJ+rZmBDxWHoN>cJA~m3)7( z?=>|Me_e~d$K!i6FTw8KDy`;^JL|84W7(oAs+M%_7)GIhYGoG}>};E3k~ES#lT05t zP96uHq=`vs6G1>=poIs|uO1ip)dE8@=DF9DJi%DFGww+KA4a5jZT$NGjUYq02|5!Uy0$7ob(mse4bUo9P=_J>f$b$0op8 zmoGV%=|1!^9>BD~-Ph6&1hAPo{y=T^T6Ny)PQTNC%+#WkwPlCAx_II>FiiL@7zv61 z!5mXw6vDU8t`K#HD--p6I5Unj&)TDz$zl01?HlZ|SC3Bx7eZC532GYx&aJ2}&LD2@Pnb0k%aAW0K}qSsr41%E#=(b@ z^fn#qNv0VLnPL>THbjx`hm=Qonrvh`URS_1>ZdHH-54fijV{d_DPLgItLU^~>nd*_ z`BKumIDeYibzZVnb7~FOf8B8LEq^lQJDxzjm^sCLwfaElnVJ0$F7J}JL9s+`H!&j% zmh;CC#bov9+uvBdMTj<5&V$@aidF&!e(Nq`Eo;wQJ|9`q)`I7Kjx%P9pye8+Kw+e& zwQ2@4hm}Met1%(UP*k%ddD`CX6==ZQ_0f}&1AL&khF4~DBtBtDGCdI5&z?J6Kij$f zlLIpjZ;R`GHs$>Lr^}xZKK2bz=8fbz)O;B*&DeFFc++mIp$%JYhr_4SoYkZ`j>-&9D8=H{O~@=}eqXc!plS2_>g%so zPV9GMF^DQkM63cuH-P(-yg@ChuF?q*)?R!Vs8Gp%#Su*XqIh2&NzbcjUGCa&F@ho ztGRn{C)To|NvfA$JAl!7UHjg29T(P=4jAHjO5Wf61yzp-`n6YyuwtE?7C2Xme9eH!S50G8sj_5RIgf z%+Rur+5;Xw8-%I6{nLaYUn1cSJjQfmL81CNdtiIr4!oE4WBbScxOEhqRw(+z^Cs3C zxK1XxgVc_TQP4sl8%vEG42XzdlW>Yc5aq4qQqv&=nNhiv4c_MUDIvk zYgCxnCp7cY+BxBS5Y?cHEP{03IA6LFQ3!Wq86#I(NK36#f{$@Mt&C3DLQu`v^~Cz< z$O*}??RY6>nWDS;eUYW~iCJ3*KM&7-W@&t47$X(_01t^T4tDM>RReoLA7T9Dx&iLoS zf2$<;pxz3M4uALKDG@>XBO)GfH(g&fW^+E2AKtqgFMRp*Vi_G&;XEpH>fI(uEF@Ra zoERW}jY2Xh6<1qksF$iAS{9tQRlES{BekzeJr*1nTJDQV81~?*v={8Cj#5E8ATKLp z(4by|1dH_H!VF_Btp?7**)c8AI<#mQzHPKxZ4^Ed{`i8Fj;X}16tm?j z+z&t(fvaYxZ)YfYs=K@~?+_jExVKq9K3N>ENAOdqghfe%Cw`9zO+j5R2b&JXqjIS! zK;vYkf%9B^ur=UC*SbEIWL^NmrDzb%*U8z9FifEd>i0J6l#%_A(k3ss8wW|SOCY)P zr#qQaefA;K#x6hMjrBnWicoc0_=ph1y=OpNnfy-GhQ05U!1uncBgB;M+om*`rQ;rN zRrqKv2m?;gMS<**%>}ecUFG6^E&fnshyBhYL!f^Lo)?%Xf{?RMG&pd1K8cb5i@QEW{+jtd?M*! ztoF0$HKslxvk9k_5P8^ypAw&?yJpT7Sew;+XMdKZ8gjV^c6yY98Oob zgeP(ZwR}UFZ3?$`y~`;}wwdn#O*;{&o#L~#1EbHx=21(9X712h;?l7;yOS2vJ{>yf z9CgyERoX_t8ktkjH1!0N=iM-fNw+0D%j!^eDV#or2`_ZV5g!67R}*VrG|C4qtfXQ= z7Po?}$1-mh`sb%%pVg(hbYCy;|NiZt-+*E5bH6b3edCK{E=nAt^aW~eml!^A8Kl}R33a%LWrUrY=pDJD^x z2vnn5lx*88TfxSl#q4IJycQWYFp*~UD+ZwVy527avbr{1X?LHYOgXq=_cK-!6c$rj z!@iDpbUCD$i|gx_bKp}6Y*C_)U$sc_Wt@ty(yJ80PM0r>_u($~Dl+DcsxH>DZ8yC# z+74_WnxFX)sR*HW;Gd0gH1>rgZiBp6>Z$mn4j&U$X9|@taR6i$#b;Rj1Jn!e@*~U~ zh0mtJE>@L;6d?;^!-7$>X0nmX&N^BdiSI)yCX%!8m${!+KQZupV%0yVF$-h)Vi*FgkdJ5f;RrEB_65NV!X$q6wk|TQ_hl*3fZ+0Z8$5np_`T%hQ~RI;RT+= zOxiE{2Sm;xO23^?^Gli4r9cQZXq{ym4SsBuy0R)1*9sl>_V^8;{xW|^&I7+0ce(f; zLxc^;{5@!DXJNWy*8zi_MgX0%e)tv1Pqn+djVFtIy(uxE*&3atYw3d0wiqEXNKQ$k zNyUyMBtR8aVB26Z%%s=rSO(ch88&oqLsT>YMuwabmi9ID>EYQ_MmCXRE9{8X-vU+b z^*);wn360x%7yxWGj!N)(kpO}!telD# z8SHOB5*r6hega?2ti2V1b{ce1iAX6l2y^Y!N*~wCrkH}yjh>(5aN0mE#Wk>K$Y(^|xXGwr;9K#7sz&qpmHvdWnW1QWMv4WcSG6Bg7 zdn}5!a#t;IyJw_I0$8~67rnLmv8iA2J-yOq4^(&2cuN@r9cGu%hF%sAQ@Tb9=rB7D z-!~&X5V~N#8x>tEs_#}NM)d4^h+1B#Zl5$AT-WP!Q0)_;IS+5ra0MZHcr~^2eI9vX zI4$v1*IB*dSVgTloL%B?wiP=g?FHfXwf!oTD1$B|frkjO@z(^M8Zv%Hu)!Bjhn!Bv zscLc{WN#F;8a4DBWRG#)s2=U1b6YW#aw+k3UVWM-OdWO+S5xzCi=t?HbZV7|98ERj z9I`cCqA?02(TgyNLjlcJq$UBO_+<61ny)d;)P+Z?$wjiSKe@QYq(1$|$EkcUoXmm9 z7@X2Vzksr@p&u2(SH}5-{{u3ii|%zQbcAa<{4#exidz39$q~b9%2Z5nhSmF?Ze9lG z1)@Ui^ur}B?KIMv!=mhkMMYc>kDxRw*??pCxmW(r|GA2P=nMaS5;DwechF0qYUz&< z0zh#+Abj~CQvFtu{RiLkAAm3KfhK=tz5m7KU$g%A9sk=8@o(SwXYX=vf%l&Lvl9OG z`F|?zpHBQ)84t{Oo9*xB@c~S~6Z7}M#ea1U0QeDH;IFd$f8iPc!1}kc+5n*5%HPM? z|5sZOD7XBOTY%aAr@jRM=&SM<6$}7~{3kV#0Dvd|sfqvqME}G|;RjRmgUh)c?W{jY zmmkU75e!sD`T5Z@`O%YEfhzpJ`7GS_G*+(PH}2fFEb9-{>*u||!=JFi&m^$c*nmzB z|F{=eOKeQHi>9Affp7V9mGLtvDhy2i@P_!+qv1A|$?vA@zey50r%9qyHlL^m zu+&g{G43PH3{MyGoo ztI|d+1!{KmK|h1%X)qQ8ct|lQHhhA1IG4HX41d1dV12ymYiXzPFD;E~#BaUZ7ID`y z+E1Jg_^~bcOeNP&1>^g^wp?r#`ke_e1S-lCvhvhI85t8U;_U-Bdp9>zGojA;vBqdl zIYGt6%Bj3h1d!X5_1e1GdQB@*ZCP?}Yf6PT5l7DAPD`KhMmiq(SMKIWIif)EEpGSr zSlZk6!<$)5CRyH%|oG&so>vmcB=nI9kGL9q} z+c9>!!zdXVcXZ6hSeM5y4@+lFgd#QSxwH)4z7+3^Z&;KrrV)R89y>Z3&!4M4+RAPg zHCPwECZHWJrz;z@{V^beBE zl(XTOO@gXxZtuMe=W##XiT!W`V};ZTNJ+`_E4L{Od1_mC5b$|G_C*>iFXUtACU>0` zw`yBZ-co+38oRFVs>$73Y}Q){=2gd)eAkk#v=ZeUuUgk{GV%`jJV8ybf)(y-nFoT` ztarHpX$6UBGT@r=0=O52wBPu^-CRElN$sXNVzn@RPvKn{G7(jp!^c>Jx@k@4ca{kP z+=>dt)8zYQ$c3hLLEob-d@^Q0ggfzCJ4z-?jhVoBLnX9Bs##w2deu#yKjv=j&v9Pn zS|4GLqaA*QX|ErcxZLR==bl!Rb=pol@~I#4JU+XcD{%sMdK!5$Ijb5dFx8W+`!?Uw zXh6CP6CQb7(o!U*Q(HioLs6wDf9UK$dx0K0=%Y9+ryco6$P3Mh9-AWQd2c4_MJZZK z2Su9zp=u7-LA@kvd@6I&Mgas4^b$5f zDnWRs$6#7`_6(hZ9m*kwRN0a{Q&0WLT?S)9Qy1;_1N;X~_7_neb4d87gXLi%D;{Ll zNqA#qFb94<;Iv!ok&9@oGt9v6qB!_MyzyCQj7{J|m@O@cyw1JeL$b= zhc#Xhk)!jxC-yt*Xx%}Vmgk-f+gKh9+uI_ogxh@lu8vkCb2>l4)#epK75!Sed%6YS z)`ES2$N~$~T{=FxH3GPQ^2z=+oF`EhPOfvMn^%j6urHi@~0Ak8R#+;O9extRq;t@wD zLBza9#55FRN|A3hCJo!+^JQi|uz6qHPfPNhN$}9Dc`ekA{;IA1-vt7Vwnaez0 z^Y_*J1F>2b&b!pMyrlg$P{nK;y;0EkoYE=Xao$mH!Rtbh$0|8aFBk$;78q%F^;sll zZjo@Cm`=HW3PDxOAO>y^2fk!1sG0<74UTBYo2So)9jKoXBn5I~B-IP2fkQm@+(_Sc zw>o*kR50f~73B7cH>?A=<$)|5O_IQT&OuqBri5G5U1tB)htGj(kHM-S$C>lU{MgTh zVJfi_UMZY0eHmw_6ZBVo&8-k3C}u2<|u2t*N)c^ptWM}D;M%OQnZ;YCVu^WZ_fBcc>vj4D-lMvjDbpDT<|w)2=C-hEL2__Di_D@cl}75klhW=k8g@@o+qb>-`AE8M2dmon(i=*=AuR_s5HqP(VF%>=*zNx@n~toJz+XXWx=q8 zR7cW|QE|^`HamUlpq6*8d`YKB$T5?I6APttiQ`2i>zQ=*=t5&U1>n^vP_Ol-=_7;{wD)S`>T&T7W72LsI*b2! zsAr)syb+VC$)pX(Y8tWy_H=s)YzNaVHBQ#wR!#30t(ao~V4n>=RN({V-O*TQYg-Yh2 zY?zU6HMszNP4>RXCj2(K`8E^s%mumwD0p(SV>&vL8qo6OmzSAyG!kBu zC3|`s-5keWMp~`7T>ZmIj}kB3w-363AGZ(8-q?~0>YhX8Z-M1ZP_n)x#UHf@j&qdu zBzS5R40)~64kE!IQdp#ZEh(9+?Gn8mK@H|2G5mGG_gds3*(eW*2?8a^!Q| z<|wHe>VA`13_N~S0C!0J1|j2Q7OB*x2@XwAP_)^o-dqj=@}MKb3}T(1cAvRtL(Iz1 z66)#!K`Y`yyL-`o9NqDVchK`R{I81b0E3Up-lGMM-&;J2&2ej6R9K4keQmzCoE^xt zsCmTewV-v6A(~(t;0J3399KWi?Iw6io*(Ptn$9Z#C~ZKeX8Ua3PF`=?J1(HIo1 z&fSVm1_ZDv@ixOxc3DzabM(-V^CSU79o(%PhUdm+<m)R-M3RU%DAW^^u{PkZ$+ zJGa{K0vy-HQWYR3+9}q@5`pVCF6puQHT+|VN%V!75)fEJao;}8QYlv>>b368RrnQ6 zBs4_YdIOpEj}i^i#q;rrtlx->%LrDL?3bO>=w-t3 z&@<7AzB_*YoQ&a&RqWW`;)rc}*fjaB4jD{QtTc!bCKsCdjGf1w_h7_R(f zyO#Ep(>|*gMvW3F8F567S>iJ1c0}gp>MMVOM_j}8gRsx88DGq!U$uPT5i#AOeQva5 zZszt#6Q6I=r=)CUtkWS5GeRfA=MA_CuDg{pVyaO@Xt+fQeN1>LQ{R=6K-|J?JA+1; zolLu%pQw$DxW}cp^7Q-5Z;)h6zV|tz|1#754UXslt~=qNfpIGVKyHQ$s9X)?avl@| zjt%e|EcPGZa{i1Lc}q!Z zGnpr?PuSHKn0NpdNVwcD4Cz*_Mvz5qcaVq5Soe7uYmXzoK6!&LXA9qY(vv}RFghb_ zX5*kX6xcvov#Un$n=yBCq!Z2q7@saF6k*Ul>&`l~Wk2yj0$WOD^gFYrBBP6_2UE^wX=V zuCBT$Q54)|SeB<{PUu;+<&`zdwJ+u0?O&0H_K4YkQ0H!O)eN9F&OFxG^~d5}0x#2+ z_;$~W0|(QCfLT_iI|~}E7@-IQV&Fpc2K@sFDim(YvElfZ=-TznTjtG^AxqEn43LJ8 zBl8W8NyPMQh8O6&G+rkmv6u!u3t3+z(+7+Sa>Mzd9%h9ppYiyltJc6~enSW(5?>zt_f%jHe4y+fbwcc`-mwdU^#dqA{(aq~W))h?lQ zq`>MY8$;Ie|Yi@w$u z+LA{?8rO3O2ajFtaM3;^AK?N0Sbna{52O_|%On3dW@9e|2Y&muHRC0=%2kyhZJdW8*hd@|qRkw(vnaGtw zRMX3H>PaBLR0=5}Z?@T?Sw|tb8P22R9#(8iiH*oCg*_lIY47Jq$DMhHw|VTRs#=-i zVp11e#ej(y?wuAv@J8veA%2l64t#?~{-r7QD7z8e$67k8a#ghvDhGm?1~7aVEjcR0 z_wHQDmYV#iH6xiEZL($N(V_iLekx7z`<%)pH+El6#^LixR$DF&r$waKh;qVv5%Sz3 zblqBxGTsP6WEayP)tA^42n4n3CdEZ_7kG84viP$wauBU-B=$M8bM$xlb(LwfTXyx zZ`!JT+1iDa33oAhvK_r;oe;ak@nM~?C-8Xh%Ei|3j9@nKg&{}zQlmT9`O8aC4&AEu z`&##bm@pgjop}pLx7q);b3Jt=_T|NvP?e0AGV-H@Bis7yB)5ub7 z)f5I9akEVi-m+NCe#DwCs|YS=XV4XiQ(GacD0L|yEhbsQX<-Jz5XN!@c9HtX8;lyu z1uwmNY5U+AsN<>b9#rT6T)k{PQ`_4O07#2bS*ag5cAuq*)U!l5dE((<*pU*qbhk-K zV%LZRM7ASDxq+oOs695h1cX;q#&M_$uW+6r=|R5LC4&KqW?o2JLByc$=rP%}&H^U# z*ac6s*qvs{_=opcTH&OL;wFW}AZ4eqgxY9OtYGs9EFX0Z8?=s7B8a9-$iuS9fC?BI z@4hvXa$}8BK}kd~?ysBnmdts?V2x^PB_ud8iA{2bu9!QIOplRxwx7rZR!vgrY>VHj z;yu7qK>g03um4SDI=y4IFO&n^q*bSzBZY3CUwZK1(+;DO?>+wL>Vmd%*2r!?@KWk| z6`=X7E`25MVmqSMxkfTJz?EcH!0BfUP}Ir7+~vQw%4+(_4U4nbG$$(?TS=XBo;&if z2iM>snI5}ef~SYB7~j{e9*8#s*zfFR^I_aMx~yrt=|&YNpH|!x+4o@gs94 zsl&D~QDH(MCgx~ejvMKW3O;OK94)QfbMdyeUjnHTj0xG|Yk{dzr5g0-F|A6?Jegv4 z9uK28Cg)%8c{J;|M}A5m+ez?>qh+}O(j=CWz82ckB(p=bTXeRj;kc`(n_1;Odpes@ z+8(?Dc4R}y7HeqHsaZ2qz+tW0WgFq6k7Ba-z2`6B!CzuBY!k zZbAa)ZI;M#DN^_@sIb0jPSg`(JeLcu%&i>!8?KD>%LH(OZ~zVwJl9mBfN zr0t40q^VI_UFNfjl1b=_^t14*+2-EPqWPec*x@Gm&-KXq3o80IU@*)qcQ6<`NhugMf=CTwgltfe5$ZIM_8f|XdRlOc4D!I zlZl>hsJ90m@aKtza=k_1dym)?QJ`2bJ%cv?m`52KE13B?hhw54&ZoBN%GqLOyK&|I zfn+4z$F$ZH)ysGW&NFNVgI zRr;cJwbY!lv(H_b>>RS@$(Z^&SlFykHHMW{zh`;3IIGUW?)Bn|ONFTX=Cxe<#uhS} zqM#Jhj+VcXUxM2%4zKrn-l!VgY((ch9IM6V6?odf*BAe6#{gGJ4?{y(?z-4${ll*m zsANDS7<(Qy2vjm?Yr3fx8F3!B9>sFxeEg`rO8Fg`lo4y*TfbVMXK7}kVm-%qF3V@j zNmKQp3A*j*jmPjajnLrxLY`{`AHCKSIRo?5Tk41ctY7BiCGlSCib-rjvwT9eq>{I3 z4cr2-XNMt5$K&wZIGRdhZRIRe^)JcK(r{@gs%<)9S5sw+Svp|XF@Hwr=IVW)zpy=g z+L)zhFeYyBBFIO-)d&nBPuq(-Oa0?wbOLX?b-K!@SV}*M&$zoh%4aWGcp6%xhU>VCmVMLy$~8~7-ABG8 z6*q5@^d;d!H{-rxy5oJ#@<4c$mFcegOAN55-zu8{wT+QsZ(36GpJr?4>^G;CON=H- zpFn)cvV^IbD2RgHB^FbNt);#?FphCP6MI7fpJ`wa>D5C8`V71rncdl1DzEZ+=Hx_@ z^HQv%C0EROi;$4{qqli^vg(h`+8KhPPFVNTp4hUJc3RMCn!K;}N(4lbyXYRI9s5Y? z)|@oesnfVQCj+v}Ra;z6B-nWblTyn@4UE?^;UfdKHU&n2YQnmU?)sIL(L${bN!@Vo z4)E9>_Y;!i*n|m*Y+Giw+NJHP3S2c>SR>ho(j_{c9SIxA)pUk+x#damVmiO&rFL0F zZM3txqG8>gbX$^7SoBfJ%&wWUYktEfK&ak6SodDvSKOpRZnNL5D#n77Z>Bdoes`)q zeTH!c=WAeIn};fw3BRzQ`f{r!7Y*n2Mf5&^d6m-2qG5($x%*B zN+j7#RBrUufaK+K@&y`Kx%lQcguf#b zqzM~=R~d#7Vt6Bs_CnDpN(%B75yn*4v^}De=nVV5V8D8=c}`e$&X_P+)aQ>ObWFZX z&Vn@Zg>JCVN1sU2wK4}xY8sBcHi&u(zZ3CX*jR~D;a%QNV?lZ43!?_EerBqSKnGqi zsIwQXNK48(HL}_;R(unbLS;;WlEyQVXd&(wqDr&4Fw$1CKJ$TT1bqpfi`pMpSWZWU zrxo)QPX1`}4Dk`Q;aJ`b%69>?KKwb0Mj;$pU<+LMZH5 z{XVi6eQK;@NOwS+xqIflwv)nT8b`M=sULVc0%;EjXjGX(+z} zk2H$I*6Y(FxBDj7ea*#`AMiz@-ys5e2nlIHA5zj8m8JbvK-5HU^G4by_|}&?K(7+D z`~1LI9*DlOu-y4Z^U421E8#ZQbix9Q=!nSo8;f4_9zEo?Jn;~MIrqN!82j+Ic$ayr zk}9doBk>Cu?yKhTWl%+MCtZ`z_$9A;;yCLQASvvHXImNhP}Nr{U8E7)+?5`?GJJ*u z38mT)MRHjx6~_-A=<`=UG<4ZaiQz)F%THn}Mj?vO(*@TB;q_Ci4TS{7V}*@P;Kn}S zL=N@|s*ynSH>f`G5nqA`hMno@+ht^JGwp2=SAk7vc2n(|`P}5GJS;D_vwwu2qNxp ze6g4^n!g-dBIhK|HY4)+X%Wp;Jc+thEP`pZ)S4ofmGIc4>g-3joJYs66?17GXC(9CHxdWiCg*tC+>bi!` z3A~K(cxmo?>j&a`%y+ji0Ym!~ix4A-tQWT73Vuu&a#L5bv0b>%XOq>cst{ocHUMgO zz&ypD1~>?J9*k$D7Zg!nBdxJ&k|$qf^@)jwN4?tdXKH&_I+k7fCC?(}!gKpdEPK?g zg|Z}^a^Lq|A#X@uMj2F$k~z#r?rl<22kC0r4sVkK`u*_Gf}*l01E)-k@9(j?_whax{!FNXk;;+2io6u4o+j+VOg)%1^?El5TLm zmK2ZP%eM0+ek;}^hU?%9_{hcU-1nDpDz4yi63YAcRntRZL9RQaR!N=*s9lRN^Ab*r z$op%RM>@J_(CW2CZzbaJ7oQgb3;E~97kT|c)hGYnub706m`m}v@|4UtZsGBoJa zeug#-O(#VJNq8%!QiI!YekwdL(%}-U12jmrp#z)&TU&k5v)@8N?Z<~+csm&MS6=8FFVV!bch5xb~`b!-4ZiP$B3q=Fz*IT8D78WQ3 z_Wezn{Gh#?5?U^anjk4wZwUD;U}R@h2CJlJPP~$yC#p)LdD7qbNV;GbaK*rKUix5y z^lcIDV3PAMqPnE{;|$MH8O*OTa<0VBZ#X47X-^5U?9x4#)0{3Bb|m)>;(e6<>|~xQ zT0Gx#F>zEZnd&QVKAmNST86o9e@oRPEqXLb1T*a9hCl#*pgbHmzl3nphMZ*Qc20|r zh3=z)?xnh>UftdUv8iVR8(jv11a-&VF!SaNgGgDu6;O;-RW0qX;M1g_S*g-(WBc-ALcdPfbE8@_83CBE5n;N(pIP_|vkhkV1_J5NT-ZK7*MG?;@ zidM%YwH*;kyrpd@5PE_yQb4oK>D~%|;M$Ru`3}IZB>z*jX_EE?6nw%QsCdX~-*b7x zokN?p2MUIcB8e_4x1P#OE-aSP8$r*laJ`Z1bgl5s-7G#Vj`*>p7@K)&%QFI%)o^WS zBL<=>LQXjxB2!zJq(u%(a&9N~jQ6JR5Xg5aUac8$8&AuzsArwKYf=qwu8Ja!W3M93 z>HF+cye|s>%utM-bH3aOhBS}89;iLUKO51NsjeSd)#=QEtX6>}3i>>C#)J^A&0Q_~ zoMU|D*(;ovSv2{ke3G6s=k@6cOFXKNo)bH()|!q4WaY~mGz=c480T(ez4AwNpNr5J z+OtcsK>T1!=ki$aGU=eDHju(H6&vd$2xvUXz)X$~(6D#UBp6{rWV))ZygRi;uAcYRNM|gE9wy`ypF(TyQ zb<;{e(Gk?wk^3q1NHTE(qo6#Gwrw-9ayxLk0%yq0yC1~G@?`?eNE|{)Y8WldU zHlEK65TenuO|l6j)wGKZ5e2~X?lv89ym1=cb>n4A@I7BW$II&o>UTJm@+ibN z(UVRUODE-sp}^&_ayylxebpB(xva3k#f5Bw`^I3oueyS!skZ^wWK#5dkIzC_CXC14 z_3qv$`K1+$lftx*X*w?ZfdT(KgR%ZHp8f^~1i-=as~$2Cf&#jl0T~dsTLy&VK@7-` zUI9d~{!cI<{~8HoeG24GdH>a7Zg2j-nU>%J{Ly!k3-Cve zzyDMCFc<58`k%SjSpR^@bNwEbmg`~ za0&ehO#cHpzeV0}dl%ae4E$#b=&bnzzWtE`wk{j{&@nF4x`0t3|kmJ`?_Y%Krq2fb|xHkN<5gWlE(8_N%G(A#Gb0{#PV76#sT z2j&M#J^lXa{dZx0mIq>F%&d1zHR;#C!Th(OF?$mu4_%qf2S|W>$z+{V4Gs8`Xs8y| zX_c7spR;CXifIOT*7~!4$ELl)Xha**M{M3Qq(>zwiWW7=&PIp}SPuX_*}!!l;7apz z>$4wvt0mTkz3GhP--6CDxL~~sX6o12Wp0lSyKvR96i-x^j4VuoAEqk?*D2{!NPvWv+;J%qzC|Jw)xhhbIqXT)}!->-&?*FYH##Y4=C(mu6!xG7&)VI zmYf=ojjBey8~&SuP5Wl&ofoQb*q=*~k@hMn6VC}P&$hRp(c@SUZY6t1mFD}9nG;Kb zu0=B|+A`K@eHJf^i%w^*6j4S=95EB`A$e-`*h|4F$Tmw41I9u$a3EeA)FjcdVn5Kv z;R)O6Oo}Z_Kgt^oH@mal==Fkonj;a z1SitoW)hB`74El(zP$0eCpngnpHCI82o)6W?cg3E&9Ih#QYlzk9!D&y!$*aYo@L&Tc` z#RDUVY<6wj-S?Pq6G2|O9`~y;&`jd%5XxUiA4kdH1nF*bEMti0Nmj|F%jUGr-iY01 z+EAMkz)2D)Av8RTesN#JJrFYkMv}hci#s9|(MbdYGTfBE2u6|N?UF9zSzmg#@TlOp zyV!#|Ll71PROqoGEkYVCGUjyw4u%u-pRQ-74hMuX_i zIuGoA##xKHr#O;;uELj6slmhcZ6J*KtI|4!T<%MAx{*s377yF5{S%4ieiD@fkNt_HVa|u4oi0GjE1e;$$R>_jy>ujCsZWRi?K=n+ zeb0C6oY=v+y8i~bIiof&Y)WWU`w z1`K2J(`o5pB7nfnWar;m^zZPhR=I-DLiE3^#!2U%L7Hu}EO{ z`<#XTnC<_KX@Dr({X%AJKMb{73-Cu}vi-2ReoF#`3`iJ+T$5g^)`$ zTp4~bYx6|>n^eE*o9Q5zC!&f9M+&r87wihnlke%39Tj?3t16N!W^be?gVtnTTUyV-0$4-88OFk9jt;U$_98Y` zwl>yA*1&s#bD)`}qmexkqnM?hqtO#10~-1{ek^H8E9`zc_3Wq!1z)1i3h} zI!ZL^xO&CAwd=5kk_#>r927wc(K472v{Q9e^kl=BB$VsMrS8ZJES&-o{4Loa?(xh= zPQb%AgNI*h7OrPL#tn+E=KC%p`9u?Hk@q#_p3drPSohki9NMc$s6SFPAEGW>kIk!7 zt)t@@G%_oe6|T!py7FgAS#GzeHA2q_V)E?7DUbp~7u>MFCh6#mxvVgzHerbVr& z73Yd=oq0vMFS~}3v-1J2%CNHRfgj}t9o?nf_QV@rr3E)yuaA+}ve?(ejK*gWyLZC(ksl$0i#gB`UxHkI6RHz)@?7@zv8TRXkY*xOlgN%e zr{Y&o%>#PO2ueqBJZCX z1kM@DxxRSF%#sgqp2yNwP}Xa{uN)LyKE)%?voUMRX)rX^aq=x;%pVN-)FNKfFdFwo zmh;d!)IJ+?klfvqZ(K864NS9kBS<4~6aGe>y^hW(q?sgv#7OWQT8%oY5zgXK$U@|l zP;d~(9HHcy=}&De9nvPlH76P4YnKP+uk0jzE6f~fBs1X(8dgD;z_+`D=jp? zgxH5=f-+h~Gz3Z*5n8U{f`}DxvN`|S4{k@~yw0x`)C1%nuj-%Jh;0kL!TD_nA`nKb z7`X+47gSyl!yD2P))Ul_d;GQotxMp0p*&Z1mye0_CG7GUw>lVyV^PG3ufI+R5Fb80ETLApZQdM=nkQ`t zF;t3qFgaZ=l1r19PjSGU@G>=!R@x%vc=L&nAtDD);Q$*_ z5PTMdTQD-*nGM*X>!vs8A#=QGK;Wmq8oimk5je+2@*X*PU;~xxZ^CQ52U;^|#nlQw zX^6b9Zr2IuRdcmdNuYb-U=+*q4A;d$!udr~+Sc2TE^#{O$|D!>IxW%xyV~@jqKur= z=0rv*)Zl9w>k;Ac&#AZ7SfTtoT{nNqL-td;qO1 zYBTFvW%e}W{p{PF5S1l9lqMJX!j-X<(C6xO)a~xFZL$&?os2rcM6$(cxrK}tu5S%5 z!{OtiR5EjNa!z{t9)F)F3sLth`xZGW!Ws%*OP#JE+!P4X)FIihmW9%^r9JGwq44pQ z&xmj4atI@b0Tl-X8A{@;kvF<5q%Nq2J~;{z_#g;d2BJ6k8VC;&(jxdZh){;@TeHH5 z=f}wK6Q4iRv*XTwPzA0`_yq(=u`gTEZf77uaG`w4o&L@h41eY5s%Y&LFe+h}ZKlWeTUwryKY8r!zjs7V?$ZfvVfll0p@ z&wJkQoc~}4J9Eu7bKSop-ofTr7EzIDt3%+Js$K350C3L7FIKu-j5ilSOU{|MqANJy4}g6UVq(LenOo$%)l z5~&{yHCM(hJiLDWG|v*CC8K3f-EGE#GYE1jvM%5ZU%1*&~_Y@r#96KrCj8ZHRJqGe-|@DH;@9?c6Nl0WFUBNX%lO zX21c`KP?jc?s$tQrf!1wRsOY|Rw+-{Jnqi4QXCY4LHJ3;TPYzHsjJAt&^|5w@wvN4 zP_pBO29P$EM~$zj35}wO+0a8Bgogo_RQrR$2Tp^Y4gNdO8$fz3gRzgq5-jCjv1dSR z^hafVWp#Di0$v+elH-ofvNfcOC5^>1^X;6aZQfUm{-}P4N875CF)sF?Gx>hQsY{T- zrmiDuQ&sUGz7)PxrI707I{x~Kxzk^eD<&n{*<`m9R(S1;r! zCMX1(LLI>g!5Twuap@cE&KS`*h5qxRT$nw?Bza3?%r^bF27SW>;Nk`~;5`eV8%GoW zJ=EX4!w`kR&CHoT{aKRGZ;4}J*pQk6M3iN=M#E`=Xnj-r4$C``|m2^S5YpFI~lcF=NQ*f9d=ygcCfsfey%^X$=5T8{2GAy;e+GRJ z#h`=12p%n^X%-L}Gh59xT75gYD(vr)nBp0K+y3;U-;w3ldKdAw1>84K=9=B$)rutX zdDD3Zb1!)$-rHvxA&o)uye}4NpSLjbT!)K(r5iX(AH_SXEA)YMPHW<3W2V#Hla&Me zstQLat^GbeJe4h~^ioUqd{HnuZ0l-YX847KUQ?2iC^+BbatmG2JG#@k$4?ZY> zY=W7xE5OCLJvmFIs%2$N>ca5Z&o#W7G*e!+kh0gJ3C7RdV#`^&X&vzj+6gA%j3Y7NAnWH{8YXC%XDlw6mLoOrH57;8V0Svqr%T5hORLT}Xx=LWtMBvSO6|~mf#osYRJaaAmsnbNpVMHu` zGpxGY1fC0ek=ZBy7FRrRnO?aKB_3a(aoqYt)HyAauvSDN=}?ScX!@>QdIp_g&-un~ zf)1+s?&`MKq^ZTFRaleTg&!q1LF-x#cQ>R$q=|UyLYZY~IbylAiq?+WV-D-STaWMT z2+yAhiynC{uIS>`TsfOdo>X|ZFf|h=!VfR0Iz7QXzoLfnIuFk0z^JsuyTSZ7BG>>} zX`lv~du3%^0{Z1o+vR0P{W=tFjP^-+N3LP)NvCk@buyuzo?V?DuoM-e*(2%Y*$5I6=*u&voyXGPuF`CwmR!*ohTQHX+UgfoJ zMU!*NYqJMpgw)^B;d3`rFgs&mc;mg+0#qw*yA+D0njLTXUR$<*rndn{7@vgJ|Rx&X$1b4$EDla{tiU-VR6!+==9gQ}~$ z9R5!m!_S$VALzDnfqL!!y12FYDa=nlX6cK6h4Nc8A%p6sZJjd>?B5C^uOv2q{VvYP zIN!kit~%#%*=0;`m3j8?MO|kdb;{%ZxO7sNz_2w(&g&0_Zm0xSD}L)(P3wQnaBkJA zC$Qt^h^5PuP0+nHK#hKn2OlT_l=feM!TUA>mUTR)6l3GSS;*8QTr8)J=vJd4HxQ^! zk`|q`C_RY5O(qXoP{ziY3Q`8V!-rK2)*J+h;#R;qX=(rZy5Hd8`4uT3llX<4(MnGN zFVLv>^$3+3%`wYo(0fRkwKb?XcanKrAodqu(VW3~JU0=uvN?gz3(alI7!#=QvPQ8f zBhRsZYM%qJfc6Qs%_h=4_-jgflRz~^ELgp2se-#Jq@-1<<_D2&o`<1jM?mZc896z* z6XyF_ag1?MO!SBAjq_T~3UGksGzs0vN9vJ`ZSL{*~*?{y=H6>&%KA2|tc!O`MA z5~0t4_AL&A+9;+Jyykb_5v>)e@D$eSZJ7mf$M+GzY6EE=Nww5HyHFKc1_vKf_f)2= zu)|Oz+fxKg?GIy~n922&qwQUP9(|hox@gt1c#^=kK^{q)2CN@-EnW~>lSWZ71$TW4 zB_rZ)fVznb;t#i|9Kz!5T;7{i@2g`)Q(x_zFtWbln6sJGK;+iN1_|P^T(`=?>W+yo!XH2CJjPB8(r3@q%vk-+k+89&jkNT#U=whmE%tgE2;#8uD`T`X?j4*!-IDHaQ z15|wwlPdBL7s^Tbc`d^qI>ev1ZW6Zxx|#4t@bY$I>ZYT=NtVx8oOG79bS{xLehWY% zR8OKAbDo@JT#GeXA>Sn5z+?E7$6f)msJc$dq3vPz){U@t!y(&#XMhNI*?z}I!&+z$8XM;F#sM8w>)v=0H zhXXl1Op{Xp3~3hCud_*H_qLeC;x5Eq8d7YR;<>RehM^X-+&>RdV5-ikwrsXdNpGa& zqRg=kbHOyI|Bl*FFTfpu^#B@?;gi87WUgUW?4k3&^((=;#3_^YO=<)6`WA>i)%lIG z+G>1;H>$;QeJ|sqe$%pZ$)HSPrbC{%%loKJJ)KTxRZl?;f}VlB=poFitcCk{3HdaP z?U}#QVUz2xJ~RF1;<)w`R9ltD%Qia!Tlt*?`6qk2)%L=B=9bSEJpmHw5cBB$*?hYB z+GK_Nu$fJ-r+3!yzj$8hS|(-4an>21uCkd$_en-qP6x=O>R2v<)tQ(|R){<>N8`fp z_d7Zg6c`T}RG!AMblzC0+Rfht{y%0yQC#x1hhs7IymFv7D#a;V~SAV>6pa^W3h73$Lx? zfreyVxduyLno+-dwU9j4H)c!2y>3EXGL8YQZ*!$8dkcS}OzotD_8GcKg zNS8>wB))JYJm7CPz8|+P=D(dl#?0JOcf|WZ55a<;xW0lG9O9176tNPfIzp`L-ecDv z`GidEb}OF6Js@N0`wX*4h-LN}%y%_ZwC~3Vw%F83hJ-wwlz*9(wfHA51u7iX6}bWd z2|$Yif*`oE%r*Loz4*lXzURrGpQkdIhk0{%kk%m8(E+8*k)_pJe9HQd@yKEHnx9Ez zGuRgva5T~6tJ6EuBpF>MDy}tBJogb{4|y) z_92qe8MFP197`95I_}5h320L#wXKI!J}$%|=WvwN^H!OY!Uj?zqr~YvO@>P;kRsZK zRI@1T;hD=h=`tK~-cn&BCN$`|xN#R^1E@1c*RiaTKRji(-*`wF<6XO7OXB>%R~_R9 z*zZ65dHC?>IlL64QcVpK(Yz!t_6pgyH zjownf<|#^?@SGH=R~pD_feRia$Bv&4pFZ3I$zc z(N8i|``H^&CRL3&rF-a>22E1a5XM;N*Hon#1tDf zrd1if+AXOm)RGtJzau7p?<+3a%-sGg7&zrQh^uG8Tk$Hz*0BgDPF(K}<85o=(O_Xg zcIl-3=SRq3Ssb-uYy5ldENKiMzV?$rRO1b8SzRWQOv-YMk1*=mCQIPcbt#2vDde>k zIK5?@*4oGrao?u+R;`v7%P;a@4nAaCqLFSG%lhP|N=5!ke)pB0am_@1x`erLRx^fH zE5YOKb>R=!->5znJQ4P(kLf6gwnf+q$3@aNQ1%dga}a>y2}2iMW7rp=S6J$;+^|J2 zpgb9Nr?*XoptFw;hm*e~%cDjaIykT-aIDKzx{PuSXMC}U;eOmojyA+cy>E2JTtWA4 zZR>&4YcR2RA?wModMijkzn;tO{qyTK#N!!|8(8^++!EhvNr#mvt&9H<^hLov{f|*H_*la@QmB)Q3+)T8lxuK^0%} z(3(zHASE-}WhhE|>KLKRjSlf)d0Y$sg2`gWF=lECP37^;cF}rOIK#^96*t%4&eH4n zsy45PUJ@&d&kVCuS8~GY%GMs{LktXq&i(-|K`>g7Op;P@!fB@kz|>nXm(bcZZc@aY zq~8g-IE$gzy(_)-)@NY#I^9$E{@li#ylxL1JV{$A`lEO!mFa8t!OQf+{%F8$=AZqT zA!juOZ-~tj0=PWBp12W#BT~vYDteOv9+3eq;SjRkx@ZdClGS>1j&ZVaXT6;-DSm(mR)R=budu5XYd<(x| zhD=Kk-jvrX+~oYMBl&ClzW^bFE=PB-fusnVL(&E5JOf7CG(0)QKrvD(=DM}Y*EOWt zoV8G9Se0Usnpm6h%EJ-!9cQK;cbTDFOU7ibHWqQfro$-ENZJX8uT6tp1t#H)R^^43 zbe8?)=&8k3sWtgeLqhn>mbP6qzdreD=wfIrN6zGaF&fENvs3CvrZ2SO5xi6p8MMzwZEOcBwHGU9bXxs09s4z2We!ACZkEo3EEel_$1X@SIo2IO! zAmOX)oHyYzdwzX)L5LL_`l*Lu;n@gw^x1eyKsGnj4AMcUEUBmP3K87qnh33?Nxn5> z^JZ1w)@^ucv&JQ(;X({-X!md3H={$rSL?+~Ovj?t7vS{bl3GZl&i z10q5WyT7|NUU9gLbj{-P%O0Dc5Fnl4&3Hz)RZMg9fP;vW%J)>@i*$6TRB0H~E$d5Z zJFK+Spq;z$Db6hveZ}L>IS320h}7)&Gv9RD&ZqicuD|BC1-3W+$gL5#ZT38sBrJ2B zQJUG3dLW)|RsXADcro6yhcrzw9`_AWQXN{XeOt&mUEPalu-ks_=TD*bndBVVaaP`eV} zh@5Kn*S0MvD2Y{k-`ZPAOcAZXQhm$C!4mE(EFv7K10l~sJpI&ETqPX+3`2})b?>tB zk1Z|gzl3IOPfBkC>?OHfbuR29iyoJ{!9T$XHXTp0DCK#XtK=QT0(Pk4)>c ztp4$e7VU->ZD|#1m9Bp0Kl5*Iij=IzyCv~z5<8_vUT5;6mNNNbNjqN2-zCyh>P4(m z=Rmx8jx~8x$*XtHqVEHufDn}vZGQ*0G)mJPEsZM}6k6z(`5ldQO@$Ncb zG8qfl5$p(-yN>|68529f?*e`5lAb16^d@az2gg6WEJY+fpPkzsl{HWb{@fcYa8;z>uD#9_CZ;fjOp_F9 z;8w}c5ykFSyvyxV`Px26Q;RZ-NqYw~L0$q31;ye$??0=u7~02GEok~H`pUMJcRYu^ zmH39)sE8RZSWjsC#<+tgjMj@8Raf@v&kz?`S^7Odf7c~;rSQX}d*;OO>Js`(p|w#E zDCo=2l*%W6Ha7i2!DQM^{v%h+crYvhy}%sVvK^2q`G>{TQd4-4+SfH(8_W6-0ri!< z3+Q@QVHi6|3&LvsSUyG{6OwD*(nigiUS0yyZ^$aFQR@DdgzC3WZ~zc!KyWmLXf%kO5UJrtozIH+#gE~tu^-l80o;T9%aM9Xa7m8+I!0@bt489B-o|=KASC|jxoz%;U^AC>b0h9eG zlbK`%?*}RA&aY}$8}5>}-$#3oEe?7_J|)AOXn02X6aHTFeq`ZHu1;Ga^mV$h+cm@} zQB)@uds3n}`734+s~a-wy)@;Fwyme~lzMF2i~^C?k+|r=G2U z6DFs19}hX%^7fKA(QpaE7(6WA%vIO^o6q5yU5gX$!^FJD68wagbvPR|3o93G$$3tao7yH>Y6Ssj1S{WN{xd@E6zb2umSg_8I3-*K>^_83s4$i1fg7 ze?sKS|6(iD-P($d&Pv^MeYz+T#9O)f`$v5Qc~4Y08u>d2E(R%zHqJWJZSiAX<QXp5n|uN%_7)5 z*N`e)eM=D*!1azPI)^HJ__2FoRsnpKk@B()+a^%lmfVhaTLEs3%Ht{yL382_hCK`h$~k$ zg-#Wj2+a1lSO!Q*2ZS45vbgH{*m_=G*6A@dZrEk#h7wszI19EkdRY-( zMJT{y;Op1*IO0ZJO>&gV`B2GK{dfLeWwcHz!Kjkb3h8e+_gqgya zhgrZJam;!mK84TC^dZ-O@zRZ$CGVk}h_y;=P*I3c1lIP&9uH(;{0%^o6y!&5hLNC3 z2xI~1oAegb46hWn8`XSjB~qM2Ji)Mdst9CA9O|qHcU+`m3t^kPb+^%Dw~8jcnj{c9 z0%&{s0&x0ms%)eQ-(_H@P|{k3QELc%3xc-pK;kr{UMkolUj6DXegI+4oUq zFDH+wgGqLp7tf!_susg0@_4z(#S;<__W(hk z+b&1!_9{DRj_<=ig3ff+b5&VqGuM1Hj+_21E&F0A;uUcf6kRd0u}QH5vDdL=ajJ1a zaSd@l;xG&bSJ`0f!!9wHxz&OA;y&!Z>+*an3T%CCKMVzkVQo`;k$>NrZxdx(L z0dXf2RHvSp=MS2>hg65w(3S2vww#s3npC6|_r4Qw11JMn1NZ|Z15`|{D!+~sNkN_a zU~=lpT@S~wOxWTk^@JxJ0l6ELD2}8CodZT>1`w`h9aC6U!L&U$QzxjyhnCyR2pWgG z_Tcg|x~zEAei6Ca&9UvfIKmkV?OxOtWm#UR9xh+?29m#SgC1*NO1r@3UD+me-Kho@ zL#sfZ0)I8hgr4V^cHr2ylZUPAb{nowhew;5w-!C~uXt&+L`3Xx&(erg&iHc6T;D_R ztp4|vK#M;EOQE56kr8$7C`N(;9(&(^#_wVCs)!yr=4JP~e!RTYJs#@aLVlVx=-7rg z@SFQe*ztlu_^#{L>iD*}kWr5NA5LnOQ7TCifw<#Vc4R4lJfQ`l6QKv8A7Kb#6k!5k z3Skyu9$^t-1z`W)T@K& z2NVD^eG@4LV>BD0!i9#&^IrKmaofz`XCaFdA^bJvZjsgPXA0#@F?kl`BO(9VhEK~# zccWmFbRI;oU+o&09DNS+qG1_s<~LI8I?sSdtMR6xXrDRZuu}I zDuYOKZA4rPTc39GT{9ma4I-va-}laQdo=sLEH_5$(avs*aJsg8K5lh(`r1`oq8kM8 zxgG3WFUibJER7ehkR%%TLd6@=D(MHp<@E!FX*d1GeEKSA{+*AgW0NQXlsCL)eRu*4 zq9|&ky8ecYf{>Dll8;g{6`0$-BItQFeQp5b6n1kNt%q=eaPAc<9p?B!hMy~o1tyRT zKn6eqz!m_5Fz8wT6R3i)I8gkkRU_6}oQts3emCE1X?ESD*_iGJP3C&;y{3DS^qG#y z7A+~T&IWQ^&Lfo#YR3o$>9C*8Zqu?`Y!a%|oxEwMjvUN#UXdX7Y}jvvIdo_Mk*GJb z=ex0>bFs&S(nosIJ_BO$L^*w@Z(OqO0nw~8}-Eq)lJAOR?`RC^O&Xxi(sf)g`ZY^4<*hvc^!#T;nU zQsL#IpFI-wF-kn)>-90xY(pHB7Ob=sio;hhTy!5SUr~F#RCy#PP$= zqN%)}#WdRUCBC(P{<;ys?;FWA-sNqdEp0PRRJNYdbM%fXD7GRIXT-0=x(GC}`p;N|3T`If!vTW)!opVI|h?{5C{d8g18 z9{%v@!N^{S8yN-wGXN|AZ~-7UV8%dm!21DsvfYE83@$LCmD{})V;n7+BWfv>PS**= zHtZ*B{nT9SP6F)|LyR&K{SE)v*!`8M2g&>*araxzPs2F3sL|5b3}J6vZ9sFl9!z}b@6cH=IV;MJg<&LfVYkC}o+O z?O?g~av#a|Qwk5DyjK0wh>{jA#h(ptv1Ybz(k;aGs+$Y!xuXZ?ggA_A_1PB}bl3XC z87@NSA$*qpvGNI1lMZ-1Vg}PTQ_X?eM>98?Qa?l1(3yhKS^INDoQ1Z&x4ZO&Q6SBn zQ(Hl2eM4!Wt?i$-wqW9mP)&PxFRl%C+&!D>E)7o9a!dMT_Y5rE$jEwPg5E7|kG?E@BaB?V-&vEu07#% z|E93>8J%UjKtw&|PiP_nW&VplGI)l}DU~hl9zADlZn-hh0CBmjop{^rCTb&Tiv}~t$HR@qVEyN}pU2}PpJ5KA6_o>I< z=T!OYeO@0j`c6F@tD5(~b^7?;oeE8zurPY2`|IjHYLgD9X91qLt7jmlY3xHaUwItS zq}5;ck~&R5*>H}_^J;~kdHOV18-4WuwyI%mQgnmD7+nv2blqu~ukF}&@dov33ezDh{ zfHJMR(u?ht(|XB92#c}~C6;b|d9Mc~mr2(2X{;D?KAhXYLF5pkm7oU47}r(!XVNnME_FRVhAFKs@~&wg{4sy*|#((Ui|?>)XTY+6Yf z!cvkMopVhd;>hei`@+Z^sAch8IalZXzO?HacX_kVOMGu|nX9+b5fb>ht?eQ6JwCl4 zl`9BG<}2@mYFpLo`|ir%UuK%)0l(kwl0EfYw+keYD9{dF%4 z+hDo@FZ$dq1&$k#8i3S5acclTh1|3L_jH$pvwWnrBx{R4ME+RCDzC#lXR1qzog$h( zH!lZUpR2UX>&oYpc3b&3c5DYSjMKC}ZX8@qupQLX^5_$l3;Hjlg3l;HDx?a;;ljqL z7!f8Iv;TGMCeF(k&dV1Z_vazy{Mumy?uu1Gbg81l#!t#M6BwL>cRK;q*QMs-;oQ36 z8|TDEtFw?(Ax2&N;#-rRJqcC(8SmEnX4k0c7H#q;4ofS$Xx9gYR^Wj~#-dD@3n7Dh^PX%uex5CHmQ%`s+)Xgk87Qc)# zMWp|xy#Jz4YEmwfgNAJXQ+4A8vI*%RDFOf?2wD_q1t1GT9Dtet@CBiZ!q5R#Z7S1j zv7&%hK}4eP$G{-Seb$5m>>Yhv22<_|zGcOas(pgk2zBou7wpQ=IRX);u1Uwm?n&q- zQ@^j5z5A__p5G`|H#OM^8{nGgg_~M=6sQ#WyqiKM_o}JRpmCJ_4HMa*x1v(v)def< z1X0!jcL3zZMV7;1A;qPu53m(1jCnb|krmW6yd$ZJLui4YEXhZ`tCTw}*xbr8ri$vV z^@tCeJa}p&tWGVOOW{v^CM{i9swHiIB-t5}&(O7`bx+}5x)^e9#~9A)dVg1)udSwU zFO!kIw>Qp|sy=j#wqjmh8-xrIA+tV4>+@I6) z>ytuN0OplU=G7mcgZV%MZmYNXKOCp0!+#dsVSTRGEkZLykpA&)9f!0T%n@UR6RK`# zC;2SpxzTcyc@OR{mlR?=HlPlG004gti~{^kVWu3v~Ip4aP-<}QW=A2mi8y(@bOi=MIi0DQ5KptK_hu;-n zqgTtm;eo&E+gB@QqT09o&mF>K2Gp=W%v~|W~Df|icv>y%eE5IgK)TD72O-}X#|Cux|nf9 z0Kqbm2>(ar0eue;9l$V#p#my~sEVe`aD~s6N+_`@H|x1jW75^UBO0W`97I(X zc_hrrVGr;nIn7kuLW!m?v)0s< z&z{(zx!HS$rNRQ$`w+BK-{EWjTVM@LcZd@MhXx;)TA*>xxUYAn!%(cnsK@2R%48#u zv%RQ2w`lZzqrcU{$#-4#WN?0Nr_pI#vL=)#M38?AYm9_68u}L&XJA z1tEGtLGJBsJl4p5jee|;d7-?UEJ{}PGF)LjSzLYLml3=cvT3XX2VZ8;jp>%nxw%#D4*FFo6EnTtOr0tZR zxfy-xy7{JmPl)l_2~exDI}4dkTktGE&pkw64gPW|(YMDpJLhf=tU zQQ>#J!Yf80`pM1Ko!QDb-0qsUmyEYs`%uA0G#SCKnVu?I#Gfk#xmOllZzhf(AgJt9 zXP2wTMC49~BRFM&+1u_{k8rA>s37^NpD!rve^~I_r4r`-rWQ>eo zK15)pi9koZ1+PuG+QiB!bz|xUJBkXa5%tGsVz#DBiUl_5d22Pmu)#IJ577>=sfG(p zhi1mXoQGA#|2eI$e|y;e(`D+q!(c==qfw*PFY~QeXl!E2|I1J4#T4)XTO;GGd-167 z`|BNB+whhTX;s@_ENWMmObr;BHZ83l>uPZ#RxQL9Oo^$}J)7qR>bOS*>e9P4Mg=SD zBHhP^U7DvRM?33QGy>7;p*z%&tu%I2=ld`>29{_)o~amEiTGNpY^P%%UEM2g59f{! zj7CailJ3xFnYg+K`-T~M|0KeZu#rlPKIs2Vb(b6KmzS+jwH?ONfVHwK#$(88A*A+q z4e1TYyRUqcN6I2>R3RSfF&c)`cG@3s)q4?F{O|90J++IfowXILIJ?&jf)0mPa#~9t9#|GvevT9tZ3S-AW69dEMh$`WR z#7k-}js+gkzm4HNJGkzw{CU&HPb_^Dxw^vmqmw(+#(`m!N;=~NoA;*P&AJ=be>-v` z#_xB4=Gd7hBJ3COlZx?uFp^&bBXU)R5s3V0st8uUF>5`mwKtg;fAaK+TZ;MTnXR3skv9bP`s>z592@B~Mezqq|A*eb2-l?kM%MaDBUVpVem>k&{Q3{xg_TF9 zdRGVjuiEIShJs33mrs?H%ND0m-2T5uYX+@u(BA1j$uizP{W-%r+Z9eJeBC@dZkM7a zaoT$z8o~bMMl=-ucPc-kA%IqDeP2(Yj5oG3dJh&e{MeF(7V>VtLoxjhu^2K$9UG}W z)lMz?BjXDQyQ0gkt$f&C_ARYE!cxUK&7xz^nB;wcC;a^)N`yBJ?LqTsE$UY*9G$i( zFk~2ep3yp$vHS>}fP?HPCG3UbK$PSphPI5FDzB|bmHo@|YcV>o{|s$p8&G!8x$qoV z4cH%^AqoYBerH(7smPlQ8QN6gdg9lepGSeek>9>-cjz}WC+|tZw3y*1f zFOsDWrYk|8gO8QMLj%Xx>Z_577&=&hbQEy4_nX=@tTRfVHy2XU+Ho(p-w8BCuk&T) z^o}PSOX=3hPw+`c#%F9CtVtBHpjw_}gc44es*OjKy}cX;4`mG6+e?hXkISPc?j^*# z=hYwQ+g$W6Z1DyfU$5=#5apS*JNZ6oY|oFk6g$10+~;LBdj`t&*M7b^Tap7~on ztHv*v{zmje$T=<~DgZhF@-S=7t35A)Nib~0_&sP4xgO5ux5hfTf$B6~+8Fg;A%{RU z26Tv0CB;9;*gny?h$#zCTH%ZVJ+3Q`T8~|W$eSfzq#^pW)hhnW!t5fLs6P~o9^g-N z^q)OZdQSv`*$=Yhl@JrM_8??dB19v@xz)HC&|}b#W|hQqz5)T@ zi&qvwE7$P%Ko+;B(eu8nEy~z-+%a#Lc5grO`23nL8=zcR`}$%Nxo*DLQTm$J?#g3- zgBy}bi3MY;JFj`f6x+aLT+|`sj0lfp3gw zOtxU!=t6|yN$&>s#ReV=+GK2Z39@G^a=?D-hpH>5lk5J!jVn$4l$eFM4CN4nk;QJ( zv79@7=6?w52_R$0>VJijCA2t$g}51j+W_kYGyxDe!Bqh50q@zg2M}2XMMURvek?fA z`{Si*s^WOTnp4|*3p*%A` z>B*f;4C6V1TyC|l_lJ#l?JCNf7ulV>9Dm$Cfw_9Jy26QmQ@6YFnn#A=3US1;&iu>z z+y~o4$AfHavZ96=Dbx14Ua|g1T?^F)U?oE#+Z$rO1w;JzS56h;A4H~VMNu4~U{=`! zd9qO+JDA#@el)rGLi*iVw5jqgoV_x|b*~{!$Am5LQdCG3eFOX68o`~|F6bJ1h{!3n zmfU#l~5eAdEL)bZ9WmM4wXHJZ}z9B-AXMOZM^5}4Jd@phiu>XP;H@clY z@sJY!fj(&FrZeIjUiY|T-ls0t3||veL!Yp9ug6)|XD7y0)Srdth<5B?@n$(L%XwR& ztShS%)mW;h|6G55RYKm|u_dZq(GyUteisFmHeFEBu>ZSGK z8pH2fOIIhxXC#a^14^kr3ZvE@j!F*akI3h&4c}FMaR3eqQQaV@lwBruV@kmDIvK{U zi8w+3dib;gwGr$ECG6B+jd*m5P@$tH0)YIT`&$ z(DLKugF)Do51-!w`xOKno16^8Sd7CBE6Bvi91;`Owl4(!9aQN{7k?v7)LXVNEn?Ip zr{a=M5XAbx;*r5>0(Ay(f53(T%?Ahy;97uA1MeYj1^Nw;k|Df%CTdBS6yINk;X0eO zl2)K;rLtUg=w$2~b&wotJZ{3_mu$uyhUbmy$?!Hz?X{ZL>IgiWiSU=kSl7WsP_|t5zY6ErC>Wxnghzl1 z2NaP}V#paz4JZ+prPPKrPwNk8yKx;D>g91!&2L!PiV1!LiFw;Yxl{Vq!es$Dz;i9HB+CR?N~DknK>QnYP>*hN;gNFSk@X_lt_bMYctNYe8onVQM7>!< zhpTQM^^yij+Zu&L8ZW^8eJvhUN6mWw^cMSZom&4bdZ5y=Ry{4v=I@z`6+hYSDsu&9 z;=jUMYoFrM;cc}vYIDQ~#|T79qsu5fZ|KlCyRKK{AnFMzXnzMG=vg?g0(1cUG|)qo zWB~p}OZ{6dI{;G$=6$g2hX+3SbGiGK&&fg-ZGEPGiJ&H_i3GQ(wV&}|`yRSgtlqZe zh5Qj*urwFC^t%g1ZD&D^Eci`XCju<(QH@^QbXxw`MSaF$Ja-?{4_;Q++nGtS* z)fHGYG`Kt2uFuW(Qg)*!tmI|co^~!S`&tvesCXBB?m`|M@+_T^_QEoZyo z>{bB3=Mi4vsvxUUmu<$4NdH|-Tm}dD?}(*PpEzdqO7W_-tF#S8mWuTq(uw{RS=%T5 zb^v<#d}IDs87gI{_@1g*D^Qtr^%l8a%CuN3wI*I@mDzzzMR-5hF31;qWz2EWW)J8| zmcKyX{gkq@Am3(1x=}~N170+Wt$~UInam*hL%EBU_Cc#TG!<{4F;fZ%nMBf>-+{yf z*RSV^YAvQX`d^nbbJvp_*(rYWdr3Iyp5&``@qW6D$A9L(uCVHyVf*sw*r134?K3AT z`=YDvy;RyIb|({ipOfo%aN4N!89rpV&yz(JmbF#6GbogE&|iuJ?eS-MY$!tpdAti! zW?`c8{WQDNUlCz+Hf9u3GcfrdYO+l>G=qD22c=YS!i#Y1&dj7kj$(x;RkSU*HYs>$TcGzJxZji2ORZ{_*^_Ht$~IaYp#@kYuC`{feODHOrH2Z*xI-7p_*HtiS2X=qAU*};5um-ukoAV z6dP*b{pdBKISgN3x^{B1Q6t5+>MP`;aP?z{2VVRmu32BDEpDrGfj+K3W+{Bf>Up90 z9x}7Eg5OEs8VOb{WplqNtQDJEAc+E(FKeUQBw^1ozsueCk&Dz+&##KxM7@vuFY)Ey z+9jpW__atDF656oeO*pe37G$~kSbu(?s*^jEb1L80_G6HIk*9!E97PvLhA+w6*Nxa zVsysefk z86R4Hn^k_>F=1*=Uqe#dd~3T&BnchaGxkP&LD~J7fO|p2DC{QUVqVqybi4Hi*<#m| z5_He|zk&Xg$_#6Njx#7%F2Ux_ccxvy<7_vQ&%U%dMX+3ErP*Yc7sBkPapO(@c=h&i zF;2JHu_XL!6Xbsdk+U!4!t5^&3UT8p!kE-#(U}302vl&rPE`N-O2YqEsY?xDM(vZ_ zVoUv&hP33>c@dO22qpLFF4sSkcc+7|8&=eH9bTNrURH6{VoInU{=ciRK`;?()vh(E zDRukz-4w5R;!UDf?_Ce=v}r`$H2Lp1S-3ixr5-AdPA`@Y^Z$Oa;2ZMrY){q)k+5Ua(`J*Cv~bo@oC~+n z0v7F_sakusdrjwNrqKD2`m$-QVSe&iS9N$Ey8p-4dxpc=c5TC>M;E;diQap3qW3-+ zH3Xwakmxl^bfQEzdK-ih(TO0@>j0-dK#xGQeL1? zIB`+P7?EcN{ti1C8!oR{tp_e5A*W+P(4*$f{@;rF`^ManpFSVAR`Oqh^)pKv>i>yg zc{S4Bg~e#P@Z8(`KdGuKAG3w=qLEjhf+-Bm5~FoE|G*fJwf-@pW<#|BJ}k4w_F? zD<=;bNDV&&XP>s!RR=@>2+cB0=`D?^hws&bI?M^>4-8y~|E5Zz^%3y|EQHsfI z+XRT!&PBV+$jcen$#Q(T@wDgE$EIt2iUh5n(qaJ@zkY^!P%sdf1q%7>_QbxP9-6s%O#jFht|2;iZyTW(kujsR z*)4(^f~5M>Omsh2J)XRz zTU5s=5@rFWuVsE4!WWVa79rj|qd(H8f21!;vY94-!atampgzc~mJ~4sWOCT1o>Psq z;pTE@v9i1o{VIJ{$!%@jrfIaF7yqsGc+T5H1&!~U&nC>@|La9;XOUFgxGb^gV;_?f zF=W5%Ht?w@%F@$t-*5KlY0X704B$&qIB5-n>9gLw(L^Z>E=LY~5+!0d-oCnx5`BV0 zE|?BiQWp|n_Cnd66qojWyN7%ZQ7ZcK>-G!w-xfcW$W9;ll&_1V+q1Xj!41J(OA&-q zuhtOSr@YMa&+G}gA0_L$r*|Q?Ffr{mx^sp}@S4pUOu7OL(DE!B1&B(!X4?50S;PHe z#d>%^Y#joH`L7J+G+CJI9P7P%UJ74TmIzBY%x%m9DGp83bpWnu6}O}*E6{lRva9`> zf72$h;}%7~6E&AJJ;$sJ#NVpwbW{Q1QMdAAFr;gjuCTFrWD(dJu4wZ3M7y^}CZ|=E zdy&;mDzEv>dFQ;I-KER-_#C(1VkgtLI~IxPfwm>>-<1FzD@CW}+i=)n1Qnbet<{(X zvHk7w?|ENLQeq-EX*Al9Zxe!Vv^D0prGr{*QhZ&2YhzD@4065$MrA8)roXN;&@_!~2QPO($`w^jy3|48!&oml~5Zuh#?!85{b%Oo1&OaKn1c|=i z;)~e^#91M8R&0F~VEXqaRT%iRPh-5a1}vhL7;dG(`3|-Dwq=){-ZQXwFZ*8fjAhJ{ zP{ha1ON#iE+MnOe;1XW*NM(P%^W51GoZa=!I&V&HYEB)!GUX-yg734t{;cLq9Jqz6 zoul1?OyuytX`YfA{kfOWlcf06>3(R284{k}nUUnGw4=$7gF#a2DxLHB4jot(;b(V% zk^_S7y=#gtoM?@GP$NtLj7o<#{c5--e#%mlT6Kly!|lRnT}m1I!4p+@4nB$IYb7RB zXebAMJ1eac^pE3NZ=WB+=qv-Tn1@r`Pr!Qkzc=zHT0Zt#K1Ny?Ph#qRPC<0R z<_X#~mX!GoUwY!e7AIEEcVDu%Q~`K&cGT26L6M+6FD3XUXz94Hi!&i|GjAzAv+cxs ze}6zM*M!f9W}~0Y7I7~f-cbfnDh;Se$tL!%GLu+>lDbb4uxccM4$;HGpKYu9Z-R9@ zNmVe6LyUkW4Vrcc)LFHH{7*uVDWLrNa%5RpVTpcJyNWRyd-4}P6x9ox25!YE9Je@y z`uHQHGHzsT*82l~?pxy?G-#QeI3D&4@wPToEhis$El=ya8e$72Q4xmWqs@+}ovNh@ zIOA_ABkz9NeeZ}ZwH*q3O88TUtub$*n7OU42XHE0bbhU1VV87>7)< z{@A;kPD5-uO@7wQIP&(1K)qGaS4Cg6%bmtg1ba}1cdxb5-;AvELZ1edH(czL1C><@ z`c7MX^8f*XKj`}b8^b3vExh>|5-;^fSY4Tm?yITE;|#@w-O!9OWetBAe-b$fN~6 zE4g!+k8FYkjb%qP)@i4A6o!KFLo9ep4>5W8tfOJkrUKo*V`K-d9cBb(uU&at>h@(< zY9E~%=R`npZTM@Ts6|qT#bo`3psEmxny0Ii0UMfuxkSu8&1o4nGD@Z@Ws*>)3I$E3(R^$wd~FoV)0$c<#3!P@2iNGk zkXCyk_S5#Y+mC(N$FbL$RCLS8i}hFEwCGK_0=^9+X9wxxfPF1>k01u?x?^1;ju*`> z0p{)!_y+_BrOj0jnz;PGWZ5Wx`pO959}I7*C}`#)>M{L$OKZC^^|-?`aJiEl}-QnlrlINHcB} zTCK;G%CdrRVp0Fg3~_&PT(op=uuM+W#J3H5wY6`BMsLQ>=67wbx zY_JOr{h_FqzC|7tE0@mm+cC<0Za^FCgx_-DV$aQOI=x1x^?XqrnLeWL@ak)vebuHO zdn}S0SkUC!VYbww_w%Gf1LC=Pc2;>mVW)TfqA2oW`aKm>`8ykT@Nw1mP!Y~c&qoVH zg8Uwp%O88UCpF~d~I95rZBIRe`C=xkhi8mwhpqdM7(cKx@} z{J!de5*soG?GmZlj6dQ7YIb~Nwd8!1wNx)ezMjkfO~cood~JQTtoPOiW-@q3H1i>w zjVsPY-?O}pjBX&!Ht+_{E86(j#>Oy$^TR%;=7rL)_9#l4oc)B4Jsjz`w8xx)Zla6U zQU8zubqen804~T2D+{5R!~0%G|C3Tmp{eSX2&C1TEe_lu1Oa?HMvJx32A3gMvVuBL$=lxyZ zMU?LR|6e+hIkrQXSTu&(j?wqsbt)$fXbTa9kSRBgQZq?}JdH&%E)#uaQE20^@bnA5 zH@^HA1hHvgGN50?jGreN0t}A3?nqN|i|{QxfYaM4XU_=Nit>roimR{JDeO*Ky_A$_ z!KiC;%<&O^t^H#;5)ku#>)`z%ioDz${Q^zR9UzXYuX`D-cjqEgzg_$@SK-(WZd6T;!y{R*gQ~PHxJ$RhdAw4BRyso- zT-pb=JXnlu=aiaEIPC)Z@gJWgDAh>y1~9p1sfs{IUX0~&3qka*1K19}r>}a()VVs@ zYo^`!f8qK!wBlWxD-DExzyJv>sbY~ob~Y1)h%XU;tEc7$*64`&++?I>djH>EEPDt( zhlCD$4E>l^J{Kl}{jdZTiHeCP5;hp|5e{Z- zoGSR@?VxLAL@N|8rsfot%QuL}6?Z7YCuYf|TXQLM>o7yH(Q86=)gaSS9?Rg$H{VCY ziso*?Up09xX5h|KDdIuXQniOa`Rm!D9VKvcYt)zc%V9K6)58fpNDMpPuv7+KOdgBK zKmWMXbRoe@aXkZF7sg*}Bp^c&bg8&4Ngzmx83#Sf+ZHJUhk1Ghd-zig+$vl=JZHSWw^R&I ztCc!9x$OIMGY7P_o0xQ+{@&^jjhY~_pn4#N`jBU})H<;ASGr*nD#w~bgsGE2qv(tM zC6+6REbxIdKy;>II}IzZ&y8+GQ|Ol9=zxNw<^QG0a2{c8Jj5Ac!2V{|bQd}#hF&FFRF@5)ODdcEHezQAApRCW05DzE>cX;{l41dpPDc#)1U#njeZH-AbCn z;JpY1CeV~nsjKr$^2@tPtuQQ5O#XYN(Z4HkFlwlNZW6P({lfT(u?~!l=aFzBA|41X z70h00>AUzxoimOTQRPN{YdG@z`hmV8jzZ$#wa_?E>mEMe69l&IzI;`vjr&^a`;emv z7KI;_J1qn@`a~h$L#9HOL-u?|ly+t46fN!TgVO1~T0R!!-8hWQzEg>i;V=h38g5hN zG+KK<_C>~?4872H!7eK3?%Hb37cLYdojn?uSx-VfhsQm25aALb%(`W>i63Fn&!5|s zo;*FtN($ZSHrlYkutLm6gkrI%5#;dheu!qsDVKJKdHiN+KNa-2@a0`NXgRf7oBi9! z#QLIQXXest{6lr42t?HKiJz@EMO{0*2-p`}JU44{-^HAxPFP=4I{ERI@P!(2bX)w` zxI6n6`~MhUv_;9k>vfpd8dyM3E68DH8#oVTee)ZXe_aYecq9a~TzqRhXnt3mA94OLjBnF zTrV70m-^*+nfJZi5N!d0WwzSlSs=j`87IyQo|rq`IY*#BXbaTg`eyff9@tTH@j@TP zzr`Vwk#J^)SX=j&hdV7{8V6rV{j>FR1m-aW3->_G6FC2q}JUL$ZR=@)VEIdBjfy z;vgo`;ojstgF%IngeTJqE*DH1<|q}olU%Sf&Ih7`1Gvs5qCkj~e<-nXv3RVYx2QTA zXyYuf&=Q3N_^jX(pLspY9-c)?6Ypn7)8&*u6)}CYW9@OUPQnMF*vB{XdFpK_2r(OD zoyG|tYc5$7^R?LBi$gNxTau@GQ^rl#jJoXoosTOz9WIWXF>-j0XQ>fHslPA`8w(_iUay%CK+vfiPCn!#GE*VdfIQ0Y2-;}iG-SpDL zrDesXscSrYQHXKhAubnw1PiO11L_?fRw7)FOP>SP_|sM-&PS&N@yhzRqx6$j2g)qA zfA1i{HDn=SjQ9qBkH^(g+Yiq@-s6Th*G>fuzY=B$C|F!zWPC(b4*qo~bRsclJb-54 z+>J}3mfat!e|fl}(zo#~iF@pEN>7Dk<`&4(Pw(J%7^sy_9aIIvTGK*)BfIGK3MDS$ z_hw}*e4zrfV)N2`K`+;Qr!V3AK*xy2Jl*Hti4Z$;KLOtyuRYb3>+APPyV`No#VsmZ zV!)0W|I-Ln8&Qi7o)b@Y;aSH)Q?_PoqFgy020&k*-t{2j!NcU{LQ#}N3=47ub7JEI z{5I>A?I`YaTPRL0tsmWftG3xlR^4}n4x(|P11*o} z8a+zY(W3ZUW0>0AiJfWC*OgjN$&D!}DNCW$2Ql>@8Q;r$_;?>I--tp8f|}-)gQ)Iq zI`4Fkj3Yi!arY_#jl^bPmZmBtZ z#5?B(bSGSVkPs#PvliQ|<@mP3mh(6aLX8wJjoyS|T3VKLFYBG*@{ATKj|+fU(q{w- zlyI{pBsK}`2ns?(|B)8>0_*?+G>PuGnFnf@<&(vueLqdzJ{*4ZKKO6CXDY&&>A0%6 z=p8o3WTWGS2aLoprpJO=|2?gOH8E2|zz@z(4C4e}nf9-0>yyZdW}LdpboA8cLR4PI z2td}Ioxd%2?sOiuvKBTt&xksS?EX>aMC-x}`qovQ&}`S`dByoc1`Cdv>-*8w?HgdS zp@9TnpnK^`xJslvxFtffP0W~uQ$q}oTB<5YEIwDwP8eh=a@P-2#)3Q2?A~G`0tr?x zSE32WvUB=Z>y?$<=<`}V?9LZva4$y8{rLp6C-C~*BlHs)q;9{z6e&!C2&%5%0`m-5U>2UdGvSD zAYcwn$)zVR8zZrUO$8xnfdQ#%HE|RHt21bwc%zrw6(qG-eAu-(e0a6^e1x?`e-n_* zv02`@w1zn}DsC;uu}OzEjzElr?1+0Tl_$UgV?`*-SiQB1ynB?TSo%LJ(k24PD*ef} zUs1dev!8=HBQ)%bowF4sc*^s-7w{Ri?89MbOzDa|oU^GUBsPU&Ifk0tbp8#c{$HR| z7nd|vh|kw;CN+Tv_PSo+=W|5u4de0ON0Z8r_h&NSQ?&HDeUZt_Y2m#QGYb$98L_+- z_CNa`N3Ko{4=29Jnu##s`24Th`}545l3SlFtw$}xyHQrjn#USZ{m_ve&i{w>kZhhl z*hb579z8$Ap_BSsiDs0GJfxVM-yGR1>fz#V!!Qa|jlSc3OPa`@tk@|@n)t}`A#w;} z5p%5&&K`%Bg;L*TcvLe5#w8By?K;O~iL8pRLH&fafknQBn=$5lVX+G=Ur((y0X`5g zy{24`%QURHT-Evmr_TS#lh+R}Ym2!jr12b)IlaH(nFdDVrM7n=jjR8H)u@o*ylh4; z&0}N+w)a8wn%vFOyZ#A`Faw8u8q)d01bO?-*2Redn=T{Pb4;jv=lvu~yWh(B_IArA zkK|U%WpHNah<*r?avp?u=_~}PDs8^})MbwNP+d2#pu;-Jr;t5LhX9Frc9;p($c{S<2#c{cWFRWcyl0U@e8N25kc$?Qx$KE8PnH`!GyKqe3G?N zd@{ANe9vm-oue0yj@%ZN6jrOq7G6fkAihw1@5C6svd(%gSs0AO7sPcGz=hg*B9Yfs zF8EHbMXG_mv)4u^vjrPoirh0jdo<9L<%Kxr8MPN*$Vr?kZqLDk2`xosms0u-vYW+}z9M+$6f2-q#G-(5fu!ugv`P<;r^#DmCI zJ+eXbLwnyH5$Q}gm|*m2DwN%KQ;BoP)B#sdoU{AvPyHLqA$N0=_N7hrK~tHL?trW& z%Y1954Xsm!#VAw3baUn;bh!fstS@1QkDO7l4>YNZ6j@p?7Qz-{ju%pj^vVtNRCjX! zKyH4$$Ba-al1;)ra#IkAMo(mAtYVm6u;2UrK@j6+Wc@(GNWs#a9k)yLy>Wk^k{cSl z3iG6Mi^S&>i4V~5cpxMRECvwn>Jf7~%Jf^h8ZY;VZ{{^PU;4r_dCodXK>6-1Sb&qW z*p{hVI%iILZnOg_j##E`*~tC8pVy8elTa=5;qx(zfL4D&7lAmTG80_bcirW&5j*Bs z4dcPv_4y&H=>ulscM42bIlWx=rp&Db)MvU=YW1E<&(sZ#3zyate9sQUp3=Sg7(`s*7)NCv0QMI=%cjDs_J9~NBDI7vqQ_Q3wkMi+kHmf^@6{-4vKrC)o?4L3TcYg3Wm zzD|iMi_(u1aX+4uj}auFCk?RQtv&2xG9oU%WlmCgl1w3yB&-g{GHW-VI z02_DF6?dsAaVzO6IVgoFWhi}A`mVIBbfxrAnO#{<*+ev-td86$2p>LL?L9R;-m+q7 ziCebhpt~n2*8ec`+)6gaRR&!PT5IonnKU8vEv3&fwZg+Em{tdCiSazUa9vXN0WE5D zt{CEO@5Nm%uC2=8)$iL)-18h(=w65M@8)YQW0RX?JZO(2ly108qRQ^Q-I#*}4rFrJ z8k)lal`&irz_M2y@feMXz(iJr_ZuXxad=zmrG7NC%Lt|T&mq% z3b*=)WSE+Jyos1TNC+7%s)}44!G^%5908+9QVFc#ADB4_CReMi=wa(;8)6$}n_xq- z&9MDsTVz{dTW8y1+hyB-hyQ$3prRueINX4->`$S+F3L*9K{lw-Xh8|N{BGGSnH$$5 z>d|OnSgJuuRqx&W}f}BK0GqRMa zfRDbWP-fxSC!+Cov#j;B`eMV|s3Xn}eW5vXCLuGXIUbEI6t09dQk3)Fe8ZaRt)B}S zZKc$qs!sqvIL28khbb}}Pg#@NrU2{ZQyfU0Qk+R$Q`|`1Q(lpJrg)LQNx9t1_e$EA zeZqLyZ)87-z{(FjsP%X#i1Rq#D?7g@Qqx|9ez~3e^E0I0iMl?=wyU(bbMv4v+-5IW zs$V9U=qWm>ROLs=GD)+w*5-+p_khLaj`eqo>+!VPcgPQ4k3SS0qkZoUiSQ-xhv#mN zzQ}c;49r~q{!D!6FwS~}27!`GIKz&cU4N{J-inobz>ha?7loUpB2nk9Pd@&%pGw^& zSH&$0HHE46YhFT z=7GEdVDifD%I}n6q8#lNcUB;@*DYdaqNtLqS zLUThN6l^&VHf&URf6;h_VTHB;63dVOPEYiJ2sJWy`S*C4?%@q_43zD*$2#8jplAHU z3r;$k9E0bw>O&r*k;<#=v_nj`bOR-;bdU25CkbBWvL9u`@DE$Dq<;x@Pf8EQU5=eTURd-3zAErJv&v_Q$G!#aYbJFOSzE4oSz@TSRSlAtDh-6@UBSi>} z%bY{4X(vg0a}S9=j3gHDSmN{6e8ryWvK}RKi#C}-+h(_I*XiFb|78#tlWA~Rs){CD zdIhDyx{TX{@%V|t!tszxHt`6JC$aTf(u5e?3cDe=?i&QwUE(tv7C}xYhQAgpF2tF; zE3$yNq`xI86-Qf{xy0n5CFCb*}kD z5^HLpStrD^$ME%$Bo_U)&K!fKM53{bN_yk-9}moZ)F1;2B`*EcW)HOQlKXYeRXYqVZtnt zYX}bH=VU=VxeHPtzagCwoghO9^?l&kq29Hm5WcjC(?LeThtH_HP1IXsxc4 zF(8N%Z{@y~-7Rb|f(UU~bS#9x5k`E@A;aV@O!tBnNDNbEH((%=*&YkMD0Gl)a`>&c z`y$Pzxx%BV`b~p_Rh!FYw8t;Ui&gUnCsDl{miQa?l3EXaLdWgM70ek7;gi@kr7$KZS#`2?*eEKA2e6>9v%f93 zr{%w~j_ru;R8>>b1h+Vd73zgXXlKcZ&JB^B9OalC?JwNWegMh9m&M&GxQ4u?nvyP< zlCN~fTInI48bf{C$(a8@Xyr9>;tk?%`p>cDVcOWFZCJiDY&Y)IL|bW7D7Orn4E0K1ib0S98I|k3iDD<)tPFKi>F+U7sea4gmU-8l~Ka2m}0i*f%Al zZEBKmDEMI9JjE^3QrvlvSMlDFm7A2ul(z}Pkco96VjZN;QE$OmP!y|Rs?G?0aAjhj zBMKyau9KLaViB+G7l`{&B!R33Tj6tXC!u`QQ_l#N7*rLjWYrSZfSbiTmp=@3b(0wp zHF>-@`exgCM<0fT6x1wA-OGQDslgQpijHz3(j5tGC+Yjwk_b%BldYp1SRuu7Zt@r2<5FY7HJ|$IFzuUdb$fB!n4E1Qd zG5YJ*G?12>@ebm&shcn-H-hTjDk-6b%2Dla-71M4WK^rG6}%PFPo3@L|6WM)qK~KU zgs|3Bi*kx03wi2TZE{6SmF~;MUzTxY-|RB}cXU^FPiVz^aQr+EXh zm+K3O3wR7Dz!)Xi8{A!Y&Nn$td>`%B$Ob3mV{FNE4IdL5#t#X^CC7b~C>6Fy4m1rxDmP9QV-2Zx1Tz0f# z35{sV7%o5r<@MOo)_4rU)<8{@Eh!B~{_!ev9?7keDy{1j@&6)|!+S@PM|<0xsgkFo zM$(qtUzU>!p~8ilSHx>hlc?1nN{P~bca=<=R@46a7W~j#q%1CF<<2Y1Q=qgW^1H8QJ-*%62e4qq`rn)ii)`|z0NB=naYsxOWyL>Z-QQ3d|r_mqu|iDH=TGp{=`W`jk%5r(#v)^0Pj07 zF~Nv3KdaNCsjv6PfjG_+>5>=Y8qUkt*E?dJ1=l^7cC>#hm^uD54JoPBe>|us!C9*_ z)%Gj5eT+XS%OZc>Pf9YyhNvs%+rxj^%;&42d|M^W2}pb7|Kn8&LBS~fX#JRuz<0Dj zB42g&2ezEpjmoCvt-{_oer)($;}y!HIr9y2aiCA3HC$yTQ!|z2z~PR^d97sS*pQV^P{}bSy0p;P3X(+p5co5 zjf|>9wo$~K_mUmNb%(9AVW-{t&kjp_Eor?{baou-LS)LPI}#R8(`nVnWY2q}3k<@N z2mpvLU`ZiH910!1P=CmvO;+g92uywF)ojIA?#Fc-erZ_oA@C*r{gRmZRc=^71=DA< ziMDasuzDnr%Z1iA`jYRT@-FspPAS(+&r3)9#$H_9cx@f^he^`~#->YiJ(PJuc-6PM z{F*B9KHwJ*6DTHTkr6)Lu``xhKc+T$S=i5??l5f5^V6X22n3{dbUk#;^x^dD^ok6{ zGS;(bR{2UFD&&qD&^pl`JXD6mE%H$jAigLnq*h|sQWsLZ%^{F|G4Ka!Glkt$_R4&VQOv1Tou>c&yymldmqYoAms<4+U|vF9M5On zb>sAH3)ck7N?o=^+&4N%-JiNEx?8&Yx~IC=C?Gx%VRsqH=tJ zVZ0)ego0bKNZ-+uG60eE1BwGEE6kZ&hc!Z5#^7$bkT8ZyQ4vJ^K_RP3i$W5mwyw_L z?&9mfpVd|`Lh0om>pSNj&#&74+tO3R1rCQekOnN?DHjwtH){%qZR+)K+7TxFSWAyQ zr)53>rnfhM6PDH-ER^s3q}-h}s%Kr(Ay=hQbN#8kqaQfydV213sj51Bu1(#u9u`5~ z@lu@{qJF`S%6$)rxm+Vy5VLf@?r1Md=p3Q+D=b^{xT%7NCAYh5*KD^SS)4|*vYH-c zEi`O3Towcf`z2~wehC;u*drJ}5$!M^Lt)2B3h*6D#7;0RKK#`>gDjLc?;9F5ii#C6 z5bZMjeT(Yv)(@Yb5dPt3{_{tjZGpk4l~)T`)f4oL{i3ccr+D}$zxJG1ib>GZdPdJG z7zs?+u7;u>ApYifO#H`hN29sQ?aB>PMKw$e z(*5Fo3X4P34ZiC3>yGOF-%ks|E`asC(uoGK0>4EV;jR8#WK;mlu^f#kgetLDGF>_E zoBSrdo+T$NB~y#yof7b%=v)~unH2V_s)DX4AVQ}%e-cx}fAhDmHINQ0;J*0OcA1Tx z7JyyM9}L!e0ErxTBD9^P8_q`|RR(c;j3xHk&uDE-e2?(;C(kdI+}PN;|B_j@i~9!#QG)P-(Z5T`S5_!*qYi>ZWC=Ra0IZjN zm}{nn*06PGD;pD;o{1aP%G^$0i{eHQE+2D?_F!+-1)@-hs|Y-D(ImQbM#}64_es#Q z;G1|`;q3kju@qy^N3i1t@7;y3$5rm0Or0mpcnzXS<4;8F3B<1UAHkVp&Avi$xObB}zQz z>_M~Ei~c57W757D(~B}5g*F>XR_AuEaK=-8MO{%5W-iKXM>BVw9#tqJ_05p8cE6{zHPXK%F2f&=VCGDs5M4b!S@5 z7q0ALY>L4ovf<+xA0FBd^5WBwTCQv){mC$(c4^#(cvtGsF3f$ z;NnoETtwQAE!}e{9U%=yP%`jw=Enmcc9x_lq+tjq745vp&Iwv?*-BSd=(@P73C6xy zOc0Fe^BQHxPDV5RhZZV@4Yy^oZN0GJSff23xk{t^lN&u9A%yh)!L{W_==^UK3$9wv zp23EA;c+7|;-)HofhXuEe~)`ecBB~V4MrZ5Hss;akOpOA_J|TYe6GP*qs5b}Bu4+6 z*hnWu5@cb%4`xmTfFUoKO($BeA+`Rn{C3o^$`F zuL2dN6-9GBTwe{+4dVznXOtcq37b#7A@!Y_e760cH+ITVaj=65$3MbE>lGe)zv^%o*Nv z`sw>5d9GOnF(&*;C=xV=+L=EDX`{$>*73(xLHiLbDocPLZSRC4qwq*J3f_=#8!4+W zv>L?m2C%hlsJvd)eNwt@tabA7XWIL#^Y<9>`u?TM+s~#mtS@G)M`nl*#9}UJ<3b5@ zIS(W)Lq?ZpC7;IF+mE@RqN(DCsp8A4#&v&JnNWE(Vf^aETkYhsScDqGa-qp!zRhg9 zarS8~QlND?tNr1JmZ^r9ro|r8Oy;<644NtSnW)V#3dVc*87diqtBY?`F6!=iNOE7C zu9PA3e8sR5(z1G>LTNX-tvrQB?mk2R*KqUYj$Gc$qL#^8foP~BZ z!QKQAd;dV8pfNn^U!9|l;yAWriR0wCoB1%qucI7C*~|de^moIi=qx9)bmr1^=JIqz z6J=AJ&UUSbj@gg3^S9gX~afb&nl_TfMNogaRmiT>s3 zogftu<>>G6G;Ey^I2i$)aUBO0vr2Jvhd{0}8)mp8rH-_Ql7-6;bd5TqIB(TD$Z{4E zER6+leT`yG}j~>QNRWUM~vV-F5Q@g{JlCzY$49q$w)866D z8B}|eRQNTuyEXW{Y;*DMmi8^S*;PdJ=YpSNA!~afk%_`b|>~*?WllBY1=aq*wMb2Zq5p4v?NV?W9LpF%cBdT6t}M z7q@5Tme0(Cp520oF}OWQ{YwJGYXUws+ZV%v;I>e-l7<9x!%-afH_}XV@=h_H5e50h z$oPYMU7gA2m(JPbR{@;e$2$iiqk7l}(1(cLYSe#F352;6BE}|74f%zGsze8;52X!` zYzkI+1e=m?2)>vd9TG5+(;XC)@lgD+P-=|OZ;U!&!Zai&H>VZ`vp zFRAxuo1a@Lb2n>wVIMX-PcXfi$mgfLA2sagDDA-po4ZxOw@JSuY{a-7Rkl~-LJwjq ze>JPftF^2;`NrxV`o07wH!H*mJ>_h$m7I`HUC$nN$oqaVn0iT(8Ht<{^1fIT9+^Cg zpUDboG8Gz%m9H7rYAW%}klv^Ue7V?H^k;c+Hg=qVxH`3QWDE?z?9kNR)8*=y3Njl{Cw(?)!KlJ-lR>)kSTG1jF%ol1F> zq8?`6|-DYiS~eLJXOkKS(iv+XF%rim93#1Zc?qEL%L6>ykW`(;pe zLLF8wgy0$f9^t>CrK#<&>1KWV z$Q->{uG3fuFB1I8Lws7;V@Aq!EsGbQ>r0nd*rIo*bagzr8-v^?G^poLF4x)(2#>WUt zKBjvx#(JDRJz9{l1Ngx4mb`FliUaziy;4oE5L<2vnI)=1h#qJvZS-2^?(k20VBON$ ziS215iTXv4sdaJ{7GPYH11ntwQ;~v>aj(JP?y+CJHe>etzW_ofsme-&JY|_YWrs4; z7}-2+au>?jY~g^8JsjVkK_zUc@0Um?MZ8QRLx^wvejJi^AM;u=Hwn3UPB9Tg7~J=- za6Dh{$wVlxE*FYw@RAfkyal56x@Hvir{`yr{-uy>1N>3*oxRf(114f?p}XRT!PI1h zWM@{DEDN=GCKTnbMREKz3cBn@IXPm`-s}kc^Z|3AFMU6bH%`}nzxHQJoj0lfUeaLm zV?ckVf{aDdNL!QoYfI)a#Fb|2OyrT`bDJ^Qkp3=4szxBqU~d-2KSu33(6o(9KbOVr z5+)qr9^TvYU`_F9?U>_tdy>BxNqno%c>f|VvYai2hM1h*MjzxvMYrlNgHxppb~OR{ z_z{Y{(?=bKfCnNVLLA~0J}C1;#PxTGCnbK)x05KjqcLR$5xOD0J`EDYX*QOtV=;Ja z{JAyNH-(pKwIJPm1JaLody6Y|btMMp#UfveknOoD7c}j;2A|R!NBfEl={s2`N5xZ6 zCc|@@-Y>px?R;I(8CWnHST_oz!1wV7mmm0>EVT-I!&*74sM!Nix<_A4z$4JV!L)6eHAx3Q}w_x~_pOU&)3F0g^@!1G<0@-<26k zra_AN4}iB&*5&hY0|9*@xNg z3+0M7VsRfKRq;d!4!^Q;!!a*Cu0~`QZSSn??WOtXkcBK6J4JE0WkQ|EYn+l^3NztQ6$C^FQOa1um#Q@5hP zpW(xaMKk!&;ln4b&?x)2n+@fKWFk22?kQyA89#+Gkm5Pd^FCfuz9|Ko70q7*n&?F1Wmu!+X@QPpedEIek)!2?_;2R-dDD{-#)lYhTAG~=TnxL)OFT?U z`;y4=7|;MGwaNz*%3%bfID_bAqn`A?4Ndd8d2Xy+`N!HTF9O^ck@knnZ35M*lM)RQ zP7T?K-5wfcax%Qv{t@X{r1GrCZ;dgmQ6M)7={e$tg|8mLURlz{r7Wty*MbXOrW{xp z&>$!w4S4X9!kJ$7an|FboTrzjjxvU8zP?c5xa4P9tooU(ybYT6v-WCe>gx#C&ycxB zBwsDhX!5<5dy%&JFH8c#>i%awkPXd(bYMbw5-|atM(cyUhW*J7qg*BU4Wa_tDzC;2 zC^ZV*%c~r+?C%X9k$WL{(r(2*s;p~cdmazpDTu%KwY2up&{NcSW$O$X>QZlr9N+HD z>88TpC|EwqMy@uw_4V#!X@9d{uw>R{LoNd73&X1h-zwa(=)8w)b3-w5Ob;n&y zh|cSOoa#NAm*R~)&l z(@OI{_1NS^{ag|ROEubGumEuwphBvfxcUZ*Ke3}{t6Uk5z6uix#`i`8x&=UlKhS;$ z%d#M3|CZKfM@CVzI{_}4B4F~@z_9exprn$lEIrMlP1Zr7UY4lNcAkhs9|DVtIaCOr zMQ#KbP<`1sX(8S?-aOt)t*<)ZooZSgJz0wPdjaQ!31>+(kSFW;oTLH>bW=^%6?e zpV_>ei8rD-P5LTEK+|1&zC^=~E+Mcd&iPM)`n{CubFD!Bb8n}vVzwfbW{TD};MmR^ zE{Z}#!2Jlt07NN-C_#B=5Q;>HCKbVoCm&+MEtr9%O9xvn#?H|JO6CY%pP7V3>W-qu zks<)`=-pC^?7vutQ08oUa<2C=DW&fAJHqpGLOQ_(jd~=`Ulw%dem%H`0+HfuxOIvP+trk(;qFer=Z;5#59y9(Hp^$U z7cv|YcBlN4WZRP#eo`X+`4a4+KiT{o77rA|fzU^gw;Spqn~onzg;%)xiVNexn*s7B;`3c3)irPU z_3&ELW`!Sk=XyF5(;*DJdl=!d((H6B4kvpx%li1ssDQ_Su__)j@Vx;0|HITEZZh@~pUP zSJvZi9f9`oH9woP6?keZ6;Up?qPu!HG;%rBex*0Yec$Y#3wbc=l;C}%Rn&7>Qh&xc zbJ-Zlf>)S_p*AUrFmetzc8)Z$<*c(Xn^Jqa;c%@?Pr?MF?W@8J3P7n1k?pRs@yA-aSAb^B@4d{<`!cHmtj>O%#(PlG$p0?}jE0f(Xo2Ht!98BO!nmRZ zOjCb5bg_gB0kjYY!>IYq!yrG{qsy3ZRVd4fPS1U9RQA59Gp7nRd-M|AWh5zn`U`07 z3T{FA_w&F>kKiT?tq{^JFVIM}8?Qbz?7BV_KrTL5d@x~#7^4crX`Md%O9I;Ln2L#5 z!vd+$1u^Wf)~wuMMvqVuKPZ&)KR)xXL~!>hG-9VBVU1UzNFE}zOb}BC(OoWto)ZCN zj=+=%6M7Y%XbYU0P;5IzAj|`jN8bmntei|yBy-2BC($)RenMM8p1l0Q#v-DPtZ_vp+c-F9q?VQ8lM6 zd(f@A5xHsZ8(Eh9M|9PHo)Nl)NQVK$+?UawskfS&HcWzfh(II>J0w{kYETcsdv*q? z$>CS-8&JScHzf%}oCEJWL+|f4wz2sfIqmbN#^c1IS3h*wrnEVBGI`8voKR9zL0FZS zLv43LV-snTzL(s{bNr`8p9pXDW2Zvxl)`wGu$5omU>`s^aDS5wxEpqHD=J9s=KI`u zBSn=ZB@k~2YNOmoTIgp=s>+&Zj^5jluq)qCH1uw1C}$NYC7rGo1WN|?BAF)D%?^r+m_hS61w@Dr!W z*80MGe}-`1kx6WR)l%-QfCC57(>lT0r5W z9f5yoVUm>!9Sdv#U08zPNMI&|h_Gif&{E&Qf0P>6CO}7t9r^rxIOVA+PjjV6h0tyA zdWL+~mhVqmzvHlL9wSEsZg+AP@40M?CNI4{5$jA>{J1V>F2v%|73bFd)N8(d!`mgf zY|3*@!KBC531fXEjO#6w4cQI6FQEXm^}Y`p8sb`lZ&gI9<|*X1o6p|%;-!{wz-8Df zMsBMWMi{4sn-oVG7e@t8U9ICtF3=Aaw-*?8t+0e9gB#wBDwg2R$RG=0@FF*rn)r^ItK%A_VTRI?~Y~Ds%S+ z9u+MD;ZG4kgysd65Ra#xJeAv-6~To{qm77!Y2U&4F~1M`49ECgr9n?qL8f$Wto9SU zujhFl@`{7#ON^i&-=~dKfKNm*LY~fu-!KOQsxuAiS^xg*Amh z1;M^ov}?nZ35EbpxD0`UhcU8eaaVa+Kt1)s!A;+`E*?b*$v$9#vk-nFg?KG+4b|ra zQ~pi!eoXCG-%!5~Tt%^ceelEb!Q;o2M)+{0D|jS8mh0MD;&RSt^cBeDLNp~;G^ ze8QkPiXnUWS2lk8w3!{^L1&V!Qd~;kF;Ej)$N~=*M|k02Scl|ac0f*X!42!4ABtI9 zZc62*4rI`D_;4eD+SVa~@zcAWc1a7J8Gm_s(Vf*EnWzDp4Vxg`rP_TRWx?Ae8d^=EsK?Ij zS}>4bd%Z(=1w`A@Nn_BM{(Du$*)Oeb$fXVxKrj>|owgf1N=h9^Ls)Awgk;q9EHn|? zYu^a8nTE=qFFwVPq!7Vhg4!|E`s$5X-o!tYr)J?g6+Z5u0MvYhwHvD;G^U<$&yjxd`P~70N<*1% zNgMy`5#8Kcy-C4#lk&?=%Eg(af=DJ2b^`dUF(9mKT_y?9UKk@r~9zqkj(!=LFF+K;sG zeSRkPAI%dn3eQFhlrtAMIRefw(d5@gsDuAJa{(Syq9MzqIRsZCMxeqQ$~YtWJ^6z9 zVsDipcIiM!9E?MWAtg=-C(MFS@(-8)?b?NRBeWouC(>Abh7Hty+p4+e_3_d`kA~1_ zqM4a*ku#@lU`8Ykf2>C)uBRM=2{n4b4he!CzJ%t4pa$eZzLh*QANo#Nv(4*OhbnO- z*Uz>3b3awm!MM4FTs`sMW|USNfHBI&wFcqp;pT%5?(@2!**#^#x79_+nEFYaUd;U&6x&MY~G$Db);xPD5^H zHxbN%?BxSE6lwsC0@+i67{fw}`$Rfu81ghOVKPT%@IB1Pv0XB0dD4pYpQz)h@r0jN zaP!Hg-maAB^DVq52rmyr55d<98Vn=7_maw;Z_kDlQn{%E)f8ceweaYzkYeaHIu{}n z^i;K+Q}HwS^$e8+s}2#7f4N9mF$X#Njf{+#p?m`mHQG#W{}y8NOE0le`qm#^^Nb)I zHb|obt9N~gg4W(CP_W&&>a6cSopUCHo;OE_GEA^mSttTOmXrdnm(;=7z>9od*k7l^ zMgqBY-2f_hAFBCrrUyH9X_Mr_OzZ%Uw6G&ZXMdR40?523#9U2<9g@?2_AT_oH;tEp zpw|o!g7sZ`Wy#)YmHwHnA_+7po3UF8HxZIlxsueqK5p@Is2sH*{uc`)UmHr66(Rpf zDc@*mLHSh9lAUS&41OkdgAFxnj)*St(^N{~t@3T27dtmR)Skk6{PM<5t^;fJ{I-ZnG?0@G5Y+X7nc(-pu*tZsY zR~TgW3$oQK-nxEpB@n+BAw7fNkAJ~>=6RHJ-loRe+Vl~`nhwKTZiDu0LR)qXISX7y zqUZ9}G({r@5{R`WyMIxUVbmN(6!Rs6Vj%$E?bi!rz-jsI z7Gl6pTU3rs!3b8FW-i3OwQxWo6DngXh?vE2bPiltvboLWS>WVuYAo=%-WM7jW)voG zoB)Xkf>i{;py$@t0g9KPc}5Klvt(sSm$QjV?%sinXPoRQoW0t?CY=^(aVcJd98QkfPihIaCNM*)W(G5(c@?{4Wf39Z%9!wp?ALp<#_o$7bQ{S)9a5AwdX zZM-NlMZ~WUa)tCz9WD`C4HPC?oAxoo4Zu=ZK`_+MR^N0-2I0h@$P%m95rha^u=oC@ zIah8}Nkcm~c(hdL+1ChsMr%d6*+XT)FjV|AN-_4-!t?=A>mPv@jPHmMtF7uW5y1AS zVQ#~6rZJ|>Q*)-{(b)544s?=QFL+7`d!3DVSwo7jL*1hl3)ASLE(vN?XvB8{#^|mYyMrsEt&q|K`os%Lq zB&du;#qNndBU=)EmPQpU|G)LNyi*k5sHMLXtj603H=kiFF#%FaUL2*bVEc zox9X9PA2k8@@g!!)*o1;6;H71V%{wxc|c9e`b{ah~Nv2F@Q-v z@5!U(pnf9F;G!iOi+;{_w`W+57l=u2BkRxYW(WiB)RJFVIGXe6^j$+i3V1|8-Uz>x zQ-m1X-qZh>RoIuwpA=n^-s%W`#`kne#6h?satI}q5>wvP$@cvE#R{k4Kb@*&LUXa? z1f%#6ZxtN=FstNL-mF!F=J?zqZ&&%0DkP~K1~`L^`{E!p?4?r2uhjoC{e&L3ru!3= zuM9{X5||8juW*vWJE!>}3?vwvJ`&8qokfZobxq|Qn!)!)UBj7uS1Mlp(O@@r zxlZk-`a_)WZy?UN#{UH6-OU&zcl}2K&$(`4`Z*v0u-D{YZl#)kz757`Q2Mm40ZjO6 z&}BgBGPhfBSZm_<5||}-O)m(SKt+pL{2F2tC-l%p!`TMzOoS0*h9A6fN4JWUCE;Nx zlEARm1fN3^7s9=3^Y+2E`M2EdS!EbZ%DeGG^Dx0jj}ORaB`fU=jIZp=X@FQK3)+)o7`6u9k5sYXo!B^dE zEtnM|KKOQH#*?ORFplaco(sBTsGUkE^KP&>OXREsXSbDf@~8*5wsKhH9XaC_1>+U> zv?j;WU%p+TPG3Z5|9DQ9vexSTDUhoDZa1IaxPxm8FXiVMRY>aiJUL(-JX;PULdRFu zGFn^j2HWTO)+9e3tn=^xOb-25z9+n$LIyz^JKqHo0NoJ`kE8%)G~rD45bvURs~x2! z(i{u--bO#eyYWytM-K0=r6rSa!%se=Jd2pjAF9-24_`-K=;hoDW2#Rnfx3X|+-RF6 z!RR{acD(H6M#Z;b+ij(j2R)`7M(-=-yc?tr8?&RsRAZFGYMFI$hoRTJV==GD*u*fU z%LsXTI2a)*N?1Zp)>LLAcP~395&!3ss{R%Nc5!j;qA-)7COIk*HL#1pX1_%AEWNN} zv+Y~@+ouk4gJQSn-9p`W3o_aN+i34nFn zd#2e#b&WokMP*)s20V&{4gD86p1}+o6 zhEO&o?aik7KEM&~$E3ija1+g%Tx~#?2;Jp<}1W zpaeZ=&L@$if7-0RXcQ?#2L*?AWP{Xiwn_vMBiD8V`I8H=nczkUpJjnFiPVEycT7G` zOAEZNH!z4J1RO%As)g2KM_Ur3DXGv0)}K-t0SE@2-9|F`DhpkhLkE#^n5W06a!#m- zF?Aj)x}+d?@X_t?KfDW#f`9KnWG0;~em6n~wQiV?dZStY2R~D%L>x2noeXXRx%P&S z;5`DtD~2J1q*6kce-sD79ylEO&rrkzf;iN_6zJ8&b=v&vsL_DhqX0S@;x*dlb^JXY zI-aUp#^#cozYq?WY1&VDqE1~obM%6uq*(27Kc=^n9WtI~PQAr1m!ug#CZUy6Y1w>l z0?v23+;XgQ`@h0meV06E%VJR~&0UEBQ@Q8^1*}lV6Z2IDevR}`w8|*vCs#WU#xE1a zSm88u|6AeKZFEuOLVBZ@>>Z~sFj}jh;5EfU>{E~6e@WEG+)#HMwz3`@nor@3iTMG5 zfl7DY$2elc@2}PnKxzDfQpNp{e6naP{&=kFnd+dsyb$X@6!Y~>wj85(+}SPi4{|zi zz6pG|?c=QKNHxQ$&%#h>^p~*-Ab{GpX}ga^P$LnWYq_?mdMhRcL`)q4VYr8IrOW@D44o%WO`pM2d3vC; zxQc2n<7C0I;IKexRm@gs$a8E#XQRaPEYq_SJVBqy6`YQ%fA=2d_7#}@#q+E%) z5frHbMUK-yB~#8p8YBtZ-u=f@1>@LJ>F%i*IubPTYn6*nh5gygk%ep1pyMp5(CRBa z)_>&TooW09unwTvZ7rs%E>d>OSpJ=1qHoi@q&M7X?R}Xr84n&yg)Y2Y$sVi%DB!az`#S^%Nif?Zsn-#X7oJ{+4xHa&_&urz@E~Hc}Yi72MWm^W?py0 z3wKh`ms!bcwEz0fesHp&cKP*uI&^|L*?j?%E?V-)`UvcW-aJJNDM+_V>_P$j%{L(!M zj9Vn^T-BK(N>qLMtv{@A|3Sz_dVc4hPAyk}agReuCiIHsp(N8$k|w>%QXC1y33P;T zV-~n^&gBb}!7vwaf6VZ;n z`^WtuR_4p_>$}hkjlve|0mxQ5(p;${J7}pd-bl55am1k#$2TUh{QHqnA{ekU@^I-= zGjlmENR2J}Ymu zBPN*|Gq=#vNK*=X-a~;TjyAuZq{jVwz}7+w{KvY5y8Vi7gXk!V^FFt+kz)V2;3AHM z60BkhFMS*3rL-pXpBgW(H39bAP9fxw7W7J*=w>o6rk@S;XTfm4stCJ<6vx!Zbg&07 zS!sHxRK~HM_RQl|R6H@leIBukt<#yx=+N6UyJ%wO!*bbnDTj|TH#i9~IM+A0k?pf& z@I8-bqOk&LE;#NDJQY0pKX-AjlqkJM`g^z$AJ5k8Let0~}=OkjTfH@bqK0xtMv%y$u7n(%j_ zIL0@lf1JiYY8ddzNwgf4ZG@f?7pW~i>!XE%lG;Yed_;>g8<+!e6~_stC4Tt9J_jXy zB0uki<|Lz3NiCzeh|oAbL?@Fwkcyo^0I40 zG)H$Xh5W68m>spyYbO4dha>k~-xeKrKje;nUFrubr*mUHsonxDtA}@$a^g|Vdpb0a zZVam;*dJyndI2r|o<-xM%H@JpHx7lH3dN^pwbLPMGQSVWk~2YO-nYS*DtT|pvRf~8 zNhd*iGAdCs@R0#Ph50H%4U$QEn$Jsw3UqM(zZlZJVqvX*1LMdNXM@rAT}8OaBABm1 zSPBP*Sd-m5z01FMuR(Y4br!OJDh0&Ka(_}+#}2vdpit8Cmy+IVMJx$pzH9Vtf(h?H zJL-8cH9$kkhoI?s^J@Z)@7N`|N3QHLe`jR>Dv0D}+;?m%mp6d8AP>#4l6VW;;b`1z zgqApv!J2{V+kWwmlW0j5kk;D-lkOqV?~6`!a7G_pD}RZkARflvuKb)_!p!_|Fg+E6=5|RiI`r4q! zVl)MYOk(r}d$0jTU>vj7Ajh(IiKDobSUGpgqKwhX!GLuI=V8d){0#R;$aa;_mNKE# zIbp<8gWa2H|68-T?PjNeR{@UO6?1W4VGPAhkDH^cUx-ru5_*$5n@oI@3UpAQ@1euf zZ-W!2&1xS*J91ErcSy}`@gdVXRzbLeAg1-M5h}<@s}equ>sA%WCk2;fK$^^>B()n>rPpAEh?ScKf6W1-gOZN_^5W64kVzBN-oejGaD&=!_?{rt|CEU z`4$UY`I`F019spbCQsGPIyyQ0&zYg zgoBQO>G{`7#Av_JAlOg>petT179r82JgcJZn?V;~N#E`r*Uh93&R#P(a8<=Vqc=xMC zx_)WRPF~uL?UuRp#+4h>mpSVB(>VUN)2$GCr!XwbZPZI9gP0X-~ZgzeEo}wt&o&7$=}CBJ+*P2_COxLuB>sL+UY=s&!=u; ze%n21b(JQgZ|yZ^m>qK4(m1U6dqqulR!!0HaGehi@N~J!d6DCp47ml{~F7%LQ5ngLs+}!H+ZiAnlAo_ z_Q;!~tZ!@$anpL(#>LP(7G2r{8^gi|7IF~|iNl^kk!SStw+uSuAI&fTbXWDcHGnA- z?-n0|aUmU=%00~tVYf!OOJcYaX;MTn+_G@q@nR-$V8P&poWzP?oT{8$I*j^Zr(5D}g!1$VD+dsHXi{+v^Rt|@E=0S;Ih>`r9|ySI6lzZe|KmR=}#FxywC(xAWo z6hiZ+XgN`p+nu}iNDN3*vT!EO`fWpJ%(JVAx227c8JQ>WLaP6$&QH)}5^Yf~F*Q!fWE z8!sob*9CQTb!GYa8C4lM#W}@etFD;i5w>JlaQ^UQzKe^VOqJl5n%UJ;*x>tSapS2Z z!9B?3V^EubV)*YGO%vQo_?PwkfTYhpcE3YoE_Bd@RF)VxayUKC-Y;2TvZOr``9lTzB zimL)YZga?cZFfOVqNH9K)%lped}-_KY-;Kiw#O z)IV0VpS#YWlWDfGj^=^rt;JY;) zwuBu}alzPa!EH@J%^YM7E9?IHxc9-IGg-Tu!|_qt3E%nED21bq=_tjsomlOSvqoA) z9vgYL*XL)aqh)p`bw1v&UICwnsSS9%ZUw%n6SJGrBl76IJ&UTUo;7rVtKn)*`kqhN z%giQe-5F!P9SGxrKBY7fY4uf&nhxw4lxeDt$LG+y=l6#O*QvH@Weal1~42K)cH>z=& zJ{q;F**)`I_u82}=JefZxCwqF)_ENc=$m+-?hd-0&nBAufUnn`gU{5E+K<(_+L^oC zzwmLf2$eCs-WaHmKR7V{s%+G7wacO^rrfA$QP z)*tM$o&lw=Iu73^VG9fn#-(?tsUx$BkXe(2BHmKnxIJod+2ITgIzcH56embQAQPJXZK^v}5I z>szV^PfXia$vq1m)n6uq4a;Wb&n`e5X)ae;hAwdW9XMm|io$N|hp(KK#N2x}Ws`TN z$pu0yd7cQehG52ee2RpH2PJ$Yq(VdM$T7NC;a0YBnpEhOyYm&HMvi)tAAz1U?|)h# z{6P!0Uaj4Z01c&r=m;3Ww1;}8py^>_P8idWd8*o1WblK8$}W8;Rb@fct6P`4RpgV7 zqQ8AF2=U4WpcV|=X-i~ynePB zRd@Y-rYvP=l=f(K-S=E}XLt6>pCRz9Pc}(GoOX@cnG8QQ(aQ-b7LSc(@XzD0Q!f}> zF7uRuk2PfPB|BJ}WTmA9e~P?}ebxK6W86I6>m2Upa^8ENM?^34{~AUYV_WwO96?7q znq#-EmEanJQJ zT1Bt(SZ#%)y-_>=OirHzQi|3kWvIIDbD%PV{Ebh2q*Bm8|b$&69Q3S1ODw5 z-(`XdR;R_Ed{#mRN8%X%Ro8&|+@$WSaN*P^P))<-BFm5|V=*7}e#7r z;vX$0GB>Zh;#h-urZZLypC}uVE0|-c>XmjpZK)|6_hM~7`UCFcY^Aun_WVqiZ#g67 zEJVrRe3SEhGsUoGa$52Hq+|b}Z{qY6#Piy6e%;wrSU2bII^X#{H0z+1sJ*+DeQI4s zl^}L9L!4n$z80>Y+RlL~CGJ=mOOLGe8vF&k6CB>b9Y4*_1uV792St+ZZaKUas6BJ- zjM?(b5+a1>xz7e$QlKCH2X%KPG=oQ#mtVuCFHxhXE7P2_fyYf2zN5P9Mq0|GESQ%q z)pd0pd&OilA0_z>CHbjo6q8H^XCnknXeZYWAh0|eK_DO&?o3eZk}-PS#FoRzF~Vf= zOO5^ZnIY|j`+8cG!pTmbw!%3Z_UQPf%5tI!9@_WhblnVXS9=J4JDW`^oAB6fIIVJh zHBoK9+TJp<@N+}S*F@XZvY@z+bHT=eba^yzAo6*7TGj7i{gqEbPTezA^V{;2zenJx z1DM`din}u}0W5qo8JeG67vle#OO71V@{XGX6C{B-@@K*l`-S9)rK+|Aw^t_g55Iqr zT!xeSa(NKb2d9G`Y_^vdBI!9IiC}4ikr{58f(LJ;LO&X(2M(c6;XvNF{khbt)1C}o z;k3)=#cZ!9eNv?lg134{Gg-eX%*uaKeRb?)qiCh|33RHRR@XWlEQ?SUrsOwkEV#EPSa6N z^BOD&DO%%=KSfZpbcFjvf*TFG?G-!dId3=Sy?pAbc(Aa2k<&XwYR{HL{Q4AqPe4NV z`HBZ0b;9(Ib}OEL-Rkx|+W`o|=Xlkm?hve8?GdE{>x|3%o~_z`NwH8hs3BmI zXkTt9^#l(%!IX&Y0xc~t4|HY2R-^AS6W*(*2l*{zVv&pkh|ZfyC}*h1hNDLxs`u}4 z5%~XHHXTd%QO*GV+FXI=xYk%bPqSSJwcAo#KUwv(^W7K^=Jefcp7%ZM zNPON)dw$TWeSR`8@<~UQPjk1Ve^dnI!ai+9@AK1%y5mSSWv|m+eG{L}!_RiL?(1t~ zhEjIVY8=d+ot$&>FqV?@gsIy8UdsM+fyz2W)RcOey*8Q zy9z+Efr^?AI)f@|#{|k9HEzQhD9H!dCBt&>^(5Mf^MhD$k5f7MXIq_86DJ3a3`&9& z#)@YLX)I?OW3CgEk894yJ?-jtae>GCcH3j`UZyn$5_(Hm3SQlDCSv(=#!{94b->b= zGH#@DJBh)4Rea74eG7q}ao3l?xSYpm@YHo=mZ+?M%@PWLeV|Jw0$ojNG#8NGS>^Bu zTlf&0rI~o|376g%h051=XMF|i>((N6ofOXOWnc6K69GYzB2;aM0qYa7qC%92nBBQj zx&j7A$ImuSqmtz@XGeo|K0A}a?eP8eu`1{7mR~zF2SXd!=O!k;cKX`dVXU~N%);ZG zl?DoRSCpef9Xr?}Wee{qkLD5?%eEFy9g;8Y_W$72&)<* z%ic3lTw|7QM-$YCcPhnsL-6rEN~DtioP>aCGuw= zEkD9d1zuVg7XH=Q_26N6RCqYmE-lTSQ)6`U^Ov6L#-0T&!?sqO0xpqEcUmdG#2&6b zcF%ijv~QZ{2_QD1R?4uB19gqE!Fz?|rdABzfJy{^0D&Rg4>c&6l&eF;_+7 z3)%@p_irG3YJz*PMV)3N7DX$?ms^cW9Tlp)8y-X=Mdhka9l(vva}cAQT2(5&Cu6+1 za=b5{7epAzRB!*Op;ZJ`1nl-L5Y87kz~^W_s_x{Z&-biVL@jv+V%?GOiQ{~=Y$D*b zNhZW_e{HiytEr z0w-kjHH2H@p-skmJS?#7kLuoBV1dszz{hj6(5S6A?cA6TuxUORZ<(A51yQ;?XaaC} z6`&Ry4S~mHb`zB@t4nX->MN^@OG|5HE|R6B*6i%@wr3881;21f>sLD*AI#kW2Oew) z70GuDk289#Ke9Bl8|@j{?GTQxP93I3$XBNA%KF1tOz4Qw52(>XMrG`vE?oqn>(85c zw-C}-wtx3%2Gfq8f-6cE#l)5P94+2-e!`8}9dq?PJ^)qe;7_3Ig!gMQz*AL#U*&rcj#plJ**pm5Z0A)H1WO76-9+vSMI?%W5We@;Y4iv0s7k_1(e4sK z>`^QD`h5V~`H?lJdw~B=m>7L9M^Z;o(eBai$W}Kn>8l4e>Mt*3x;Qb722-r2C9X~< zuEx4YX0h$7lv+M2DSppZ#_aLw(b~Utale5z4Ze!a?!#uoirIZ=u>zI|y*;DcB~>zb zi8dufHdPhZ4zo(>wilkm1e*_<*n=YVg%DwW2{R`$JlAKl{W0>b+@R^I9Wfd(io=^e z$CJUF0J9xmWLZ$8&SwCQJNR>2HsOQxb~d+q;R86VgQ=;LQ$NFk%TWM2FVaH409BLI zFItad;V+1qlWlP{b~Jl-D7!v<2_XBpaaLsJ}*#&V62(pD@^8BXFtwU zqIW6-nVr4pXp??83YG1;JsaKZC}lV-1&2I5RuyKU$&X4<(4SMZJ5EvWbSID zClzs$y%>_e7?Gdmn9i_7YK8Sa)d5@3T1=Q!*N=^?qu<|BXV`Q)vrQ)7iD3EZwmxn3ou%T9COfMKbc&N+a{Do!}$h z&5gwh=*9U8!|1t228?wI3taqTq%=BS7%hN!?(Te5#a=^E0Um!Y7il7FLS)~)$lWr3*yT#My++!1MG0^|ERgox#FR- zlMk$^(K6KN%yj7A9-ji<{qIm{jute>v!rmnEC}b@+wiXCGYe+7`HG1bptGFbJ3UqF zwUkJRNLQzp_Jc_3C>m<2o&DjlGmDI}+D^Tf+pv+7x3+voKA1Wc2&Mns!sz0^w z1x1~IUUwY5v;S}%=5a+?S;@M+?f!brzS6=qK5lMRC6D!*h3cv=3j2AxJev9&u|ts`xDOf78Xt+DrXi$nASxCx4wIg1Fp*fS9z0O{3anm ziPCU6N{qojVb>;gKq*z#^{3S9D3>28u4DmSMWENa)5?YH?C#dq){2OVkY8R}SwSF? zR(FT8(UhOjG)X;Q`)i>PT{{-jM*Y&iwmmPf}@csZ>VAG+=A5 zG4RhduhO%s(_5{K*l(;_|6>bJeu>pE56Ft4i&Vu?^mTK5?^r?@%&2jA^f{GI9gMrJ z>5~Nr+bt*_K2U{bS97VtQiRaj`Vuplp9O4JRV;&>`m(4Mi(ev=+A?SqWKH%V;{`=tGEB^QH>+J*;MRW%D!>?&uWPK9X zgBTbsoQL~{-9KT#R}NWkT5}}|v>7MQyvlLV%^GwGa_8l(1_tbp8z=>3orKPDpYf+556$#B??O{%%HXj;0oCW8FzI5HhN+r6)sL5+9K%va%^JT&kf)XzE2*p>1LD3(!R57&KV z8h?O*77gcse_+a>hA?tt3)7)ZJZnT~TIJ=QD}GF8biA}^9u7GFgIlUUr|#Z z{r+W-v#9_C*u-4n1j?87$aM=Fn$n|U(rC9JsBA)el->SoumdvKGicC|LK{`A~AfE{4;$R{~Ny416oyRlLjhB4Q5~s%fl|swop_Y*7iGVFSWh&uF&<(6MAR!5oM#HFWD!ir=_lWvQ3~& ze((PH(KHX;v@!`T`XC*e{FLXLkiFkXpv;?3Z;ptR-^w!7{s_Vgyc&2b@Lu5aZC3Cp zW{B5$mprq|rLR3@H!U!9U+L0Kb5)wAP|a^MDjxnqG((qk(jYsRQ4#wm?9jo7iQvF>DCrM7m-b^~A+;OFzArCzbxBBMx-vIUS9arOi@JJ{ ztSo0)$?fUSmynJA&y|n`d=hFQDuOY~$e9+>+!{aU@%TT+hSIr;j~}JvAs#%woz@%Q z$!uS2_^nA%gf8ygPs4N1)Oe21Ju&v;aQ+M;w2AgFg!efZ>0w=EZU31Y^#9wE_bBE;Uxnwr~= z#gAhdx>MwNJKkw&QTJ5d8$#ShI(by+MxfKNjGDRoyro_(_WD!p@owUbJ#L6}!Ovn- z8V9jp$(K&CQ=N2mPFK@Z#pLgXDG7!IGfCbLNZnmf%$k+MSi2$a*H(29V6KrJ{V=|Z zsBu4bIsfzgrMI`OGou0Wg^!PgM|S?csmPhL*k131g)ybKrJ_r4 zgSdpm1g5z;64Ik14^LCvmWMY@Mu$z|k`}C_0iIr<5M#hugyYVduI-P%nGuW}i2l0R z-r{8bIQNYrKV4j^Fg0czc<(!W5`!~-ZfqJIf-elH)wx0jSI08Cepy^w>)P96k~c+K zSa^7Od6~JD7f*|hbC{Tzux3#cLEjk))P#IFc}^#wMf)w10H<1JGh5`d6(UfL3`@Wl z48bz4{#Ft+iM;cs?8)r?OYa|AMlmT-2Bh9~QbxUPVfCRyuIAjCDM88*xu8n(1gkL5$Ir#N#V&D)WEv%6NIEfUrcKPD&D zDhaH|VDF2(8QCIE4iE^~#FZ%(!P^TfxVgC-2KS7hL!Uk;@fwyUJ3H$l2V_@n7q?{& zSU+JwKR^qbcdF8Ba=lc=RSMc$wq0K!rb{I@KJ4PcJSFLYdE^W~=q4 z2@uM3JIux`2wU*S=8u-)!T03D!v=pJYjnm>xGnlw)aYcv=gu27J>PJj1sHK+A4@)z zD7=@UNY7(4;L~K9G$CJpVJGLLCwm=HLHEQBVc?GVNM}{chAAS${9KyccO}PAXp_T- z;0Fb`%Pav*tcPH{i4J_L)5i`S2|9$Thy-T5+P%1@CL*__qN1X-vJz8%;9+*a_yecu z<#W<^Gig$%e%@I&$t9=L0yFeRph*6iHGlMQsCi_Sm{+J(g4`G0D6=-Cc-&7o^&7+T z>Giw6^XZ(JW!wE|mBS*i)5Sl@;X6;=&KH$(-YYHVQQ2j+^J3eNgb?ZaCLNiFGK6-0 z+*s4v>zr~;q+RnJw=fiXiWBpk=;m#_2tz_T&+rq;~EX0ebNLIh#)U3@_j>Og7Y{gm^HVm^3svk>U`2VuK=7HRiw z#@NX{7@PI&;|)i%*`u1*Xq+=Uz%heeDAiVc#l5{f7Z(>A5w)h#>DI~=`Q?=b1k%>Z z#wHh?BR;w!6Kjwqeos+K9+Cd`u+XJ6ax`s6XOyS(bcA_ZN%qi$TZlGlrQvl&6fE0P$dnFfl`sB3+R)rnpvp0&& z@ZHv%<=4n6oy>o-l3|vFWiX~!uJ^8Pva+%wkq2KOrs$8gi6S09qrXSBb-r^6ZZx~S zyyFoM6Y0Ck(e{frJ>i&M6CYXEDpUMz@`0D0fqd2^ALdi}{&lj-ICgXJ;uv0X&XgYR zr8~q3Mmj{aGxY9tD)cXHKiHO)GNoZya6&vV+rUZ~F1CoJlT|7s>u-&zt}fi(-W(3M zG%_;PJB7_@I2(%oZj0uK>U&lEA>6|ZlK#+yUoxSng}dclt{z{Z<$Wj~WFge$2G)T) za|2tng`LWaRUk(2G9Y;4o2S6=h&SZ4AN6(`H9L!9{PRjqjs$W$Ch{wG3LVcMHiZYL zb29%iuim!oju_a&TBBVsCJ4mp%9<_`ZI>&OFBDbF!OZPh3IsRhy1{9OAv9Ci!1E%q zC*L*R7Cx}{;*-2`-`2fXiRNQ}J5PQn^G|qD3za)V)+MlQ=S=agalGRX3xwJ1_t+y| zSZ!dpwy@kn(#DAN!D|Zk*wEMkW@v|6s%oy@G!J$Q?;>9}jT56i2++3+j|*jX;=qX( z+{$5W>~&RDRmH`Dxg~{#g_V^uqM`~iM;>kqdcG4K$@6192wT3(8y;g1%Q}``Ye+Dm zdX0Fc^nMDNiy7AbN))6t(}Wrny-pB{;fLDEEcjc0W1r|FSPKw-oIwJi^-qX>KqO6u zv9Y8?$7%*&2D?4r+~OJ{r0)9hWZlir2SRh_|NxgN+%Z?Ow%yaR6b1SVoymzC17O${J1{y;+!%?UL87*lq` z`){r-^u{YQ{fyytz8_O5`@r~<#HaM~AAbzF(Yo z^Pn_&?)#144)f9xC$(4&yO_mWWg6)T+#$0HND;H7r$)W^NPPN2rh+Mb9~MVP)yfZW zCM?{%9B>9xXMXLq`2HqSq(In0fJR_8;pPQ0A)5Zy9+DbR9)Jy42>3s666hBAJ}@(| zK5!^-BarNk;?;XDKd!TIUE{jJCB!Ah?vE=>Zxnx%5TO+Ilu{cDrY=DE5P6%f2f*b0 zVaLRPeN7LIA6(C{f&8jtVOzO*JYAKn;Qo7jZP$a1CV1Ee$J%LKlcn*>gGW*!?rPXm z8#J5MHBFW|lbdNx`dVHQAd+>Rt+88lh>D+g-v=snxRhdLDx5yRy&IO~!|?sw{v7mjtp_t; zx#wLRE~55FRq;b+xRvBP?UYJ&%8MN9**h3hNWU=3(D7V-0JV~F{zr2O3Or;S9FL;TMNCe&qQ$7 zzl-UhPXzb$^sF+ov9(3#=XZBKc#Nc`tzlX49q#SN(nZ`=IrE!XcBzW@pv<|=g&g>) z74M*l`jsRC#cj?1B#=up$?7O#fUr_n6U}_r#L+oUi!g zk=p*M<6opcF~+_lKP7)|mKFCUxEq}k8kqHfPmlilBx$H3b6{1Zy2jL=SBz{O$gTZc z=IL!;pBltejy|x>miQEsYHo!tEekP@8feHUJ))#VD{9*e%T)V&SXue_yaGLs{B?8f z?(Gcil+rTAy(4cY&+2g-JyytogJVVi6K+u^&0n-UrEFP>nk?=0qtnQ?8lHn(^bnCg ziSVYjAd$C)C>|ZH4l7%7YV$FEYZ6J6vvRuffd7GgFyIW~Ow!qxQ(&PW;2Dmqxu&R9 zXb!8n&VF+JpykH8&OAM^Yb)HCc#fEiV&fK@JYCJwGr0;M1dw-({vffJ#P+6&dbX{>AbgzDl^Qz9XKqYb5+3nNGxOx)uh8CIKi&D zVmB)*YjbmRFkhX7l*Geir+@HmqjG-t>T4MrrX0Pm{pA0TsqYS_I(+}PviBxi2p!7I z9>=Cg=0Rj0BeEiUbd0PJl8h5F58)h&kS&U19h#mD1$$W|`IXx|g+KE0@Bq!bF^DD_ znu9;GvSSSH$EV6E{ab17cM|(}UTl^-#`t8Hscy809{zZL?s4kcN!tk%hCH=GpxR)VK-W2&lG`F=_$v4le(nR%-Eoo!M?kjb_tZ_MA#I;3g zju0YLp;bK|42vNDpJx)nk=~za04Q-fGxPP}V7aq%GnEc-u0LX88XsR)MKT99@w@Xa>y_ANO% zd6^i)Fjm&U-9^n%DR4*7sd9e*O3kEAW%mtZ_KKntpRyVgw}GrcAAyz|x;zO~&b1Hs zc4UgaTpb}r+X>LgZ{uHX0is+tJd^`rey#uG_YJKn?YOC__7aafhAD;ylqvsECn;Ik z7gnW&%K6hP_uzNvi`A}=fuY1q#v@Acl7@?5tg-!Bw#N(4Nxcl&;zb*)_f8b@fBx^$ z=}X_H8>FsP<<8C)udEy+5R)H2#(#-V9p}$YnTF+D-4z&h?9bG4F)BsVXX{-XGtu`) z(D&HHi^lFcray(q7lJ4fGr$AkN~Bi8uDZE=n*i0^46;pEv4A5a`Zy{Yu1NfwRs?t;^)eX91mZ3ro=YyV&!Q58vwZ+yV$AO zX)7yRTT2@o*n_;B{QTE>8(UB3W)GKjwS$A*eeXk~XBVWhAIUfC7EAX_{m_>93w4CV z7pg8c3hg@TLXQ|nCay9MLT<})$(Q`!7pI{Kd9!}5ya=K`I5^b7!TE`^kDHH2hzC5d zG`yg-_=>A2d;BwkwutFX)3tB(7`0NYY5yUUj{|-}NxjdtIS*!TbcVNIl<3w`sM1iO zzX3PHSTd$bdqcxCp zUs5rYmmPjQf0p-(j^ZS}S0h^N4*Q)9=^}b}kRE+mRR5*fGGf5d1@>#BFpc%~22UP+ z1NftXfuBlndw#8{`BgHuJAz4OLgwW!FwcA*rFOzTPwaI9U%(^`#D7&2IkwNCwW%Lk z5fN*a`fGd<6yF*9W=u2?56HpUN!qh84jL4r;LE+c@CC9*0ERyI&Kz5!KmP=!^>fBY zE6Y82Cm_ebC(bcPSOa)zE zqq_q|Tx-_raB+;0=h<#=P+@ymA^pk+wGaLk-AOHN(*!hmEewI_&w61kj!14H@**Sm zRO4(T_N%%joOd6M?d2z{Y4Vab&LGW)Ok8I(qAm$+cYQNVDX_7 z;<;J07xsC`ANrO;gsPmnlcutgU6z2%o~)aUPY-cMlV?GCGwxQ6CbaYFGY$<-BCbxZ zXZhT>;SZg7|66zS-sV;2)!^0Z>ffk_>Z=zNAJx!W0TGceGgglmySOMs3}7g~;&!Y( z8T!?f)uIl$RTgiGvP6T)BusPQiD`uDrrRK#^QzZTWF-c)QDEo~`a|3YX-OqO>-_$- zxt^ZfbFduSI0Z}ZDwk$ua^tKRPGE|$#|7ortR!p&#DnehxEw8`$y_{ChUy@z(zx(Y zHLnHzj2&&EdY`45KD3}%{ioUyFE;HBFWP6f^-Z)HJ`IZGwe53dd{{P*?uw+Rs8;ACyy#H7JQnhZyszKFw(nv^R*9e$4iA4n#<{ug zewcmIH0vm_PAOPCU?N=ivNn^i+b6$<>1Of`R~{(4UdQy(Iu~oLQ^I3W&WqPa+%#(< zOcyPK;yzux3;Re!obdp(;$^Jat;t;f*H{rb0@O7E)M%f(tLb=e*pXN5JPk^n07U{j zo$TNvK&9P=XVAePx+Av{sud?^Saqbf7KZ_n7qmnGE^O=r=TP6fcm!oowY)9y6RQa8=o*RUDLL=GDZH@vL*5nG9g!>rV{c;NEeh$SbC z0DX>{>9wjnInbjXnbNp!HI2FI(wLR}pdiqle#h@Q6 zSk$J{_cicvCv`;&v87dx}qFks+^YpXku)qv~ zy}VVxGJY1QZCyKZY9^-?43_I}`{*;?O&xXa-QdcGl~~qsL4&SS_h`(@+6!YEP{u_tyI7Hil*K=>76MRADxm?ZSwmW;Y zk>8={wYR(jF`&g(uUE|eQvPNgbd=#y%%Ibt&GYL^;K>*=+pxTKo4^lxJ^*E!cQK0rHs9;sy^h$0xEdX&P zY$bXsY$YCS`#pzFfqR7i&K7mk7Z2RVp$O{1JDHcY@A$f{uS?7`O#XV#neB1YhW#B@ zPXNmotMYw#xB5TdgB!uzN}}wk)&J)K+>{PZmu*yRR0HzQt**P+MQ1em91W^6T@vO( z2Ju{fp?VpqAF2KXAerv=^v5y6I$<8OO__9HvzT~e>9sw7b731FAZ61a@6? z39{38o<7-FtnVD(9TEZ+f36w}J&fk*#38zF$=eF_IMK7~5|)+n(f5ia`_O`&C=lSv4#IXG$BBgAqELE11xGh; zj)uz`yb#b(oL9mLU}_sAZt<<8klF^0@YjRSSbYg#2YZ}ym%VaNf$4J)wxX96@TyD% zZavu{c&VYjUPeX+H$I+~l?5m$k|j?q4==C%pc(4eSr3`@Btgu8g|K9XZeo}H5@8LS zrD)D>4^-5YU0|%l=V}A}MF*ix6&?(9+(Kfi03nm;hKl-GF%rOY7X$zP9+dT(+Y^mf zh_ezE6)mi`rD+b5#?EW2B20_-V2HeuY5ibbY~TA-_0R7|M#VDM=Ccjf)sGnaRu5^# zQlM))NvP|BD@wV+fl`MOT|@*svIx}R2Q)H`>L!@dcJX2VCax8G0hFz$6{FAHmmdcn zcpcehu3hbvIjznJ$q_wPw*9SiQisjg5nDXo8Rk7>t}5I{%mfD3_4!k9_ieNw#INpQ zr_tNkSONj+Yh7G?g0K3X84Emwv44fDVaG(bY$Rb$?|$gHCt!!(9R$GM&f=j4xxD5+ z6?1ZYnw*}VpO~-)y^oEJm9;e>imr07u5E5@t^W#}nw*@&{Wv`0pw61~7`uvcYrf(& zX`j@UxQp)~W>*;~kh)tk)XF2dz!-AX|Iu@_7y`~_Mvoj>UrRJ&7boISrd8Gf`Af|v zGU5^wQo9m$JxW#G2@v;xz+|ed?OwVt+DO`Gw6V0$X_L--)G9XEm6=-zcFB0j?}9H;ck&QnJN%@=!9?cALfr8R7yOL54SF}2h4mrSHJXs9@D#sE%iN|nM@Q)qAIRkV3diL1$9U zl`h`i4;>vH|DlU3`yeGKKBXs*{iIyou`V^u5tLw4AZ6A^Ra|+_>wd%j+hn3b`tCc) zbHCcOSL_Y4%2!nC0Qyx&@Lw>6jLqxfbe}4`4<`fub#`{HtzEa#3fVni=l55v0tAB;jT{Q^TxP5oO}p{dC# zC#P;%xifxu7l1yI=Pk^h{h3)X{dc%{rq^y}rfqJ0*BTYOQz1{B;*@$}>xucXW-l!$ zes@Fjuc~fVt5Nh^Lgf7^m$07(AzZ+XBNm6lwYRs={Jc?%JDOPAp>1`l5TgeQE@jNn zjd6C?VzW}Lxo{$a{^}gp;D=ha0Olp#^q3_x8o-Pmd<+#qzZVFEKYa?P3k3HhHl%>t zYE>&vVX!XDfgS;5K?tg^U4TG=8!l?hJ~Cb6;;WhkOuSg~ImRpL0uKpLf)O|tR+7_+ z>FMdYxo#Fie)n(R?%cVXoRs`TY3pa;3~majF1V94+O;Zdpp^ncteS53Q%7OFeD0I` zy(ML_;+`OoJ#Xl$FoOSAo1S>Ob!mp=7~HtcYy1o{~fEF;cf^e*W=?E?RtSmycG zUoTHL@2;B*uh z?2?)J>ioL&5|`z@nuI`4GkGsw_uZMs`%7J9A-Ynj+!+Q8B*tBxun=wPX_a*`P<7Y@ ze$l0G>uINe$|BYfQfa)!ST|;QSjIWE{sEinW@5Khi>%i?*Qck@?R=o9nX<68wXx(4 zI85AO;eVoCIAnBv`7kI~EM@GMeQzd8&+Jd!Se8y=0GoO8M7r>A=jUf^20WVdcb)ma zc-Tl-CFnV9>R>|RFWRC9T(#L~#fgZBD{m~4xRGs;6H$s#d8WmZ65U(g+2ef6D8j74 zLis9|ILJge=36M0`rV(IP{kp?tQAkW&Oh6vbT3-EM=VX_3`pIpNpahUMu%h~4MG-WyJ=ofRl-ws$bUP8OEvMa1f)pO6rbS00mYZf-@>094=*Yp`~(d)dfd)@WP~G`uX+zM2C!QWf-{Rjv@i)$%7T z)%w*7G+!d{qLIaCj&L$kvMuZ015iBBKnge8Z>gGQE)uezU15vVZ1vyAY5JJ zxzN&p`;(BE8Je3K9*q!3QeO#CPJy|+D3h|!rngEMn{%jqY9Gv8WA<(We2X|H0bKdz z-u`#E$@mq;!22 zYX&Ha-S~C32%Ke#0~Tg!X=!b(fom6fot*SUX}t*N7KhVn=Z*gI7RRr6D=d!)sGZ-wZ!KbV)wVr+qhNn}U9~^{dONhg588h~GDmzdUVwlffYfih zi&c+1(dI)s@dL$S`4f8h(>WT5N~GBhA{6Z<$7OQ)Di)C#z=YP<$5dj_XpM%R*0uGp z-{`u1@2g#zv%jRWQLyHF#nNA-ei)Y($6=Ty>Vp%{#FoCkJgUK5;}wfwK8WXxWENmf zA)tH zDy(@3wo5?Z9F)EhLOw@N>`6|jjqHMOQYRW1+#M7XhXBP%H6gmCmxqP_*H&5$AQW0! zlqDsVJ?cpEKX3aoqRiR!kB+%`%SyfG>3izaE zXc&?++|ATT6TnEFeCf0xyWo8`a1XGb_FDayZR>y1{w`4VkwXZHze1JTDYKQ0`R90+ zc{aX(DQ=Q@#;w6a#M{aHj8B7~sHpl&BQGBVW~AiTkh~~-k`(<0D4>4*f%XU3Yl)JA z9!wPQcQeUAjrgRYp@Er&W%b7o+6JIZOir$64k~iJwoGv}Mx1U?$Ra95@UcqoU8_+2 zk9dzsb?r=Swy;lO)*nW&9KxKDW;>mUncHVrpPp}UIWn||EiOxM~^(=r6pGNiEgO7?@VryV^pg?ip#7f+>ldu&&1{l`@A(jV${72kc`%jKBzk)7S}fS%PImldAXHr zZA);k^Yiob^4hKH8|4)greIdPnUIQE&zsp}^3B$TS*4UTmiwXIQI-DY&&FwYIhE)= zAYx(ZijW1BXIQxnC9JxM&H@q<;6kVWSm^Ee4wi5F`-KRa)+=lgiI|AqP46Er)Z5ht zq`R?bb+Hlrp~5b>y@)9Wcd6@SkHm%7?Svg&(7{7lNKo9Q=rHwVs4Yz-&TBgs=TCsj zSqrZ8nY)H>u$@>|w!XzaVYhX!#rCcG8{JuLN4uhmVlUfcKuT*$ki~0Ojvh6cLHj4<0(@l;xF zwAmY+7P!z2d$yz!c$8Y)p*|*#2ns5v%F!Tl zZzhrXWX`KlTlFy!?29`0-Og|D-FqLpw?YzBg1Lc^l2!R}JTJE#BatU5f$pN6{8h1A zGG-R9ul#04RCiea@%Vn&x%~C#-rn%WM&HQ^`wh;pW3^Sx?=KURlao_ZU|9==UIQr& z=hhbFQrrg$QL>|Gw?fS-X$d{f7S?;7*X?dRwRf-Y%@nA0d7gU|nyxk&{4A5NEJ=Jp zCEbV*yp+f`Ui$0kIBu|(5#AuR$B-;)7ZctiiX^HbS|FmkqK0_T61}!}6~PQR+?YE^ zcHY$v{n!Kk*#Fc6amKNgji#sf;Gr4agK(#G1}>k@`L0W?EGnO3_h4#}2-e!d4I3vz z?-ZE{$QJr<5@P9nBw^N!;1)g7Mm>DASYP10u+=iX+b5@ry255uaaj#7%<8JlYZQC) zy(*lZ$pnmsbwnvu&K&-QZmL!@*~FXY%Dfc`HtMe5fkO-{%=>QK!ooGQXO}ZtWS18f z$2Sh(F`M5sX@UZlmp$uk8O8RaP*ag*@n`ipHnXtn8xtSa)liZT`r_yK0c&U zj|)gr)`q^!x2wl>C5EM#jY6}WF*~VpX?71tan-9^jL#DT5Q2^3)S)2tL;4 zFo0quq|9FBxPue_e4K&dW}&|)F#^~9guP)nO9V7ccPKl$TgcftGmFLCJZmUeK~=Pd5W4v-2M`^OsKX?xPca|f z-&9nT()rz^vK{ujsE(hNG;qeVY1XrL!cWj0({7!Na=MZBYFiTLK|CM(O6+&x@GI5l zx6{6kcIzDtUVHhTl>o&`NJ^>9bP0NPa*gtiUIX(%*`$w{^9&X)YBlB^^CQe6H%bT^ zljCJm&R~hMX=hIY=~7lwj5qxqQ4*l9mxPhR#<;Ahf}}p_N=1ri3zEMzhA#q%uK_FA zY@9SG>>ah87@k+xsEg}T>7h`>M_oI2vq0_~_okDW?rx!yp{C=#;o*(GzPVomZRc~- zvLtAYrlse}AC?UM)HgI-A}-9#YfefIg@raYhVmbB=r;K=bcK^uLpdvM(Hc&)B8i%b zA5|T{Fu;5e^&Fp^`t#er|Lr_>OZgx=r1BP-lO>hwL1sX-IMlDJOR1~M+hRo&ZWWpye!=!2J#Gic3j3-*=x%{iu5zE|p{eBRmD-cIaLp}|8{u!oJP$QKHnIKoZA zpAq>_S4mz{@W%{vs;|FudS9nf)1Nnb=vKaf98-{zk(a}~ziId@gBYG$twu8ie&%Lo zrU1rZX=(GyHc)zEUb_b2h4g%)kZYFERWR<34nn|eyVnvlPt+s1EJY3NbcGt8UE9U# z(T@w_qpO?&?`sy75K_P>A&IBPQanNP+Z!IQ?wZyM4TXLzE1R0S@kd!kEAMwp&{