From 6390cf4f3e18c1ec458e16b85c62169df645cf8f Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Tue, 9 Jun 2020 10:46:48 -0400 Subject: [PATCH 001/105] week01 --- Week01/MindMap-v1.pdf | Bin 0 -> 51682 bytes Week01/NOTE.md | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 Week01/MindMap-v1.pdf diff --git a/Week01/MindMap-v1.pdf b/Week01/MindMap-v1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..293b6b99022e96c057815a305d8ba1a2d07e6102 GIT binary patch literal 51682 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 Date: Tue, 9 Jun 2020 12:31:27 -0400 Subject: [PATCH 002/105] Array - LeetCode-11 --- Week01/LeetCode_11.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Week01/LeetCode_11.java diff --git a/Week01/LeetCode_11.java b/Week01/LeetCode_11.java new file mode 100644 index 000000000..9ed7ead9e --- /dev/null +++ b/Week01/LeetCode_11.java @@ -0,0 +1,24 @@ +class Solution { + //11. 盛最多水的容器 + public int maxArea(int[] height) { + + int len = height.length; + int i=0, j=len-1,h=0; + int maxArea =0; + + while (i Date: Wed, 10 Jun 2020 10:48:51 -0400 Subject: [PATCH 003/105] =?UTF-8?q?Week-1:=2015.=20=E4=B8=89=E6=95=B0?= =?UTF-8?q?=E4=B9=8B=E5=92=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LeetCode_15.java | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Week01/LeetCode_15.java diff --git a/Week01/LeetCode_15.java b/Week01/LeetCode_15.java new file mode 100644 index 000000000..48756db45 --- /dev/null +++ b/Week01/LeetCode_15.java @@ -0,0 +1,50 @@ +class Solution { +//15. 三数之和 + public List> threeSum(int[] nums) { + List> result = new ArrayList<>(); + int len = nums.length; + if (nums == null || len<3) { + return result; + } + //sort是关键,排序完就很容易去重了 + Arrays.sort(nums); + + for (int i=0;i0 && nums[i] == nums[i-1]) continue; + //用while一样效果,不用回答for去判断 + while (i>0 && i0) break; + + int left = i+1; + int right = len-1; + while (left Date: Wed, 10 Jun 2020 11:40:49 -0400 Subject: [PATCH 004/105] =?UTF-8?q?Week01:=20283.=20=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E9=9B=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC_11_MoveZeroes.java | 16 ++++++++++++++++ Week01/NOTE.md | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 Week01/LC_11_MoveZeroes.java diff --git a/Week01/LC_11_MoveZeroes.java b/Week01/LC_11_MoveZeroes.java new file mode 100644 index 000000000..fd53de458 --- /dev/null +++ b/Week01/LC_11_MoveZeroes.java @@ -0,0 +1,16 @@ + +public void moveZeroes(int[] nums) { + //把0用后面的数代替,并统计0的个数记录在j上 + int j =0; + for(int i=0;i Date: Wed, 10 Jun 2020 11:41:59 -0400 Subject: [PATCH 005/105] =?UTF-8?q?Week01:=20283.=20=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E9=9B=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC_11_MoveZeroes.java | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/Week01/LC_11_MoveZeroes.java b/Week01/LC_11_MoveZeroes.java index fd53de458..366337292 100644 --- a/Week01/LC_11_MoveZeroes.java +++ b/Week01/LC_11_MoveZeroes.java @@ -1,16 +1,17 @@ - -public void moveZeroes(int[] nums) { - //把0用后面的数代替,并统计0的个数记录在j上 - int j =0; - for(int i=0;i Date: Wed, 10 Jun 2020 11:55:30 -0400 Subject: [PATCH 006/105] =?UTF-8?q?Week01:=20283.=20=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E9=9B=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC_11_MoveZeroes.java | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Week01/LC_11_MoveZeroes.java b/Week01/LC_11_MoveZeroes.java index 366337292..adb5ff588 100644 --- a/Week01/LC_11_MoveZeroes.java +++ b/Week01/LC_11_MoveZeroes.java @@ -14,4 +14,31 @@ public void moveZeroes(int[] nums) { j++; } } + + //swap 交换法, j 记录着0的位置 + public void moveZeroes2(int[] nums) { + int j =0; + for(int i=0;i Date: Wed, 10 Jun 2020 14:38:46 -0400 Subject: [PATCH 007/105] =?UTF-8?q?Week01:=20283.=20=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E9=9B=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/{LC_11_MoveZeroes.java => LC_283_MoveZeroes.java} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Week01/{LC_11_MoveZeroes.java => LC_283_MoveZeroes.java} (100%) diff --git a/Week01/LC_11_MoveZeroes.java b/Week01/LC_283_MoveZeroes.java similarity index 100% rename from Week01/LC_11_MoveZeroes.java rename to Week01/LC_283_MoveZeroes.java From 321dc57c0ae24d0e5e1c6f23e19ffd5f52fbfb4a Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 10 Jun 2020 15:05:54 -0400 Subject: [PATCH 008/105] =?UTF-8?q?Week01:=20206.=20=E5=8F=8D=E8=BD=AC?= =?UTF-8?q?=E9=93=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC206_ReverseLinkedList.md | 33 +++++++++++++++++++++++++++++++ Week01/NOTE.md | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 Week01/LC206_ReverseLinkedList.md diff --git a/Week01/LC206_ReverseLinkedList.md b/Week01/LC206_ReverseLinkedList.md new file mode 100644 index 000000000..5fa3488cd --- /dev/null +++ b/Week01/LC206_ReverseLinkedList.md @@ -0,0 +1,33 @@ +/*第一次写道这样就试着运行,链表和Recursive不清楚 :-) +class Solution { + ListNode res = new ListNode(); + public ListNode reverseList(ListNode head) { + + if (head == null){ + return null; + } + + res.next = head; + res = res.next; + + return reverseList(head.next); + } + +} + +/*看完题解后: +迭代法: + +class Solution { + ListNode res = new ListNode(); + public ListNode reverseList(ListNode head) { + + if (head == null){ + return res; + } + + ListNode next = head.nest; + head.next = res; + return reverseList(next); + } +} \ No newline at end of file diff --git a/Week01/NOTE.md b/Week01/NOTE.md index 915485d48..d9be84085 100644 --- a/Week01/NOTE.md +++ b/Week01/NOTE.md @@ -1,3 +1,5 @@ 学习笔记 1. 用脑图把知识的脉络串联起来 https://gitmind.com/ +2. 迭代Recursive 还是不清楚,迭代就是压栈问题,如果压入和取出只有一个模糊概念 +206. Reverse Linked List \ No newline at end of file From 7fd57925d48bdf26d28aac4e681872b411b72b22 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 10 Jun 2020 15:07:17 -0400 Subject: [PATCH 009/105] =?UTF-8?q?Week01:=20206.=20=E5=8F=8D=E8=BD=AC?= =?UTF-8?q?=E9=93=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC206_ReverseLinkedList.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Week01/LC206_ReverseLinkedList.md b/Week01/LC206_ReverseLinkedList.md index 5fa3488cd..b9ba9882d 100644 --- a/Week01/LC206_ReverseLinkedList.md +++ b/Week01/LC206_ReverseLinkedList.md @@ -18,8 +18,9 @@ class Solution { /*看完题解后: 迭代法: -class Solution { - ListNode res = new ListNode(); +public class Solution { + ListNode res = new ListNode(); + public ListNode reverseList(ListNode head) { if (head == null){ From b6baf89e50fde19f980f77d48e345f33898114a8 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 10 Jun 2020 15:08:11 -0400 Subject: [PATCH 010/105] =?UTF-8?q?Week01:=20206.=20=E5=8F=8D=E8=BD=AC?= =?UTF-8?q?=E9=93=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC206_ReverseLinkedList.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Week01/LC206_ReverseLinkedList.md b/Week01/LC206_ReverseLinkedList.md index b9ba9882d..9273857c5 100644 --- a/Week01/LC206_ReverseLinkedList.md +++ b/Week01/LC206_ReverseLinkedList.md @@ -1,6 +1,8 @@ /*第一次写道这样就试着运行,链表和Recursive不清楚 :-) class Solution { - ListNode res = new ListNode(); + + ListNode res = new ListNode(); + public ListNode reverseList(ListNode head) { if (head == null){ @@ -18,7 +20,8 @@ class Solution { /*看完题解后: 迭代法: -public class Solution { +class Solution { + ListNode res = new ListNode(); public ListNode reverseList(ListNode head) { From c0ad420a82ca5f9ec2955e960f8cdf6df24b257b Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 10 Jun 2020 23:13:16 -0400 Subject: [PATCH 011/105] =?UTF-8?q?Week01:=20206.=20=E5=8F=8D=E8=BD=AC?= =?UTF-8?q?=E9=93=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC206_ReverseLinkedList.java | 100 ++++++++++++++++++++++++++++ Week01/LC206_ReverseLinkedList.md | 37 ---------- Week01/NOTE.md | 15 ++++- 3 files changed, 114 insertions(+), 38 deletions(-) create mode 100644 Week01/LC206_ReverseLinkedList.java delete mode 100644 Week01/LC206_ReverseLinkedList.md diff --git a/Week01/LC206_ReverseLinkedList.java b/Week01/LC206_ReverseLinkedList.java new file mode 100644 index 000000000..a293f8a2a --- /dev/null +++ b/Week01/LC206_ReverseLinkedList.java @@ -0,0 +1,100 @@ +/* +第一次写道这样就试着运行,链表和Recursive不清楚 :-) +*/ +class Solution { + + ListNode res = new ListNode(); + + public ListNode reverseList(ListNode head) { + + if (head == null){ + return null; + } + + res.next = head; + res = res.next; + + return reverseList(head.next); + } + +} + +//因为要达到末尾时才能够进行连接,所以要在出栈的时候(recursive 调用后) +class Solution { + + ListNode res = new ListNode(); + + public ListNode reverseList(ListNode head) { + helper(head); + return res; + } + private ListNode helper(ListNode node){ + if(node == null || node.next == null){ + res = node; + return node; + } + ListNode temp = helper(node.next); + temp.next = node; + node.next = null; + return node; + } +} + +/*看完题解后: +1. 迭代法: 用 prev, curr, head 反转指针 +prev = head; +curr = head.next; +curr.next = prev; //反转指针 +head = curr; + +*/ +class Solution { + public ListNode reverseList(ListNode head) { + ListNode prev = null, temp, curr = head; + while(curr != null){ + temp = curr.next; + curr.next = prev; + prev = curr; + curr = temp; + } + //at the end curr =null, it mush return prev + return prev; + } + //时间复杂度:O(n)O(n) + //空间复杂度:O(1)O(1) +} + +/* 2.递归 +递归就是压栈,在递归调用前的code就是压栈前要执行的,在递归调用后的code就是出栈后执行的。 +有没有一种方法/公式,知道是这段代码是放在递归前还是递归后 + */ +class Solution { + public ListNode reverseList(ListNode head) { + //terminator + if(head == null || head.next == null){ + return head; + } + ListNode node = reverseList(head.next); //这里会一直迭代直到触发terminator(走到链表最后),然后才执行下面语句 + head.next.next = head; + head.next = null; //这里是为了断开连接 + return node; + } +} + +/* 递归 2 + return helper(nextNode, curr); //用value互换来达到指针反转 + */ +class Solution { + public ListNode reverseList(ListNode head) { + return helper(head, null); + } + + private ListNode helper(ListNode curr, ListNode newList){ + if (curr == null){ + return newList; + } + ListNode nextNode = curr.next; + curr.next = newList; + return helper(nextNode, curr); //用参数互换来达到指针反转 + } +} \ No newline at end of file diff --git a/Week01/LC206_ReverseLinkedList.md b/Week01/LC206_ReverseLinkedList.md deleted file mode 100644 index 9273857c5..000000000 --- a/Week01/LC206_ReverseLinkedList.md +++ /dev/null @@ -1,37 +0,0 @@ -/*第一次写道这样就试着运行,链表和Recursive不清楚 :-) -class Solution { - - ListNode res = new ListNode(); - - public ListNode reverseList(ListNode head) { - - if (head == null){ - return null; - } - - res.next = head; - res = res.next; - - return reverseList(head.next); - } - -} - -/*看完题解后: -迭代法: - -class Solution { - - ListNode res = new ListNode(); - - public ListNode reverseList(ListNode head) { - - if (head == null){ - return res; - } - - ListNode next = head.nest; - head.next = res; - return reverseList(next); - } -} \ No newline at end of file diff --git a/Week01/NOTE.md b/Week01/NOTE.md index d9be84085..7b26975ef 100644 --- a/Week01/NOTE.md +++ b/Week01/NOTE.md @@ -2,4 +2,17 @@ 1. 用脑图把知识的脉络串联起来 https://gitmind.com/ 2. 迭代Recursive 还是不清楚,迭代就是压栈问题,如果压入和取出只有一个模糊概念 -206. Reverse Linked List \ No newline at end of file +206. Reverse Linked List + +24. 两两交换链表中的节点 +递归写法要观察本级递归的解决过程,形成抽象模型,因为递归本质就是不断重复相同的事情。 +而不是去思考完整的调用栈,一级又一级,无从下手。 +如图所示,我们应该关注一级调用小单元的情况,也就是单个f(x)。 + +其中我们应该关心的主要有三点: + +1.返回值 +2.调用单元做了什么 +3.终止条件 + +链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/solution/hua-jie-suan-fa-24-liang-liang-jiao-huan-lian-biao/ From 55112506522faf9f0141abe432770a25700394a7 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Thu, 11 Jun 2020 21:44:31 -0400 Subject: [PATCH 012/105] =?UTF-8?q?Week01=20=E6=94=B9=E5=86=99=20Deque=20?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\345\206\231Deque\344\273\243\347\240\201.md" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "Week01/\346\224\271\345\206\231Deque\344\273\243\347\240\201.md" diff --git "a/Week01/\346\224\271\345\206\231Deque\344\273\243\347\240\201.md" "b/Week01/\346\224\271\345\206\231Deque\344\273\243\347\240\201.md" new file mode 100644 index 000000000..ec4a850ae --- /dev/null +++ "b/Week01/\346\224\271\345\206\231Deque\344\273\243\347\240\201.md" @@ -0,0 +1,16 @@ + 用 add first 或 add last 这套新的 API 改写 Deque 的代码 + + Deque stack = new LinkedList(); + stack.addFirst("a"); + stack.addFirst("b"); + stack.addFirst("c"); + System.out.println(stack); + + String str = stack.peek(); + System.out.println(str); + System.out.println(stack); + while (stack.size()>0){ + System.out.println(stack.removeFirst()); + } + System.out.println(stack); + From 95b2149f1ebfb4a2995639f2f9458129c443a949 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Thu, 11 Jun 2020 21:58:48 -0400 Subject: [PATCH 013/105] =?UTF-8?q?Week01=2026.=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E6=95=B0=E7=BB=84=E4=B8=AD=E7=9A=84=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LC26_remove-duplicates-from-sorted-array.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Week01/LC26_remove-duplicates-from-sorted-array.java diff --git a/Week01/LC26_remove-duplicates-from-sorted-array.java b/Week01/LC26_remove-duplicates-from-sorted-array.java new file mode 100644 index 000000000..c6f9ce9b5 --- /dev/null +++ b/Week01/LC26_remove-duplicates-from-sorted-array.java @@ -0,0 +1,15 @@ + +class Solution { + //代替法,用j保存修改数组的位置 + public int removeDuplicates(int[] nums) { + int j =0; + for(int i=0;i Date: Thu, 11 Jun 2020 22:03:14 -0400 Subject: [PATCH 014/105] =?UTF-8?q?Week01=2026.=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E6=95=B0=E7=BB=84=E4=B8=AD=E7=9A=84=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC26_remove-duplicates-from-sorted-array.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Week01/LC26_remove-duplicates-from-sorted-array.java b/Week01/LC26_remove-duplicates-from-sorted-array.java index c6f9ce9b5..e18da4a64 100644 --- a/Week01/LC26_remove-duplicates-from-sorted-array.java +++ b/Week01/LC26_remove-duplicates-from-sorted-array.java @@ -2,6 +2,9 @@ class Solution { //代替法,用j保存修改数组的位置 public int removeDuplicates(int[] nums) { + if (nums == null || nums.length==0){ + return 0; + } int j =0; for(int i=0;i Date: Fri, 12 Jun 2020 23:44:43 -0400 Subject: [PATCH 015/105] =?UTF-8?q?Week01=2026.=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E6=95=B0=E7=BB=84=E4=B8=AD=E7=9A=84=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC21_merge-two-sorted-lists.java | 28 +++++++++++++++++++++++++ Week01/NOTE.md | 6 ++++++ 2 files changed, 34 insertions(+) create mode 100644 Week01/LC21_merge-two-sorted-lists.java diff --git a/Week01/LC21_merge-two-sorted-lists.java b/Week01/LC21_merge-two-sorted-lists.java new file mode 100644 index 000000000..9d13a2592 --- /dev/null +++ b/Week01/LC21_merge-two-sorted-lists.java @@ -0,0 +1,28 @@ + +class Solution { + /* 思路 + + 终止条件:两条链表分别名为 l1 和 l2,当 l1 为空或 l2 为空时结束 + 返回值:每一层调用都返回排序好的链表头 + 本级递归内容:如果 l1 的 val 值更小,则将 l1.next 与排序好的链表头相接,l2 同理 + O(m+n)O(m+n),mm 为 l1的长度,nn 为 l2 的长度 + */ + + public ListNode mergeTwoLists(ListNode l1, ListNode l2) { + //terminator: + if(l1 == null){ + return l2; + } + if(l2 == null){ + return l1; + } + if (l1.val < l2.val){ + l1.next = mergeTwoLists(l1.next, l2); + return l1; + } + else { + l2.next = mergeTwoLists(l1, l2.next); + return l2; + } + } +} \ No newline at end of file diff --git a/Week01/NOTE.md b/Week01/NOTE.md index 7b26975ef..0082f4017 100644 --- a/Week01/NOTE.md +++ b/Week01/NOTE.md @@ -16,3 +16,9 @@ https://gitmind.com/ 3.终止条件 链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/solution/hua-jie-suan-fa-24-liang-liang-jiao-huan-lian-biao/ + +**用递归做建表题: +1.返回值:每一层调用都返回排序好的链表头 +2.只要考虑本层的逻辑 +3.本层的链表尾巴连上返回的链表头 +21. 合并两个有序链表; \ No newline at end of file From b469c3eb0d12b69a778faf5a62d45f282f407add Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Sat, 13 Jun 2020 00:00:19 -0400 Subject: [PATCH 016/105] =?UTF-8?q?Week01=20189.=20=E6=97=8B=E8=BD=AC?= =?UTF-8?q?=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC189_rotate-array.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Week01/LC189_rotate-array.java diff --git a/Week01/LC189_rotate-array.java b/Week01/LC189_rotate-array.java new file mode 100644 index 000000000..18a8cd3f7 --- /dev/null +++ b/Week01/LC189_rotate-array.java @@ -0,0 +1,13 @@ +//move k times for all element - O(k^n) +class Solution { + public void rotate(int[] nums, int k) { + int length = nums.length; + for(int i=0;i0;j--){ + nums[j] = nums[j-1]; + } + nums[0] = tmp; + } + } +} \ No newline at end of file From af37cf54e0060a5a8ee7163c8daf6f791c30fcdb Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Sat, 13 Jun 2020 22:27:49 -0400 Subject: [PATCH 017/105] =?UTF-8?q?Week01=20189.=20=E6=97=8B=E8=BD=AC?= =?UTF-8?q?=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC189_rotate-array.java | 3 ++- Week01/LC88_merge-sorted-array.java | 20 ++++++++++++++++++++ Week01/NOTE.md | 7 +++++-- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 Week01/LC88_merge-sorted-array.java diff --git a/Week01/LC189_rotate-array.java b/Week01/LC189_rotate-array.java index 18a8cd3f7..eec5f1e72 100644 --- a/Week01/LC189_rotate-array.java +++ b/Week01/LC189_rotate-array.java @@ -1,5 +1,6 @@ -//move k times for all element - O(k^n) + class Solution { + //move k times for all elements - O(k^n) public void rotate(int[] nums, int k) { int length = nums.length; for(int i=0;i=0) { + // when nums1 reach the head, p1 will become -1 + if (p1 == -1 || nums1[p1] <= nums2[p2]) { + nums1[p] = nums2[p2]; + p2--; + } + else{ + nums1[p] = nums1[p1]; + p1--; + } + p--; + } + } +} \ No newline at end of file diff --git a/Week01/NOTE.md b/Week01/NOTE.md index 0082f4017..30dda6612 100644 --- a/Week01/NOTE.md +++ b/Week01/NOTE.md @@ -7,7 +7,6 @@ https://gitmind.com/ 24. 两两交换链表中的节点 递归写法要观察本级递归的解决过程,形成抽象模型,因为递归本质就是不断重复相同的事情。 而不是去思考完整的调用栈,一级又一级,无从下手。 -如图所示,我们应该关注一级调用小单元的情况,也就是单个f(x)。 其中我们应该关心的主要有三点: @@ -21,4 +20,8 @@ https://gitmind.com/ 1.返回值:每一层调用都返回排序好的链表头 2.只要考虑本层的逻辑 3.本层的链表尾巴连上返回的链表头 -21. 合并两个有序链表; \ No newline at end of file +21. 合并两个有序链表; + +是涉及到数组的合并,旋转rotate时,从后向前处理排序的数据会更好,节省空间,容易处理。数组用双指针也是常用解法。 +88. 合并两个有序数组 +189. 旋转数组 \ No newline at end of file From 4d5254d7cfe7c6efbfd3bab9455153dab3f1ea7d Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Mon, 15 Jun 2020 00:33:02 -0400 Subject: [PATCH 018/105] week01 --- .idea/.gitignore | 2 + .idea/algorithm010.iml | 9 +++ .idea/leetcode/editor.xml | 105 ++++++++++++++++++++++++++++ .idea/misc.xml | 7 ++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 ++ Week01/LC88_merge-sorted-array.java | 13 +++- Week01/LC_283_MoveZeroes.java | 1 + Week01/NOTE.md | 7 +- 9 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/algorithm010.iml create mode 100644 .idea/leetcode/editor.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 000000000..e7e9d11d4 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/workspace.xml diff --git a/.idea/algorithm010.iml b/.idea/algorithm010.iml new file mode 100644 index 000000000..d6ebd4805 --- /dev/null +++ b/.idea/algorithm010.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/leetcode/editor.xml b/.idea/leetcode/editor.xml new file mode 100644 index 000000000..d48047bfe --- /dev/null +++ b/.idea/leetcode/editor.xml @@ -0,0 +1,105 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 000000000..aa66c7663 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..39a5bed6d --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..35eb1ddfb --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Week01/LC88_merge-sorted-array.java b/Week01/LC88_merge-sorted-array.java index 02183e5c2..8f9fb0224 100644 --- a/Week01/LC88_merge-sorted-array.java +++ b/Week01/LC88_merge-sorted-array.java @@ -15,6 +15,17 @@ public void merge(int[] nums1, int m, int[] nums2, int n) { p1--; } p--; + + nums1[p--] = (p1 == -1 || nums1[p1] <= nums2[p2]) ? nums2[p2--] : nums1[p1--]; } } -} \ No newline at end of file +} + +//可以简化成四行 + + public void merge(int[] nums1, int m, int[] nums2, int n) { + int p1 = m - 1, p2 = n - 1, p = m + n - 1; + while ( p2>=0) { + nums1[p--] = (p1 == -1 || nums1[p1] <= nums2[p2]) ? nums2[p2--] : nums1[p1--]; + } + } \ No newline at end of file diff --git a/Week01/LC_283_MoveZeroes.java b/Week01/LC_283_MoveZeroes.java index adb5ff588..cd7fccdba 100644 --- a/Week01/LC_283_MoveZeroes.java +++ b/Week01/LC_283_MoveZeroes.java @@ -33,6 +33,7 @@ public void moveZeroes3(int[] nums) { int j =0; for(int i=0;i Date: Mon, 15 Jun 2020 00:37:17 -0400 Subject: [PATCH 019/105] Week01 641. Design Circular Deque --- Week01/LC_641-design-circular-deque.java | 86 ++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Week01/LC_641-design-circular-deque.java diff --git a/Week01/LC_641-design-circular-deque.java b/Week01/LC_641-design-circular-deque.java new file mode 100644 index 000000000..919b0bb0b --- /dev/null +++ b/Week01/LC_641-design-circular-deque.java @@ -0,0 +1,86 @@ +class MyCircularDeque { + int[] arr; + int front; + int real; + int capacity; + int size; //add size to track the side of deque + + + /** Initialize your data structure here. Set the size of the deque to be k. */ + public MyCircularDeque(int k) { + capacity = k; + size = 0; + front = real =0; + arr = new int[capacity]; + } + + /** Adds an item at the front of Deque. Return true if the operation is successful. */ + public boolean insertFront(int value) { + if (isFull()){ + return false; + } + front = (front - 1 + capacity) % capacity; + arr[front] = value; + size++; + 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; + } + arr[real] = value; + real = (real + 1) % capacity; + size++; + return true; + } + + /** Deletes an item from the front of Deque. Return true if the operation is successful. */ + public boolean deleteFront() { + if (isEmpty()){ + return false; + } + front = (front + 1) % capacity; + size--; + return true; + } + + /** Deletes an item from the rear of Deque. Return true if the operation is successful. */ + public boolean deleteLast() { + if (isEmpty()){ + return false; + } + + real = (real - 1 + capacity) % capacity; + size--; + return true; + } + + /** Get the front item from the deque. */ + public int getFront() { + if (isEmpty()){ + return -1; + } + return arr[front]; + } + + /** Get the last item from the deque. */ + public int getRear() { + if (isEmpty()){ + return -1; + } + + return arr[(real-1+capacity) % capacity]; + } + + /** Checks whether the circular deque is empty or not. */ + public boolean isEmpty() { + return size == 0; + } + + /** Checks whether the circular deque is full or not. */ + public boolean isFull() { + return capacity == size; + } +} \ No newline at end of file From 8ae4296630b668c8a1b6cffad78d0c667e650c2b Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Mon, 15 Jun 2020 13:36:37 -0400 Subject: [PATCH 020/105] Week01 42.trapping-rain-water --- .idea/leetcode/editor.xml | 8 ++++++++ Week01/LC42_trapping-rain-water.java | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 Week01/LC42_trapping-rain-water.java diff --git a/.idea/leetcode/editor.xml b/.idea/leetcode/editor.xml index d48047bfe..3fd5e23d1 100644 --- a/.idea/leetcode/editor.xml +++ b/.idea/leetcode/editor.xml @@ -75,6 +75,14 @@ + + + + + + diff --git a/Week01/LC42_trapping-rain-water.java b/Week01/LC42_trapping-rain-water.java new file mode 100644 index 000000000..769d08bb9 --- /dev/null +++ b/Week01/LC42_trapping-rain-water.java @@ -0,0 +1,28 @@ +class Solution { + //两头逼近,以矮的那头为计算高度,向中间逼近,与11. 盛最多水的容器 相似 + public int trap(int[] height) { + int ans = 0; + int len = height.length; + if (len <3){ + return 0; + } + int max_left = 0; + int max_right = 0; + int left =0; + int right = len -1; + while(left<=right){ + max_left = Math.max(max_left,height[left]); + max_right = Math.max(max_right,height[right]); + if (max_left Date: Tue, 16 Jun 2020 01:07:56 -0400 Subject: [PATCH 021/105] =?UTF-8?q?Week01=2066.=20=E5=8A=A0=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week01/LC88_merge-sorted-array.java | 7 ++- Week01/LC_66-plus-one.java | 18 ++++++ Week01/LeetCode_15.java | 2 +- Week02/NOTE.md | 89 ++++++++++++++++++++++++++++- 4 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 Week01/LC_66-plus-one.java diff --git a/Week01/LC88_merge-sorted-array.java b/Week01/LC88_merge-sorted-array.java index 8f9fb0224..4fd3c1ae9 100644 --- a/Week01/LC88_merge-sorted-array.java +++ b/Week01/LC88_merge-sorted-array.java @@ -22,10 +22,11 @@ public void merge(int[] nums1, int m, int[] nums2, int n) { } //可以简化成四行 - +class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int p1 = m - 1, p2 = n - 1, p = m + n - 1; - while ( p2>=0) { + while (p2 >= 0) { nums1[p--] = (p1 == -1 || nums1[p1] <= nums2[p2]) ? nums2[p2--] : nums1[p1--]; } - } \ No newline at end of file + } +} \ No newline at end of file diff --git a/Week01/LC_66-plus-one.java b/Week01/LC_66-plus-one.java new file mode 100644 index 000000000..5d9f50a40 --- /dev/null +++ b/Week01/LC_66-plus-one.java @@ -0,0 +1,18 @@ +class Solution { + public int[] plusOne(int[] digits) { + //here, need to loop from eno of digits + for (int i = digits.length-1; i>=0;i--){ + digits[i]++; + digits[i] = digits[i] % 10; + //e.g. 1,9,9; when it becomes 200. it will end th loop + if (digits[i] != 0) return digits; + } + // reach here, only when all digits are 9. e.g. 999 + // in java, int[] initia with '0' + int[] newDigits = new int[digits.length +1]; + // System.arraycopy(digits,0,newDigits,1,digits.length); + newDigits[0] = 1; + return newDigits; + + } +} \ No newline at end of file diff --git a/Week01/LeetCode_15.java b/Week01/LeetCode_15.java index 48756db45..7acd042d5 100644 --- a/Week01/LeetCode_15.java +++ b/Week01/LeetCode_15.java @@ -13,7 +13,7 @@ public List> threeSum(int[] nums) { //nums[i] is the first integer of three // 去重 //if (i>0 && nums[i] == nums[i-1]) continue; - //用while一样效果,不用回答for去判断 + //用while一样效果,不用回到for去判断 while (i>0 && i= 7) { this.treeifyBin(tab, hash); } +--------------------------------------------- + final Node getNode(int hash, Object key) { + Node[] tab; Node first, e; int n; K k; + if ((tab = table) != null && (n = tab.length) > 0 && + (first = tab[(n - 1) & hash]) != null) { + if (first.hash == hash && // always check first node + ((k = first.key) == key || (key != null && key.equals(k)))) + return first; + if ((e = first.next) != null) { + if (first instanceof TreeNode) + return ((TreeNode)first).getTreeNode(hash, key); + do { + if (e.hash == hash && + ((k = e.key) == key || (key != null && key.equals(k)))) + return e; + } while ((e = e.next) != null); + } + } + return null; + } + +------------------------ + + final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { + HashMap.Node[] tab; + int n; + if ((tab = this.table) == null || (n = tab.length) == 0) { + n = (tab = this.resize()).length; + } + + Object p; + int i; + if ((p = tab[i = n - 1 & hash]) == null) { + tab[i] = this.newNode(hash, key, value, (HashMap.Node)null); + } else { + Object e; + Object k; + if (((HashMap.Node)p).hash == hash && ((k = ((HashMap.Node)p).key) == key || key != null && key.equals(k))) { + e = p; + } else if (p instanceof HashMap.TreeNode) { + e = ((HashMap.TreeNode)p).putTreeVal(this, tab, hash, key, value); + } else { + int binCount = 0; + + while(true) { + if ((e = ((HashMap.Node)p).next) == null) { + ((HashMap.Node)p).next = this.newNode(hash, key, value, (HashMap.Node)null); + if (binCount >= 7) { + this.treeifyBin(tab, hash); + } + break; + } + + if (((HashMap.Node)e).hash == hash && ((k = ((HashMap.Node)e).key) == key || key != null && key.equals(k))) { + break; + } + + p = e; + ++binCount; + } + } + + if (e != null) { + V oldValue = ((HashMap.Node)e).value; + if (!onlyIfAbsent || oldValue == null) { + ((HashMap.Node)e).value = value; + } + + this.afterNodeAccess((HashMap.Node)e); + return oldValue; + } + } + + ++this.modCount; + if (++this.size > this.threshold) { + this.resize(); + } + + this.afterNodeInsertion(evict); + return null; + } From c2fb413298a1841ac503cbd0aa2c06c525e2f931 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Tue, 16 Jun 2020 12:09:58 -0400 Subject: [PATCH 022/105] =?UTF-8?q?Week02=20242.=20=E6=9C=89=E6=95=88?= =?UTF-8?q?=E7=9A=84=E5=AD=97=E6=AF=8D=E5=BC=82=E4=BD=8D=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/leetcode/editor.xml | 8 +++++++ Week02/LC_242-valid-anagram.java | 40 ++++++++++++++++++++++++++++++++ Week02/NOTE.md | 6 +++++ 3 files changed, 54 insertions(+) create mode 100644 Week02/LC_242-valid-anagram.java diff --git a/.idea/leetcode/editor.xml b/.idea/leetcode/editor.xml index 3fd5e23d1..86bc04c98 100644 --- a/.idea/leetcode/editor.xml +++ b/.idea/leetcode/editor.xml @@ -59,6 +59,14 @@ + + + + + + diff --git a/Week02/LC_242-valid-anagram.java b/Week02/LC_242-valid-anagram.java new file mode 100644 index 000000000..ca61186ad --- /dev/null +++ b/Week02/LC_242-valid-anagram.java @@ -0,0 +1,40 @@ + +class Solution { + public boolean isAnagram(String s, String t) { + //Brute force + //#1. sort, compare one by one + //#2, HashMap, tracking charaters + //similar with LC_49 + if (s.length() != t.length()){ + return false; + } + HashMap map = new HashMap<>(); + for(int i =0; i list = Arrays.asList(1,2); + +Array 初始化: +int[]{map.get(target-nums[i]),nums[i]}; + HashMap 源码: 为啥要这么多中间变量呢? tab, first, e; n,k 感觉诚心让我们不容易看懂源码:-) 这些中间变量的作用是存储取出的值? tab = table 有啥作用,为啥不能直接在table上操作? From c112c211c9ecea92e554a7c7f4d7addc02767236 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Tue, 16 Jun 2020 13:43:41 -0400 Subject: [PATCH 023/105] Week02 Tree Traversal --- Week02/LC_94_144_590_429-tree-traversal.java | 147 +++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 Week02/LC_94_144_590_429-tree-traversal.java diff --git a/Week02/LC_94_144_590_429-tree-traversal.java b/Week02/LC_94_144_590_429-tree-traversal.java new file mode 100644 index 000000000..32baa8b40 --- /dev/null +++ b/Week02/LC_94_144_590_429-tree-traversal.java @@ -0,0 +1,147 @@ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Stack; + +public class BinanryTree_Traversal { + + /* + * 深度优先DFS: + * 根节点、左孩子和右孩子的相对顺序被细分为前序遍历,中序遍历和后序遍历。 + *前序(144)~中序(94)~后序(145)遍历可以看成三个时间点 + + 前序遍历是在访问左子树之前,对父结点进行操作,也就是在左结点出栈前(!!!出栈即进入以左结点为根的左子树!!!),对父节点do something~ + 中序遍历是在访问左子树之后,右子树之前,对父结点进行操作,即左结点(代表以左结点为根的子树)出栈后,右结点出栈前,对父节点do something~ + 后序遍历是在访问左子树,右子树之后,对父结点进行操作,即左右结点都出栈后,对父节点do something~ + */ + //144. 二叉树的前序遍历: 从根节点开始,每次迭代弹出当前栈顶元素,并将其孩子节点压入栈中,先压右孩子再压左孩子。 + public List preorder(TreeNode root) { + Stack stack = new Stack<>(); + + List result = new ArrayList<>(); + if (root ==null){ + return result; + } + stack.add(root); + while(!stack.isEmpty()){ + TreeNode node = stack.pop(); + if (node != null){ + result.add(node.val); + stack.push(node.right); + stack.push(node.left); + } + } + return result; + } + + //Iteratively + /* + *94. 二叉树的中序遍历 + * 迭代 - iteratively + * 递归的调用过程是不断往左边走,当左边走不下去了,就打印节点,并转向右边,然后右边继续这个过程。 + *我们在迭代实现时,就可以用栈来模拟上面的调用过程。 + * */ + public List inorderTraversal(TreeNode root) { + List res = new ArrayList(); + Stack stack = new Stack(); + stack.push(root); + while( !stack.empty()){ + if(root!=null){ + stack.push(root.left); + root = root.left; + } + else{ + TreeNode node = stack.pop(); + if(node != null){ + res.add(node.val); + root = node.right; + } + } + } + return res; + } + + + //145: 后序遍历: + /* + * 与 前序遍历, 从根节点开始,每次迭代弹出当前栈顶元素,并将其孩子节点压入栈中,先压右孩子再压左孩子 + * 可是对每次迭代弹出节点,把值存入插入结果链表的头部(最后输出) + * */ + public List postorderTraversal(TreeNode root) { + Stack stack = new Stack<>(); + List result = new ArrayList(); + if (root ==null){ + return result; + } + stack.add(root); + while(!stack.isEmpty()){ + TreeNode node = stack.pop(); + if (node != null){ + //因为根节点要最后出,所有要再压入栈 + stack.push(node); + stack.push(null); //用null使根节点出栈时去到else + //压右孩子 + if (node.right != null) stack.push(node.right); + //压左孩子 + if (node.left != null) stack.push(node.left); + } + else{ + TreeNode output= stack.pop(); + result.add(output.val); + } + } + return result; + } + //用相同思路解决中序历遍 + public List inorderTraversal2(TreeNode root) { + + List res = new ArrayList(); + Stack stack = new Stack(); + if (root ==null){ + return res; + } + stack.push(root); + while(!stack.empty()){ + TreeNode node = stack.pop(); + if (node != null){ + if (node.right != null ) stack.push(node.right); + stack.push(node); + stack.push(null); + if (node.left != null ) stack.push(node.left); + } + else{ + res.add(stack.pop().val); + } + } + return res; + } + //前序 遍历, 因为输出结果是加入ArrayList最后, 所有压栈的顺序和Recursive 是相反的 + public List preorderTraversal(TreeNode root) { + + List res = new ArrayList(); + Stack stack = new Stack(); + if (root ==null){ + return res; + } + stack.push(root); + while(!stack.empty()){ + TreeNode node = stack.pop(); + if (node != null){ + if (node.right != null ) stack.push(node.right); + if (node.left != null ) stack.push(node.left); + stack.push(node); + stack.push(null); + } + else{ + res.add(stack.pop().val); + } + } + return res; + } + public class TreeNode { + int val; + TreeNode left; + TreeNode right; + TreeNode(int x) { val = x; } + } +} From dc4dab8f53d64e3e8f9b992f4548f7aff36cef8b Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Tue, 16 Jun 2020 16:33:06 -0400 Subject: [PATCH 024/105] Week02 Tree Traversal --- .idea/algorithm010.iml | 4 ++- Week02/LC_94_144_590_429-tree-traversal.java | 34 +++++++++++++++++--- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/.idea/algorithm010.iml b/.idea/algorithm010.iml index d6ebd4805..b107a2dd8 100644 --- a/.idea/algorithm010.iml +++ b/.idea/algorithm010.iml @@ -2,7 +2,9 @@ - + + + diff --git a/Week02/LC_94_144_590_429-tree-traversal.java b/Week02/LC_94_144_590_429-tree-traversal.java index 32baa8b40..ff2408c87 100644 --- a/Week02/LC_94_144_590_429-tree-traversal.java +++ b/Week02/LC_94_144_590_429-tree-traversal.java @@ -1,7 +1,4 @@ -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.Stack; +import java.util.*; public class BinanryTree_Traversal { @@ -17,7 +14,6 @@ public class BinanryTree_Traversal { //144. 二叉树的前序遍历: 从根节点开始,每次迭代弹出当前栈顶元素,并将其孩子节点压入栈中,先压右孩子再压左孩子。 public List preorder(TreeNode root) { Stack stack = new Stack<>(); - List result = new ArrayList<>(); if (root ==null){ return result; @@ -138,6 +134,34 @@ public List preorderTraversal(TreeNode root) { } return res; } + + // 102. 二叉树的层序遍历 + public List> levelOrder(TreeNode root) { + List> res = new ArrayList<>(); + if (root == null){ + return res; + } + Queue queue = new ArrayDeque(); + queue.add(root); + while (!queue.isEmpty()){ + + int n =queue.size(); //need the store size to n, as quene size keep changing inside loop + List list = new ArrayList(); + for (int i=0; i Date: Tue, 16 Jun 2020 21:48:17 -0400 Subject: [PATCH 025/105] =?UTF-8?q?Week02=20=E9=9D=A2=E8=AF=95=E9=A2=9840.?= =?UTF-8?q?=20=E6=9C=80=E5=B0=8F=E7=9A=84k=E4=B8=AA=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 2 + .idea/leetcode/editor.xml | 16 ++ .idea/misc.xml | 4 +- Week02/BinaryHeap.java | 155 +++++++++++++++++++ Week02/LC_94_144_590_429-tree-traversal.java | 5 +- Week02/LC_m40_small_k_digits.java | 27 ++++ 6 files changed, 207 insertions(+), 2 deletions(-) create mode 100644 Week02/BinaryHeap.java create mode 100644 Week02/LC_m40_small_k_digits.java diff --git a/.idea/.gitignore b/.idea/.gitignore index e7e9d11d4..6efbc65c6 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -1,2 +1,4 @@ # Default ignored files /workspace.xml +# Project exclude paths +/. diff --git a/.idea/leetcode/editor.xml b/.idea/leetcode/editor.xml index 86bc04c98..0d8d74c19 100644 --- a/.idea/leetcode/editor.xml +++ b/.idea/leetcode/editor.xml @@ -83,6 +83,14 @@ + + + + + + @@ -115,6 +123,14 @@ + + + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index aa66c7663..6c07f54a3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,7 @@ - + + + \ No newline at end of file diff --git a/Week02/BinaryHeap.java b/Week02/BinaryHeap.java new file mode 100644 index 000000000..a27cf3ed0 --- /dev/null +++ b/Week02/BinaryHeap.java @@ -0,0 +1,155 @@ +package Week02; + +// Java 堆的实现 + +import java.util.Arrays; +import java.util.NoSuchElementException; + + +public class BinaryHeap { + + private static final int d = 2; + private int[] heap; + private int heapSize; + + + /** + * This will initialize our heap with default size. + */ + public BinaryHeap(int capacity) { + heapSize = 0; + heap = new int[capacity + 1]; + Arrays.fill(heap, -1); + } + + + public boolean isEmpty() { + return heapSize == 0; + } + + + public boolean isFull() { + return heapSize == heap.length; + } + + + private int parent(int i) { + return (i - 1) / d; + } + + + private int kthChild(int i, int k) { + return d * i + k; + } + + + /** + * Inserts new element in to heap + * Complexity: O(log N) + * As worst case scenario, we need to traverse till the root + */ + public void insert(int x) { + if (isFull()) { + throw new NoSuchElementException("Heap is full, No space to insert new element"); + } + heap[heapSize] = x; + heapSize ++; + heapifyUp(heapSize - 1); + } + + + /** + * Deletes element at index x + * Complexity: O(log N) + */ + public int delete(int x) { + if (isEmpty()) { + throw new NoSuchElementException("Heap is empty, No element to delete"); + } + int maxElement = heap[x]; + heap[x] = heap[heapSize - 1]; + heapSize--; + heapifyDown(x); + return maxElement; + } + + + /** + * Maintains the heap property while inserting an element. + */ + private void heapifyUp(int i) { + int insertValue = heap[i]; + while (i > 0 && insertValue > heap[parent(i)]) { + heap[i] = heap[parent(i)]; + i = parent(i); + } + heap[i] = insertValue; + } + + + /** + * Maintains the heap property while deleting an element. + */ + private void heapifyDown(int i) { + int child; + int temp = heap[i]; + while (kthChild(i, 1) < heapSize) { + child = maxChild(i); + if (temp >= heap[child]) { + break; + } + heap[i] = heap[child]; + i = child; + } + heap[i] = temp; + } + + + private int maxChild(int i) { + int leftChild = kthChild(i, 1); + int rightChild = kthChild(i, 2); + return heap[leftChild] > heap[rightChild] ? leftChild : rightChild; + } + + + /** + * Prints all elements of the heap + */ + public void printHeap() { + System.out.print("nHeap = "); + for (int i = 0; i < heapSize; i++) + System.out.print(heap[i] + " "); + System.out.println(); + } + + + /** + * This method returns the max element of the heap. + * complexity: O(1) + */ + public int findMax() { + if (isEmpty()) + throw new NoSuchElementException("Heap is empty."); + return heap[0]; + } + + + public static void main(String[] args) { + BinaryHeap maxHeap = new BinaryHeap(10); + maxHeap.insert(10); + maxHeap.insert(4); + maxHeap.insert(9); + maxHeap.insert(1); + maxHeap.insert(7); + maxHeap.insert(5); + maxHeap.insert(3); + + + maxHeap.printHeap(); + maxHeap.delete(5); + maxHeap.printHeap(); + maxHeap.delete(2); + maxHeap.printHeap(); + } +} + diff --git a/Week02/LC_94_144_590_429-tree-traversal.java b/Week02/LC_94_144_590_429-tree-traversal.java index ff2408c87..52c3f0666 100644 --- a/Week02/LC_94_144_590_429-tree-traversal.java +++ b/Week02/LC_94_144_590_429-tree-traversal.java @@ -1,6 +1,8 @@ +package Week02; + import java.util.*; -public class BinanryTree_Traversal { +class BinanryTree_Traversal { /* * 深度优先DFS: @@ -142,6 +144,7 @@ public List> levelOrder(TreeNode root) { return res; } Queue queue = new ArrayDeque(); + queue.add(root); while (!queue.isEmpty()){ diff --git a/Week02/LC_m40_small_k_digits.java b/Week02/LC_m40_small_k_digits.java new file mode 100644 index 000000000..c7a6af5d7 --- /dev/null +++ b/Week02/LC_m40_small_k_digits.java @@ -0,0 +1,27 @@ +package Week02; + +import java.util.PriorityQueue; + +public class LC_m40_small_k_digits { +/* +* Solutions: + //1. sort: NlogN + //2. heap: NlogK + //3. quick-sort: logN +* */ + public int[] getLeastNumbers(int[] arr, int k) { + if (k == 0) return new int[0]; + // Java 默认是小根堆,实现大根堆需要重写一下比较器。 + PriorityQueue heap = new PriorityQueue<>((a,b)->b-a); + for (int i :arr){ + if (heap.size() < k){ + heap.offer(i); + } + else if (i Date: Tue, 16 Jun 2020 22:18:04 -0400 Subject: [PATCH 026/105] Week02 rename file name make project can be compiled --- Week01/{LC189_rotate-array.java => LC189_rotate-array.md} | 0 ...06_ReverseLinkedList.java => LC206_ReverseLinkedList.md} | 0 ...two-sorted-lists.java => LC21_merge-two-sorted-lists.md} | 0 ...ray.java => LC26_remove-duplicates-from-sorted-array.md} | 0 ...trapping-rain-water.java => LC42_trapping-rain-water.md} | 0 ...8_merge-sorted-array.java => LC88_merge-sorted-array.md} | 0 Week01/{LC_283_MoveZeroes.java => LC_283_MoveZeroes.md} | 0 ...-circular-deque.java => LC_641-design-circular-deque.md} | 0 Week01/{LC_66-plus-one.java => LC_66-plus-one.md} | 0 Week01/{LeetCode_11.java => LeetCode_11.md} | 0 Week01/{LeetCode_15.java => LeetCode_15.md} | 2 +- ...{LC_242-valid-anagram.java => LC_242_valid_anagram.java} | 6 +++++- Week02/LC_94_144_590_429-tree-traversal.java | 6 +++--- 13 files changed, 9 insertions(+), 5 deletions(-) rename Week01/{LC189_rotate-array.java => LC189_rotate-array.md} (100%) rename Week01/{LC206_ReverseLinkedList.java => LC206_ReverseLinkedList.md} (100%) rename Week01/{LC21_merge-two-sorted-lists.java => LC21_merge-two-sorted-lists.md} (100%) rename Week01/{LC26_remove-duplicates-from-sorted-array.java => LC26_remove-duplicates-from-sorted-array.md} (100%) rename Week01/{LC42_trapping-rain-water.java => LC42_trapping-rain-water.md} (100%) rename Week01/{LC88_merge-sorted-array.java => LC88_merge-sorted-array.md} (100%) rename Week01/{LC_283_MoveZeroes.java => LC_283_MoveZeroes.md} (100%) rename Week01/{LC_641-design-circular-deque.java => LC_641-design-circular-deque.md} (100%) rename Week01/{LC_66-plus-one.java => LC_66-plus-one.md} (100%) rename Week01/{LeetCode_11.java => LeetCode_11.md} (100%) rename Week01/{LeetCode_15.java => LeetCode_15.md} (98%) rename Week02/{LC_242-valid-anagram.java => LC_242_valid_anagram.java} (92%) diff --git a/Week01/LC189_rotate-array.java b/Week01/LC189_rotate-array.md similarity index 100% rename from Week01/LC189_rotate-array.java rename to Week01/LC189_rotate-array.md diff --git a/Week01/LC206_ReverseLinkedList.java b/Week01/LC206_ReverseLinkedList.md similarity index 100% rename from Week01/LC206_ReverseLinkedList.java rename to Week01/LC206_ReverseLinkedList.md diff --git a/Week01/LC21_merge-two-sorted-lists.java b/Week01/LC21_merge-two-sorted-lists.md similarity index 100% rename from Week01/LC21_merge-two-sorted-lists.java rename to Week01/LC21_merge-two-sorted-lists.md diff --git a/Week01/LC26_remove-duplicates-from-sorted-array.java b/Week01/LC26_remove-duplicates-from-sorted-array.md similarity index 100% rename from Week01/LC26_remove-duplicates-from-sorted-array.java rename to Week01/LC26_remove-duplicates-from-sorted-array.md diff --git a/Week01/LC42_trapping-rain-water.java b/Week01/LC42_trapping-rain-water.md similarity index 100% rename from Week01/LC42_trapping-rain-water.java rename to Week01/LC42_trapping-rain-water.md diff --git a/Week01/LC88_merge-sorted-array.java b/Week01/LC88_merge-sorted-array.md similarity index 100% rename from Week01/LC88_merge-sorted-array.java rename to Week01/LC88_merge-sorted-array.md diff --git a/Week01/LC_283_MoveZeroes.java b/Week01/LC_283_MoveZeroes.md similarity index 100% rename from Week01/LC_283_MoveZeroes.java rename to Week01/LC_283_MoveZeroes.md diff --git a/Week01/LC_641-design-circular-deque.java b/Week01/LC_641-design-circular-deque.md similarity index 100% rename from Week01/LC_641-design-circular-deque.java rename to Week01/LC_641-design-circular-deque.md diff --git a/Week01/LC_66-plus-one.java b/Week01/LC_66-plus-one.md similarity index 100% rename from Week01/LC_66-plus-one.java rename to Week01/LC_66-plus-one.md diff --git a/Week01/LeetCode_11.java b/Week01/LeetCode_11.md similarity index 100% rename from Week01/LeetCode_11.java rename to Week01/LeetCode_11.md diff --git a/Week01/LeetCode_15.java b/Week01/LeetCode_15.md similarity index 98% rename from Week01/LeetCode_15.java rename to Week01/LeetCode_15.md index 7acd042d5..0e689d336 100644 --- a/Week01/LeetCode_15.java +++ b/Week01/LeetCode_15.md @@ -1,4 +1,4 @@ -class Solution { +public class LeetCode_15 { //15. 三数之和 public List> threeSum(int[] nums) { List> result = new ArrayList<>(); diff --git a/Week02/LC_242-valid-anagram.java b/Week02/LC_242_valid_anagram.java similarity index 92% rename from Week02/LC_242-valid-anagram.java rename to Week02/LC_242_valid_anagram.java index ca61186ad..efcd003a3 100644 --- a/Week02/LC_242-valid-anagram.java +++ b/Week02/LC_242_valid_anagram.java @@ -1,5 +1,9 @@ +package Week02; + +import java.util.HashMap; + +public class LC_242_valid_anagram { -class Solution { public boolean isAnagram(String s, String t) { //Brute force //#1. sort, compare one by one diff --git a/Week02/LC_94_144_590_429-tree-traversal.java b/Week02/LC_94_144_590_429-tree-traversal.java index 52c3f0666..63e3cd57b 100644 --- a/Week02/LC_94_144_590_429-tree-traversal.java +++ b/Week02/LC_94_144_590_429-tree-traversal.java @@ -9,9 +9,9 @@ class BinanryTree_Traversal { * 根节点、左孩子和右孩子的相对顺序被细分为前序遍历,中序遍历和后序遍历。 *前序(144)~中序(94)~后序(145)遍历可以看成三个时间点 - 前序遍历是在访问左子树之前,对父结点进行操作,也就是在左结点出栈前(!!!出栈即进入以左结点为根的左子树!!!),对父节点do something~ - 中序遍历是在访问左子树之后,右子树之前,对父结点进行操作,即左结点(代表以左结点为根的子树)出栈后,右结点出栈前,对父节点do something~ - 后序遍历是在访问左子树,右子树之后,对父结点进行操作,即左右结点都出栈后,对父节点do something~ + 前序遍历是在访问左子树之前,对父结点进行操作,也就是在左结点出栈前(!!!出栈即进入以左结点为根的左子树!!!),对父节点do something~ + 中序遍历是在访问左子树之后,右子树之前,对父结点进行操作,即左结点(代表以左结点为根的子树)出栈后,右结点出栈前,对父节点do something~ + 后序遍历是在访问左子树,右子树之后,对父结点进行操作,即左右结点都出栈后,对父节点do something~ */ //144. 二叉树的前序遍历: 从根节点开始,每次迭代弹出当前栈顶元素,并将其孩子节点压入栈中,先压右孩子再压左孩子。 public List preorder(TreeNode root) { From 615fcd8981876ef44839c3248279f1713c2d03ba Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Tue, 16 Jun 2020 22:19:17 -0400 Subject: [PATCH 027/105] Week02 rename file name make project can be compiled --- Week01/LC42_trapping-rain-water.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Week01/LC42_trapping-rain-water.md b/Week01/LC42_trapping-rain-water.md index 769d08bb9..d91eeeb86 100644 --- a/Week01/LC42_trapping-rain-water.md +++ b/Week01/LC42_trapping-rain-water.md @@ -1,5 +1,8 @@ class Solution { + //两头逼近,以矮的那头为计算高度,向中间逼近,与11. 盛最多水的容器 相似 + + public int trap(int[] height) { int ans = 0; int len = height.length; From 94bf5c1bbe08c55b333e2bc4fb7000cedf2e7cab Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Tue, 16 Jun 2020 22:24:46 -0400 Subject: [PATCH 028/105] Week02 rename file name make project can be compiled --- Week01/LC189_rotate-array.md | 3 +++ Week01/LC21_merge-two-sorted-lists.md | 4 +++- Week01/LC26_remove-duplicates-from-sorted-array.md | 3 +++ Week01/LC88_merge-sorted-array.md | 4 +++- Week01/LC_283_MoveZeroes.md | 2 ++ Week01/LC_641-design-circular-deque.md | 1 + Week01/LC_66-plus-one.md | 8 ++++++++ Week01/LeetCode_11.md | 3 +++ Week01/LeetCode_15.md | 3 +++ 9 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Week01/LC189_rotate-array.md b/Week01/LC189_rotate-array.md index eec5f1e72..813cde26a 100644 --- a/Week01/LC189_rotate-array.md +++ b/Week01/LC189_rotate-array.md @@ -1,6 +1,9 @@ class Solution { + + //move k times for all elements - O(k^n) + public void rotate(int[] nums, int k) { int length = nums.length; for(int i=0;i=0;i--){ diff --git a/Week01/LeetCode_11.md b/Week01/LeetCode_11.md index 9ed7ead9e..96824c7e6 100644 --- a/Week01/LeetCode_11.md +++ b/Week01/LeetCode_11.md @@ -1,5 +1,8 @@ class Solution { + + //11. 盛最多水的容器 + public int maxArea(int[] height) { int len = height.length; diff --git a/Week01/LeetCode_15.md b/Week01/LeetCode_15.md index 0e689d336..ed0e4cf6d 100644 --- a/Week01/LeetCode_15.md +++ b/Week01/LeetCode_15.md @@ -1,5 +1,8 @@ public class LeetCode_15 { + + //15. 三数之和 + public List> threeSum(int[] nums) { List> result = new ArrayList<>(); int len = nums.length; From db43fb5b24a7b460bcfa05accdddb3fd8345dc5c Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Tue, 16 Jun 2020 22:26:12 -0400 Subject: [PATCH 029/105] Week02 rename file name make project can be compiled --- Week01/LC189_rotate-array.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Week01/LC189_rotate-array.md b/Week01/LC189_rotate-array.md index 813cde26a..ec7ca573f 100644 --- a/Week01/LC189_rotate-array.md +++ b/Week01/LC189_rotate-array.md @@ -1,7 +1,7 @@ class Solution { - + //Brute-force //move k times for all elements - O(k^n) public void rotate(int[] nums, int k) { From 120b4753e8702ad73812bf8a9157334559492eba Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 12:59:12 -0400 Subject: [PATCH 030/105] =?UTF-8?q?Week02=20HashMap=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 69 +++++++++++++++++++++ Week02/LC_264_ugly_number_ii.java | 19 ++++++ 2 files changed, 88 insertions(+) create mode 100644 "Week02/HashMap\346\200\273\347\273\223.md" create mode 100644 Week02/LC_264_ugly_number_ii.java diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" new file mode 100644 index 000000000..946689c00 --- /dev/null +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -0,0 +1,69 @@ +HashMap的内部存储结构 +Java中数据存储方式最底层的两种结构,一种是数组,另一种就是链表。 +数组的特点:连续空间,寻址迅速,但是在删除或者添加元素的时候需要有较大幅度的移动,所以查询速度快,增删较慢。 +链表的特点:由于空间不连续,寻址困难,增删元素只需修改指针,所以查询慢、增删快。 +综合这两者的优点,摒弃缺点,哈希表就诞生了,既满足了数据查找方面的特点,占用的空间也不大。 + +二、底层原理 +HashMap的实现主要用到了哈希表的链地址法。即使用数组+链表的方式实现。 +hashMap实现了Map接口,继承了AbstractMap类。其中Map接口定义了键映射到值的规则,AbstractMap类提供了Map接口的骨干实现。 +hashMap底层有一个entry数组(entry是hashMap的内部类,它包含了键key、值value、下一个节点next,以及hash值,这是非常重要的,正是由于Entry才构成了table数组的项为链表),数组上每一项都有一个链表,如果链表长度超过阀值( TREEIFY THRESHOLD==8),就把链表转成红黑树,链表长度低于6,就把红黑树转回链表 + +三、HashMap提供的三个构造函数: +1、HashMap():构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。 + +2、HashMap(int initialCapacity):构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。 + +3、HashMap(int initialCapacity, float loadFactor):构造一个带指定初始容量和加载因子的空 HashMap。 + +常量 +static final int DEFAULT_INITIAL_CAPACITY = 16; +初始容量:16 +static final int MAXIMUM_CAPACITY = 1 << 30; +最大容量:2的30次方 => 1073741824 +static final float DEFAULT_LOAD_FACTOR = 0.75f; +负载因子:75% + +** put(Object key,Object value)方法 +作用是存储一个键-值对 + + public V put(K key, V value) { + if (key == null) + return putForNullKey(value); + int hash = hash(key.hashCode()); + int i = indexFor(hash, table.length); + for (Entry e = table[i]; e != null; e = e.next) { + Object k; + if (e.hash == hash && ((k = e.key) == key || key.equals(k))) { + V oldValue = e.value; + e.value = value; + e.recordAccess(this); + return oldValue; + } + } + + modCount++; + addEntry(hash, key, value, i); + return null; + } + + 处理步骤如下: + (1)判断key是否为null,若为null,调用putForNullKey(value)处理。这个方法代码如下: + /** + * Offloaded version of put for null keys + */ + private V putForNullKey(V value) { + for (Entry e = table[0]; e != null; e = e.next) { + if (e.key == null) { + V oldValue = e.value; + e.value = value; + e.recordAccess(this); + return oldValue; + } + } + modCount++; + addEntry(0, null, value, 0); + return null; + } + + diff --git a/Week02/LC_264_ugly_number_ii.java b/Week02/LC_264_ugly_number_ii.java new file mode 100644 index 000000000..4f203fc56 --- /dev/null +++ b/Week02/LC_264_ugly_number_ii.java @@ -0,0 +1,19 @@ +package Week02; + +import java.util.HashMap; + +public class LC_264_ugly_number_ii { + + HashMap + public int nthUglyNumber(int n) { + if (n<=0) return 0; + int[] ugly = new int[n]; + ugly[0]=1; + int index2=0,index3=0,index5=0,i =1; + while(i Date: Wed, 17 Jun 2020 13:01:03 -0400 Subject: [PATCH 031/105] =?UTF-8?q?Week02=20HashMap=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" index 946689c00..f1169c187 100644 --- "a/Week02/HashMap\346\200\273\347\273\223.md" +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -1,15 +1,18 @@ -HashMap的内部存储结构 +一,HashMap的内部存储结构 + Java中数据存储方式最底层的两种结构,一种是数组,另一种就是链表。 数组的特点:连续空间,寻址迅速,但是在删除或者添加元素的时候需要有较大幅度的移动,所以查询速度快,增删较慢。 链表的特点:由于空间不连续,寻址困难,增删元素只需修改指针,所以查询慢、增删快。 综合这两者的优点,摒弃缺点,哈希表就诞生了,既满足了数据查找方面的特点,占用的空间也不大。 二、底层原理 + HashMap的实现主要用到了哈希表的链地址法。即使用数组+链表的方式实现。 hashMap实现了Map接口,继承了AbstractMap类。其中Map接口定义了键映射到值的规则,AbstractMap类提供了Map接口的骨干实现。 hashMap底层有一个entry数组(entry是hashMap的内部类,它包含了键key、值value、下一个节点next,以及hash值,这是非常重要的,正是由于Entry才构成了table数组的项为链表),数组上每一项都有一个链表,如果链表长度超过阀值( TREEIFY THRESHOLD==8),就把链表转成红黑树,链表长度低于6,就把红黑树转回链表 三、HashMap提供的三个构造函数: + 1、HashMap():构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。 2、HashMap(int initialCapacity):构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。 From ceb0fd402e5349a843d8253e86788f4e0ad8040a Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 13:02:26 -0400 Subject: [PATCH 032/105] =?UTF-8?q?Week02=20HashMap=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" index f1169c187..eb8f427cc 100644 --- "a/Week02/HashMap\346\200\273\347\273\223.md" +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -13,11 +13,14 @@ hashMap底层有一个entry数组(entry是hashMap的内部类,它包含了键k 三、HashMap提供的三个构造函数: -1、HashMap():构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。 +1、HashMap(): +构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。 -2、HashMap(int initialCapacity):构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。 +2、HashMap(int initialCapacity): +构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。 -3、HashMap(int initialCapacity, float loadFactor):构造一个带指定初始容量和加载因子的空 HashMap。 +3、HashMap(int initialCapacity, float loadFactor): +构造一个带指定初始容量和加载因子的空 HashMap。 常量 static final int DEFAULT_INITIAL_CAPACITY = 16; @@ -27,7 +30,8 @@ static final int MAXIMUM_CAPACITY = 1 << 30; static final float DEFAULT_LOAD_FACTOR = 0.75f; 负载因子:75% -** put(Object key,Object value)方法 +** put(Object key,Object value)方法: + 作用是存储一个键-值对 public V put(K key, V value) { @@ -50,7 +54,7 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f; return null; } - 处理步骤如下: + 处理步骤如下:
(1)判断key是否为null,若为null,调用putForNullKey(value)处理。这个方法代码如下: /** * Offloaded version of put for null keys From 729663900d8011502f26fba5d9aed78fb7da504e Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 13:03:23 -0400 Subject: [PATCH 033/105] =?UTF-8?q?Week02=20HashMap=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" index eb8f427cc..5d809e1be 100644 --- "a/Week02/HashMap\346\200\273\347\273\223.md" +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -22,17 +22,17 @@ hashMap底层有一个entry数组(entry是hashMap的内部类,它包含了键k 3、HashMap(int initialCapacity, float loadFactor): 构造一个带指定初始容量和加载因子的空 HashMap。 -常量 -static final int DEFAULT_INITIAL_CAPACITY = 16; -初始容量:16 -static final int MAXIMUM_CAPACITY = 1 << 30; -最大容量:2的30次方 => 1073741824 -static final float DEFAULT_LOAD_FACTOR = 0.75f; -负载因子:75% +常量
+static final int DEFAULT_INITIAL_CAPACITY = 16;
+初始容量:16
+static final int MAXIMUM_CAPACITY = 1 << 30;
+最大容量:2的30次方 => 1073741824
+static final float DEFAULT_LOAD_FACTOR = 0.75f;
+负载因子:75%
** put(Object key,Object value)方法: -作用是存储一个键-值对 +作用是存储一个键-值对
public V put(K key, V value) { if (key == null) From 5f917de9e865792b1a199baaf8e25627784ad219 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 13:07:51 -0400 Subject: [PATCH 034/105] =?UTF-8?q?Week02=20HashMap=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 76 +++++++++++++++++---- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" index 5d809e1be..3eb428656 100644 --- "a/Week02/HashMap\346\200\273\347\273\223.md" +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -1,26 +1,27 @@ 一,HashMap的内部存储结构 -Java中数据存储方式最底层的两种结构,一种是数组,另一种就是链表。 -数组的特点:连续空间,寻址迅速,但是在删除或者添加元素的时候需要有较大幅度的移动,所以查询速度快,增删较慢。 -链表的特点:由于空间不连续,寻址困难,增删元素只需修改指针,所以查询慢、增删快。 -综合这两者的优点,摒弃缺点,哈希表就诞生了,既满足了数据查找方面的特点,占用的空间也不大。 +Java中数据存储方式最底层的两种结构,一种是数组,另一种就是链表。
+数组的特点:连续空间,寻址迅速,但是在删除或者添加元素的时候需要有较大幅度的移动,所以查询速度快,增删较慢。
+链表的特点:由于空间不连续,寻址困难,增删元素只需修改指针,所以查询慢、增删快。
+综合这两者的优点,摒弃缺点,哈希表就诞生了,既满足了数据查找方面的特点,占用的空间也不大。
二、底层原理 -HashMap的实现主要用到了哈希表的链地址法。即使用数组+链表的方式实现。 -hashMap实现了Map接口,继承了AbstractMap类。其中Map接口定义了键映射到值的规则,AbstractMap类提供了Map接口的骨干实现。 -hashMap底层有一个entry数组(entry是hashMap的内部类,它包含了键key、值value、下一个节点next,以及hash值,这是非常重要的,正是由于Entry才构成了table数组的项为链表),数组上每一项都有一个链表,如果链表长度超过阀值( TREEIFY THRESHOLD==8),就把链表转成红黑树,链表长度低于6,就把红黑树转回链表 +HashMap的实现主要用到了哈希表的链地址法。即使用数组+链表的方式实现。
+hashMap实现了Map接口,继承了AbstractMap类。其中Map接口定义了键映射到值的规则,AbstractMap类提供了Map接口的骨干实现。
+hashMap底层有一个entry数组(entry是hashMap的内部类,它包含了键key、值value、下一个节点next,以及hash值,
+正是由于Entry才构成了table数组的项为链表),数组上每一项都有一个链表,如果链表长度超过阀值( TREEIFY THRESHOLD==8),就把链表转成红黑树,链表长度低于6,就把红黑树转回链表 三、HashMap提供的三个构造函数: -1、HashMap(): +1、HashMap():
构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。 -2、HashMap(int initialCapacity): +2、HashMap(int initialCapacity):
构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。 -3、HashMap(int initialCapacity, float loadFactor): -构造一个带指定初始容量和加载因子的空 HashMap。 +3、HashMap(int initialCapacity, float loadFactor):
+构造一个带指定初始容量和加载因子的空 HashMap。
常量
static final int DEFAULT_INITIAL_CAPACITY = 16;
@@ -55,7 +56,7 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
} 处理步骤如下:
- (1)判断key是否为null,若为null,调用putForNullKey(value)处理。这个方法代码如下: + (1)判断key是否为null,若为null,调用putForNullKey(value)处理。这个方法代码如下:
/** * Offloaded version of put for null keys */ @@ -72,5 +73,56 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
addEntry(0, null, value, 0); return null; } +
+从代码可以看出,如果key为null的值,默认就存储到table[0]开头的链表了。然后遍历table[0]的链表的每个节点Entry, +如果发现其中存在节点Entry的key为null,就替换新的value,然后返回旧的value, +如果没发现key等于null的节点Entry,就增加新的节点。
+(2)先计算key的hashcode,在使用计算的结果二次hash,使用indexFor(hash, table.length)方法找到Entry数组的索引i的位置。
+ +(3)接着遍历以table[i]为头结点的链表,如果发现已经存在节点的hash、key值与条件相同时, +将该节点的value值替换为新的value值,然后返回旧的value值。
+ +(4)如果未找到hash、key值均相同的节点,则调用addEntry方法增加新的节点(头插法)。代码如下:
+ + void addEntry(int hash, K key, V value, int bucketIndex) { + Entry e = table[bucketIndex]; + table[bucketIndex] = new Entry(hash, key, value, e); + if (size++ >= threshold) + resize(2 * table.length); + } +
+ +**get(Object key)方法
+ +作用是根据键来获取值
+ + public V get(Object key) { + if (key == null) + return getForNullKey(); + int hash = hash(key.hashCode()); + for (Entry e = table[indexFor(hash, table.length)]; + e != null; + e = e.next) { + Object k; + if (e.hash == hash && ((k = e.key) == key || key.equals(k)))//-------------------1---------------- + return e.value; + } + return null; + } +
+处理步骤如下:
+(1)当key为null时,调用getForNullKey(),它的源码如下:
+ + private V getForNullKey() { + for (Entry e = table[0]; e != null; e = e.next) { + if (e.key == null) + return e.value; + } + return null; + } +返回table[0]开头的链表的键为null的节点的值
+ +(2)当键不为null时,依然计算hash值,然后找到具体在哪个table[indexFor(hash, table.length)] +节点开头的链表中,遍历此链表查找是否存在搜索条件中的key值,返回其value。若没有符合条件的key值,返回null。
From e4710aa06bf25275cb094873c81de932873e94c8 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 13:10:03 -0400 Subject: [PATCH 035/105] =?UTF-8?q?Week02=20HashMap=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 4 ++++ 1 file changed, 4 insertions(+) diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" index 3eb428656..1b013f160 100644 --- "a/Week02/HashMap\346\200\273\347\273\223.md" +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -57,6 +57,7 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
处理步骤如下:
(1)判断key是否为null,若为null,调用putForNullKey(value)处理。这个方法代码如下:
+ /** * Offloaded version of put for null keys */ @@ -74,6 +75,7 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
return null; }
+ 从代码可以看出,如果key为null的值,默认就存储到table[0]开头的链表了。然后遍历table[0]的链表的每个节点Entry, 如果发现其中存在节点Entry的key为null,就替换新的value,然后返回旧的value, 如果没发现key等于null的节点Entry,就增加新的节点。
@@ -112,6 +114,7 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
}
处理步骤如下:
+ (1)当key为null时,调用getForNullKey(),它的源码如下:
private V getForNullKey() { @@ -121,6 +124,7 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
} return null; } + 返回table[0]开头的链表的键为null的节点的值
(2)当键不为null时,依然计算hash值,然后找到具体在哪个table[indexFor(hash, table.length)] From d34b23a28c4ac1cbdb82569260e4ac1e57d46ab6 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 13:11:43 -0400 Subject: [PATCH 036/105] =?UTF-8?q?Week02=20HashMap=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" index 1b013f160..a4f489b38 100644 --- "a/Week02/HashMap\346\200\273\347\273\223.md" +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -74,7 +74,7 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
addEntry(0, null, value, 0); return null; } -
+ 从代码可以看出,如果key为null的值,默认就存储到table[0]开头的链表了。然后遍历table[0]的链表的每个节点Entry, 如果发现其中存在节点Entry的key为null,就替换新的value,然后返回旧的value, @@ -93,9 +93,9 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
if (size++ >= threshold) resize(2 * table.length); } -
+ -**get(Object key)方法
+**get(Object key)方法: 作用是根据键来获取值
From f0281cc6e0b852d6182529c0b779cd2633503f87 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 13:12:28 -0400 Subject: [PATCH 037/105] =?UTF-8?q?Week02=20HashMap=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" index a4f489b38..98ccf9b4f 100644 --- "a/Week02/HashMap\346\200\273\347\273\223.md" +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -112,9 +112,9 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
} return null; } -
+ + 处理步骤如下:
- (1)当key为null时,调用getForNullKey(),它的源码如下:
private V getForNullKey() { From 74df1d11e7e5e769d75e94c3bb0ef45bbdac52e9 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 13:15:39 -0400 Subject: [PATCH 038/105] =?UTF-8?q?Week02=20HashMap=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 27 +++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" index 98ccf9b4f..466239818 100644 --- "a/Week02/HashMap\346\200\273\347\273\223.md" +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -130,3 +130,30 @@ static final float DEFAULT_LOAD_FACTOR = 0.75f;
(2)当键不为null时,依然计算hash值,然后找到具体在哪个table[indexFor(hash, table.length)] 节点开头的链表中,遍历此链表查找是否存在搜索条件中的key值,返回其value。若没有符合条件的key值,返回null。
+ +***HashMap常考问题总结
+ +最后补充一些面试时候常问到的一些问题总结。 + +(1)HashMap和HashTable的区别?
+ +HashMap是非线程安全的,HashTable是线程安全的
+HashMap的键和值都允许有null值存在,而HashTable则不行
+因为线程安全的问题,HashMap效率比HashTable的要高
+哈希值的使用不同,HashMap要根据hashCode二次计算得到hash值,而HashTable直接使用对象的hashCode
+继承的父类不同,HashMap继承自AbstractMap,而HashTable继承自Dictionary
+ +(2)HashMap中的键可以是任何对象或数据类型吗?
+ +可以为null,但是不能为可变对象。如果为可变对象的话,对象中的属性改变则对象的hashCode也进行了相应的改变,导致下次无法查找到已存在Map中的数据。 +如果可变对象在HashMap中被当做键,那么就要小心在它的属性改变时,不要改变它的hashCode。只要保证成员变量的改变不会相应改变其hashCode即可。 +
+(3)HashTable如何实现线程安全?
+ +实现原理是在对应的方法上添加了synchronized关键字进行修饰,由于在执行此方法时需要获得对象锁, +因此执行起来比较慢。如果想实现线程安全的HashMap的话,推荐使用ConcurrentHashMap。
+ + +参考资料: +链接:https://www.jianshu.com/p/2f50d21dbfdc + From 0a48737253f5d7f38f8ba7c56f44d7cf6d3040fb Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 14:33:46 -0400 Subject: [PATCH 039/105] =?UTF-8?q?Week02=20264.=20=E4=B8=91=E6=95=B0=20II?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Week02/HashMap\346\200\273\347\273\223.md" | 2 ++ Week02/LC_264_ugly_number_ii.java | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git "a/Week02/HashMap\346\200\273\347\273\223.md" "b/Week02/HashMap\346\200\273\347\273\223.md" index 466239818..8276e2b06 100644 --- "a/Week02/HashMap\346\200\273\347\273\223.md" +++ "b/Week02/HashMap\346\200\273\347\273\223.md" @@ -1,6 +1,7 @@ 一,HashMap的内部存储结构 Java中数据存储方式最底层的两种结构,一种是数组,另一种就是链表。
+ 数组的特点:连续空间,寻址迅速,但是在删除或者添加元素的时候需要有较大幅度的移动,所以查询速度快,增删较慢。
链表的特点:由于空间不连续,寻址困难,增删元素只需修改指针,所以查询慢、增删快。
综合这两者的优点,摒弃缺点,哈希表就诞生了,既满足了数据查找方面的特点,占用的空间也不大。
@@ -12,6 +13,7 @@ hashMap实现了Map接口,继承了AbstractMap类。其中Map接口定义了 hashMap底层有一个entry数组(entry是hashMap的内部类,它包含了键key、值value、下一个节点next,以及hash值,
正是由于Entry才构成了table数组的项为链表),数组上每一项都有一个链表,如果链表长度超过阀值( TREEIFY THRESHOLD==8),就把链表转成红黑树,链表长度低于6,就把红黑树转回链表 +JDK 1.7 有源码分析
三、HashMap提供的三个构造函数: 1、HashMap():
diff --git a/Week02/LC_264_ugly_number_ii.java b/Week02/LC_264_ugly_number_ii.java index 4f203fc56..5fa07e183 100644 --- a/Week02/LC_264_ugly_number_ii.java +++ b/Week02/LC_264_ugly_number_ii.java @@ -4,14 +4,18 @@ public class LC_264_ugly_number_ii { - HashMap public int nthUglyNumber(int n) { if (n<=0) return 0; int[] ugly = new int[n]; ugly[0]=1; - int index2=0,index3=0,index5=0,i =1; + int index1=0,index2=0,index3=0,i =1; while(i Date: Wed, 17 Jun 2020 14:40:13 -0400 Subject: [PATCH 040/105] =?UTF-8?q?Week02=20264.=20=E4=B8=91=E6=95=B0=20II?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week02/LC_264_ugly_number_ii.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Week02/LC_264_ugly_number_ii.java b/Week02/LC_264_ugly_number_ii.java index 5fa07e183..80b934bf9 100644 --- a/Week02/LC_264_ugly_number_ii.java +++ b/Week02/LC_264_ugly_number_ii.java @@ -3,7 +3,16 @@ import java.util.HashMap; public class LC_264_ugly_number_ii { +/* +* 一开始,丑数只有{1},1可以同2,3,5相乘,取最小的1×2=2添加到丑数序列中。 +现在丑数中有{1,2},在上一步中,1已经同2相乘过了,所以今后没必要再比较1×2了,我们说1失去了同2相乘的资格。 + +现在1有与3,5相乘的资格,2有与2,3,5相乘的资格,但是2×3和2×5是没必要比较的,因为有比它更小的1可以同3,5相乘,所以我们只需要比较1×3,1×5,2×2。 + +依此类推,每次我们都分别比较有资格同2,3,5相乘的最小丑数,选择最小的那个作为下一个丑数,假设选择到的这个丑数是同i(i=2,3,5)相乘得到的,所以它失去了同i相乘的资格,把对应的pi++,让pi指向下一个丑数即可。 + +* */ public int nthUglyNumber(int n) { if (n<=0) return 0; int[] ugly = new int[n]; From a104b07d5211fe3e76191d38068bafa617421500 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 16:45:08 -0400 Subject: [PATCH 041/105] =?UTF-8?q?Week02=20347.=20=E5=89=8D=20K=20?= =?UTF-8?q?=E4=B8=AA=E9=AB=98=E9=A2=91=E5=85=83=E7=B4=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week02/LC_347_top_k_frequent_elements.java | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Week02/LC_347_top_k_frequent_elements.java diff --git a/Week02/LC_347_top_k_frequent_elements.java b/Week02/LC_347_top_k_frequent_elements.java new file mode 100644 index 000000000..ad45fd35c --- /dev/null +++ b/Week02/LC_347_top_k_frequent_elements.java @@ -0,0 +1,49 @@ +package Week02; + +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; +import java.util.PriorityQueue; + +public class LC_347_top_k_frequent_elements { + //using HashMap to keep frequent of all elements + //using a heap to keep top K frequent from hashmap entry + public static int[] topKFrequent(int[] nums, int k) { + if (k==0){ + return new int[0]; + } + HashMap map = new HashMap(); + for (int n : nums){ + map.put(n,map.getOrDefault(n,0)+1) ; + } + + PriorityQueue> heap = new PriorityQueue<>(new Comparator>() { + @Override + public int compare(Map.Entry a, Map.Entry b) { + return a.getValue() - b.getValue(); + } + }); + + for (Map.Entry e: map.entrySet()){ + heap.add(e); + if (heap.size()>k){ + heap.poll(); + } + } + + int[] topK = new int[k]; + for (int i = k-1;i>=0;i--){ + Map.Entry e = heap.poll(); + if (e == null) break; + topK[i] = (Integer) e.getKey(); + } + return topK; + } + + + public static void main(String[] args) { + int[] nums = new int[]{4,4,4,5,5,6}; + int k =2; + int[] topK = topKFrequent(nums,k); + } +} From 6bb441b3132ce5ab32186b072d8296c3e06e31dc Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 17 Jun 2020 16:52:26 -0400 Subject: [PATCH 042/105] =?UTF-8?q?Week02=20347.=20=E5=89=8D=20K=20?= =?UTF-8?q?=E4=B8=AA=E9=AB=98=E9=A2=91=E5=85=83=E7=B4=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week02/LC_347_top_k_frequent_elements.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Week02/LC_347_top_k_frequent_elements.java b/Week02/LC_347_top_k_frequent_elements.java index ad45fd35c..dc6cc87ca 100644 --- a/Week02/LC_347_top_k_frequent_elements.java +++ b/Week02/LC_347_top_k_frequent_elements.java @@ -7,7 +7,7 @@ public class LC_347_top_k_frequent_elements { //using HashMap to keep frequent of all elements - //using a heap to keep top K frequent from hashmap entry + //using a 最小堆(min heap) to keep top K frequent from hashmap entry public static int[] topKFrequent(int[] nums, int k) { if (k==0){ return new int[0]; From 8bd0c7f45a860f9231a11c156ac9c5b6a0707055 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Thu, 18 Jun 2020 20:43:24 -0400 Subject: [PATCH 043/105] =?UTF-8?q?Week02=20239.=20=E6=BB=91=E5=8A=A8?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E6=9C=80=E5=A4=A7=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 3 ++ Week02/LC_239_sliding_window_maximum.java | 53 +++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 Week02/LC_239_sliding_window_maximum.java diff --git a/.idea/.gitignore b/.idea/.gitignore index 6efbc65c6..54a8dcc64 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -2,3 +2,6 @@ /workspace.xml # Project exclude paths /. + +# Project exclude paths +/. \ No newline at end of file diff --git a/Week02/LC_239_sliding_window_maximum.java b/Week02/LC_239_sliding_window_maximum.java new file mode 100644 index 000000000..641e78e96 --- /dev/null +++ b/Week02/LC_239_sliding_window_maximum.java @@ -0,0 +1,53 @@ +package Week02; + +import java.util.ArrayDeque; +import java.util.Deque; + +public class LC_239_sliding_window_maximum { + /* + * 单调栈/队列(Monotonous Stack/Queue) 要求栈上元素只能单调递减,即[5,4,3,1] + * 栈顶元素是窗口的最大值。但是随着窗口移动,栈顶需要退出窗口,所以,题解在维护单调栈的时候用的是元素下标,而非元素实际的值 + * 这题中Queue只存元素下标! + * 当新元素进Queue时,从最后往前比,如果比它大把该下标从Queue删除,最后加入新元素下标 + * 每个元素要历遍一次,在Queue删除一个,Queue 和nums再读一次,所有是O(4n) = Q(n) * + * */ + public int[] maxSlidingWindow(int[] nums, int k) { + int lo = 0, hi = 0; + int len = nums.length; + int ans[] = new int[len - k + 1]; + Deque queue = new ArrayDeque<>(); + + while (hi < len) { + if (hi - lo < k) { + addQueue(queue, nums, hi); + hi++; + } else { + ans[lo] = nums[queue.getFirst()]; + lo++; + } + } + //only last k of elements in queue, we need to get the max value + ans[lo] = nums[queue.getFirst()]; + return ans; + } + + //queue 只存数组下标,每次进queue,从后比较其他下标的值,如果比它小,扔掉。最后加入该下标。 + //queue 允许超过k个元素,因为我们只关心最大值 + private void addQueue(Deque q, int[] nums, int hi) { + while (!q.isEmpty() && nums[q.getLast()] < nums[hi]) { + q.removeLast(); + } + q.addLast(hi); + } + + + public static void main(String[] args) { + LC_239_sliding_window_maximum solution = new LC_239_sliding_window_maximum(); + int[] nums = new int[]{1,3,-1,-3,5,3,6,7}; + int k =3; + int[] ans = solution.maxSlidingWindow(nums,3); + + } +} + + From 6161f54feb24ff6f01e653933a4a6d647206df18 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Fri, 19 Jun 2020 15:10:52 -0400 Subject: [PATCH 044/105] =?UTF-8?q?Week02=2049.=20=E5=AD=97=E6=AF=8D?= =?UTF-8?q?=E5=BC=82=E4=BD=8D=E8=AF=8D=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week02/LC_239_sliding_window_maximum.java | 13 +++-- Week02/LC_49_Group_anagrams.java | 68 +++++++++++++++++++++++ 2 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 Week02/LC_49_Group_anagrams.java diff --git a/Week02/LC_239_sliding_window_maximum.java b/Week02/LC_239_sliding_window_maximum.java index 641e78e96..4bf0fb645 100644 --- a/Week02/LC_239_sliding_window_maximum.java +++ b/Week02/LC_239_sliding_window_maximum.java @@ -23,6 +23,10 @@ public int[] maxSlidingWindow(int[] nums, int k) { hi++; } else { ans[lo] = nums[queue.getFirst()]; + //queue顶元素是窗口的最后一个值,queue从queue中移除顶元素 + if (queue.getFirst() == lo) { + queue.removeFirst(); + } lo++; } } @@ -31,6 +35,7 @@ public int[] maxSlidingWindow(int[] nums, int k) { return ans; } + // monotonous queue //queue 只存数组下标,每次进queue,从后比较其他下标的值,如果比它小,扔掉。最后加入该下标。 //queue 允许超过k个元素,因为我们只关心最大值 private void addQueue(Deque q, int[] nums, int hi) { @@ -40,12 +45,12 @@ private void addQueue(Deque q, int[] nums, int hi) { q.addLast(hi); } - +//----------------------test-------------// public static void main(String[] args) { LC_239_sliding_window_maximum solution = new LC_239_sliding_window_maximum(); - int[] nums = new int[]{1,3,-1,-3,5,3,6,7}; - int k =3; - int[] ans = solution.maxSlidingWindow(nums,3); + int[] nums = new int[]{1,-1}; + int k =1; + int[] ans = solution.maxSlidingWindow(nums,k); } } diff --git a/Week02/LC_49_Group_anagrams.java b/Week02/LC_49_Group_anagrams.java new file mode 100644 index 000000000..b6ffce7e8 --- /dev/null +++ b/Week02/LC_49_Group_anagrams.java @@ -0,0 +1,68 @@ +package Week02; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +public class LC_49_Group_anagrams { + + //for each element, convert to char list->sort->convert back to String + //use this one as key in a HashMap, value is the List for output + // loop through strs, if str is in the hashmap, get the value add str to the list + public List> groupAnagrams(String[] strs) { + List> res = new ArrayList<>(); + HashMap> map = new HashMap<>(); + for (String s : strs){ + char[] c = s.toCharArray(); + Arrays.sort(c); + String key = String.valueOf(c);//c.toString(); + if (!map.containsKey(key)){ + map.put(key, new ArrayList<>()); + } + map.get(key).add(s); + + List l = map.get(key); + l.add(s); + map.put(key,l); + } + +// for (List v : map.values()){ +// res.add(v); +// } +// return res; + return new ArrayList(map.values()); + } + + /* + * Solution 2: convert char to int + * make a char[26] to keep all char counts. + * e.g. "aabccee" will be "2*1*2*0*2*0...",need a separator to identify how count for each chars + * dont need to sort here, so save logN for complexity + * */ + + public List> groupAnagrams_2 (String[] strs) { + HashMap> map = new HashMap<>(); + + for (String s : strs) { + char[] cs = s.toCharArray(); + int[] count = new int[26]; + StringBuilder sb = new StringBuilder(); + for (char c : cs){ + count[c-'a']++; + } + + for (int i=0;i<26;i++){ + sb.append(count[i]); + sb.append("*"); + } + //key will be like "2*1*2*0*2*0..." + String key = sb.toString(); + if (!map.containsKey(key)){ + map.put(key,new ArrayList()); + } + map.get(key).add(s); + } + return new ArrayList<>(map.values()); + } +} From a1dca4126ed36b50522b4064905c3038148a1c88 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Fri, 19 Jun 2020 17:00:23 -0400 Subject: [PATCH 045/105] =?UTF-8?q?Week02=20200.=20=E5=B2=9B=E5=B1=BF?= =?UTF-8?q?=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week02/LC_200_number_of_islands.java | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Week02/LC_200_number_of_islands.java diff --git a/Week02/LC_200_number_of_islands.java b/Week02/LC_200_number_of_islands.java new file mode 100644 index 000000000..2bee68ae0 --- /dev/null +++ b/Week02/LC_200_number_of_islands.java @@ -0,0 +1,44 @@ +package Week02; + +public class LC_200_number_of_islands { +/* +* 「陆地沉没方法」,即遍历完一个陆地格子就让陆地「沉没」为海洋。 +* 这种方法看似很巧妙,但实际上有很大隐患,因为这样我们就无法区分「海洋格子」和「已遍历过的陆地格子」了。 +* 如果题目更复杂一点,这很容易出 bug。 +* */ + public int numIslands(char[][] grid) { + int nr = grid.length; + int nc = grid[0].length; + int ans = 0; + for (int i=0;i Date: Sat, 20 Jun 2020 21:46:59 -0400 Subject: [PATCH 046/105] =?UTF-8?q?Week02=20200.=20=E5=B2=9B=E5=B1=BF?= =?UTF-8?q?=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week02/Amazon_Interview.java | 4 ++++ Week02/LC_200_number_of_islands.java | 3 +++ 2 files changed, 7 insertions(+) create mode 100644 Week02/Amazon_Interview.java diff --git a/Week02/Amazon_Interview.java b/Week02/Amazon_Interview.java new file mode 100644 index 000000000..973cc9282 --- /dev/null +++ b/Week02/Amazon_Interview.java @@ -0,0 +1,4 @@ +package Week02; + +public class Amazon_Interview { +} diff --git a/Week02/LC_200_number_of_islands.java b/Week02/LC_200_number_of_islands.java index 2bee68ae0..e4d828a51 100644 --- a/Week02/LC_200_number_of_islands.java +++ b/Week02/LC_200_number_of_islands.java @@ -7,6 +7,9 @@ public class LC_200_number_of_islands { * 如果题目更复杂一点,这很容易出 bug。 * */ public int numIslands(char[][] grid) { + if (grid == null || grid.length ==0 ){ + return 0; + } int nr = grid.length; int nc = grid[0].length; int ans = 0; From ca393b928b047e3039d58f687c4a79fbc755f557 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Tue, 23 Jun 2020 22:13:48 -0400 Subject: [PATCH 047/105] =?UTF-8?q?Week03=2078.=20=E5=AD=90=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 4 + .idea/leetcode/editor.xml | 16 +++ Week02/Amazon_Interview.java | 113 +++++++++++++++++++ Week02/LC_200_number_of_islands.java | 59 +++++++++- Week02/LC_347_top_k_frequent_elements.java | 6 +- Week02/LC_78_subsets.java | 35 ++++++ Week02/LC_94_144_590_429-tree-traversal.java | 28 +++++ Week03/LC111_min_depth_b_tree.java | 60 ++++++++++ Week03/LC236_lowest_common_ancestor.java | 40 +++++++ Week03/NOTE.md | 24 +++- 10 files changed, 376 insertions(+), 9 deletions(-) create mode 100644 Week02/LC_78_subsets.java create mode 100644 Week03/LC111_min_depth_b_tree.java create mode 100644 Week03/LC236_lowest_common_ancestor.java diff --git a/.idea/.gitignore b/.idea/.gitignore index 54a8dcc64..841de4d97 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -3,5 +3,9 @@ # Project exclude paths /. +# Project exclude paths +/. +# Project exclude paths +/. # Project exclude paths /. \ No newline at end of file diff --git a/.idea/leetcode/editor.xml b/.idea/leetcode/editor.xml index 0d8d74c19..8f12a6c7a 100644 --- a/.idea/leetcode/editor.xml +++ b/.idea/leetcode/editor.xml @@ -83,6 +83,14 @@ + + + + + + @@ -115,6 +123,14 @@ + + + + + + diff --git a/Week02/Amazon_Interview.java b/Week02/Amazon_Interview.java index 973cc9282..cf8b19482 100644 --- a/Week02/Amazon_Interview.java +++ b/Week02/Amazon_Interview.java @@ -1,4 +1,117 @@ package Week02; +import java.util.Deque; +import java.util.LinkedList; + public class Amazon_Interview { + + //找到'0', 然后看前后左右要几次迭代才能发现'1'. + //记录所有这些次数,return 最大值 + int nr,nc; + int ans = -1; + public int daysOfUpdate(int rows, int columns, char[][] grid) { + + nr = grid.length; + nc = grid[0].length; + LinkedList list = new LinkedList<>(); + + for (int i=0;i queue = new LinkedList<>(); + // 用一个数保存两个数字!!(因为c0 && grid[x-1][y] == '1'){ + //search deeper + queue.addFirst((x-1)*nc+y); + grid[x-1][y] = '0'; + } + else if(x0 && grid[x][y-1] == '1'){ + grid[x][y-1] = '0'; + } + else if(y generateParenthesis(int n) { + List res = new ArrayList<>(); + + useStringBuilder(0,0,n,new StringBuilder(),res); + // generate(0,0,n,"", res); + // useStack(n,res); + return res; + } + + private void useStringBuilder(int left, int right, int n, StringBuilder sb, List res){ + + //terminator + if(left ==right && left == n){ + System.out.println(sb.toString()); + res.add(sb.toString()); + + } + //process current logic; + if (left res){ + Stack stack = new Stack<>(); + + stack.add(new Node(0, 0,"")); + + while(!stack.empty()){ + Node curr = stack.pop(); + if(curr.leftcurr.right){ + stack.push(new Node(curr.left, curr.right+1,curr.val+")")); + } + + if (curr.left == n && curr.right==n) { + System.out.println(curr.val); + res.add(curr.val); + } + } + } + + class Node{ + int left; + int right; + String val; + public Node(int l,int r, String s){ + left = l; + right = r; + val = s; + } + } + // Recusion + private void generate(int left, int right, int n, String sb, List res) { + System.out.println("left = "+left); + //terminator + if(left ==right && left == n){ + System.out.println(sb.toString()); + res.add(sb.toString()); + + } + //process curren logic; + if (left > groupAnagrams(String[] strs) { HashMap> map = new HashMap<>(); for (String s : strs){ char[] c = s.toCharArray(); + //this is the key Arrays.sort(c); String key = String.valueOf(c);//c.toString(); if (!map.containsKey(key)){ diff --git a/Week03/LC51_n_queens.java b/Week03/LC51_n_queens.java new file mode 100644 index 000000000..9d8024806 --- /dev/null +++ b/Week03/LC51_n_queens.java @@ -0,0 +1,125 @@ +package Week03; + +import java.util.*; + +public class LC51_n_queens { + + //检测主对角线或者副对角线,就是如果row+col值相同说明在相同主对角线上,row-col值相同,说明在同一副对角线上 + public List> solveNQueens(int n) { + List> res = new ArrayList<>(); + if (n <= 0) { + return res; + } + int[] nums = new int[n]; + for (int i=0;i cols = new HashSet<>(); + Set master = new HashSet<>(); + Set slaver = new HashSet<>(); + Stack temp = new Stack<>(); + backtrack(n,cols,master,slaver,temp,0,nums,res); + return res; + } + + private void backtrack(int n, Set cols, Set master, Set slaver, + Stack stack, int row,int[] nums,List> res) { + if (row ==n){ + List board = convert2board(stack, n); + res.add(board); + return; + } + // 针对每一列,尝试是否可以放置 + for (int i =0;i convert2board(Stack stack, int n) { + List board = new LinkedList<>(); + for (Integer num : stack) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < n; i++) { + if (i==num){ + sb.append("Q"); + } + else sb.append("."); + } +// sb.replace(num, num + 1, "Q"); + board.add(sb.toString()); + } + return board; + } + + /*------------------below is first approach, not--------------*/ + public List> solveNQueens_1(int n) { + List> res = new ArrayList<>(); + if (n<1) return res; + String[][] board = new String[n][n]; + + backtrack(0,n,board,res); + + return res; + } + + private void backtrack(int row,int n,String[][] board,List> res) { + if (row == n){ + res.add(charToString(board)); + return; + } + for (int col =0;col=0 && j=0 && j>=0; i--, j--){ + if (board[i][j] == "Q") return false; + } + } + return true; + } + + private static List charToString(String[][] array) { + List result = new ArrayList<>(); + for (String[] line : array) { + StringBuilder builder = new StringBuilder(); + for (String s: line){ + if (s == null) s="."; + builder.append(s); + } + result.add(builder.toString()); + } + return result; + } +} diff --git a/Week03/LC_17_Letter_combinations_of_phone.java b/Week03/LC_17_Letter_combinations_of_phone.java new file mode 100644 index 000000000..fef0c886e --- /dev/null +++ b/Week03/LC_17_Letter_combinations_of_phone.java @@ -0,0 +1,52 @@ +package Week03; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class LC_17_Letter_combinations_of_phone { + + //use a map to keep number->letter + //number of digits will be number of letter that choose for map + public static List letterCombinations(String digits) { + List res = new ArrayList<>(); + if (digits.length() == 0) return res; + + HashMap map = new HashMap(){{ + put("2", "abc"); + put("3", "def"); + put("4", "ghi"); + put("5", "jkl"); + put("6", "mno"); + put("7", "pqrs"); + put("8", "tuv"); + put("9", "wxyz"); + }}; + generate(res,digits,0,map,new StringBuilder()); + return res; + } + + private static void generate(List res, String digits, int level, HashMap map, StringBuilder s) { + if (level == digits.length()){ + res.add(s.toString()); + return; + } + //current process + String key = String.valueOf(digits.charAt(level)); + String letters = map.get(key); + + for (int i =0; i res =letterCombinations("23578235782357823578"); + System.out.println("Done!"); + } +} diff --git a/Week03/NOTE.md b/Week03/NOTE.md index b86aec5e9..71e6a40f7 100644 --- a/Week03/NOTE.md +++ b/Week03/NOTE.md @@ -58,3 +58,24 @@ ###回溯 每一层不断尝试,以获取可能的解 + 只需要思考 3 个问题: + 1、路径:也就是已经做出的选择。 + 2、选择列表:也就是你当前可以做的选择。 + 3、结束条件:也就是到达决策树底层,无法再做选择的条件。 + + 回溯模板: + + ``` + result = []; + public void backtrack(路径, 选择列表){ + if 满足结束条件: + result.add(路径); + return; + + for 选择 in 选择列表: + 做选择; + backtrack(路径, 选择列表); + 撤销选择; + } + ``` + 其核心就是 for 循环里面的递归,在递归调用之前「做选择」,在递归调用之后「撤销选择」 From f94a287008164f382b9cbc3c65e9f495de86c2ea Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Sat, 27 Jun 2020 11:56:57 -0400 Subject: [PATCH 056/105] =?UTF-8?q?Week03=2051.N=E7=9A=87=E5=90=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 5 ++ Week02/Amazon_Interview.java | 118 +++++++++++++---------------------- Week03/LC51_n_queens.java | 16 +++-- 3 files changed, 60 insertions(+), 79 deletions(-) diff --git a/.idea/.gitignore b/.idea/.gitignore index ad54c5650..1ea9df1bd 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -7,6 +7,11 @@ + +# Project exclude paths +/. +# Project exclude paths +/. # Project exclude paths /. # Project exclude paths diff --git a/Week02/Amazon_Interview.java b/Week02/Amazon_Interview.java index fce7ec59e..900e0f4bc 100644 --- a/Week02/Amazon_Interview.java +++ b/Week02/Amazon_Interview.java @@ -12,6 +12,9 @@ public class Amazon_Interview { int ans = -1; HashMap map = new HashMap(); public int daysOfUpdate(int rows, int columns, char[][] grid) { + if (rows <=0 || columns<=0) { + return ans; + } nr = rows; nc = columns; @@ -21,7 +24,9 @@ public int daysOfUpdate(int rows, int columns, char[][] grid) { for(int j = 0;j convert2board(Stack stack, int n) { /*------------------below is first approach, not--------------*/ public List> solveNQueens_1(int n) { List> res = new ArrayList<>(); - if (n<1) return res; + if (n<1) { + return res; + } String[][] board = new String[n][n]; backtrack(0,n,board,res); @@ -86,7 +90,9 @@ private void backtrack(int row,int n,String[][] board,List> res) { return; } for (int col =0;col charToString(String[][] array) { for (String[] line : array) { StringBuilder builder = new StringBuilder(); for (String s: line){ - if (s == null) s="."; + if (s == null) { + s="."; + } builder.append(s); } result.add(builder.toString()); From d4de6a7cb1244a71d71c134f01d806dd0430ef59 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Sat, 27 Jun 2020 13:25:56 -0400 Subject: [PATCH 057/105] =?UTF-8?q?Week03=2046.=20=E5=85=A8=E6=8E=92?= =?UTF-8?q?=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week03/LC46_permutations.java | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Week03/LC46_permutations.java diff --git a/Week03/LC46_permutations.java b/Week03/LC46_permutations.java new file mode 100644 index 000000000..747fff71a --- /dev/null +++ b/Week03/LC46_permutations.java @@ -0,0 +1,37 @@ +package Week03; + +import java.util.ArrayList; +import java.util.List; + +public class LC46_permutations { + int length; + public List> permute(int[] nums) { + List> res = new ArrayList<>(); + if (nums == null || nums.length ==0){ + return res; + } + length = nums.length; + List list = new ArrayList<>(); + boolean[] used = new boolean[length]; + dps(res,nums,list,used); + return res; + } + + private void dps(List> res, int[] nums, List list, boolean[] used){ + if (list.size() == length){ + res.add(new ArrayList(list)); + return; + } + //每次要用所有可能的数 + for (int i = 0;i Date: Sun, 28 Jun 2020 16:44:09 -0400 Subject: [PATCH 058/105] =?UTF-8?q?Week03=20105.=20=E4=BB=8E=E5=89=8D?= =?UTF-8?q?=E5=BA=8F=E4=B8=8E=E4=B8=AD=E5=BA=8F=E9=81=8D=E5=8E=86=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E6=9E=84=E9=80=A0=E4=BA=8C=E5=8F=89=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 5 + Week02/Amazon_Interview.java | 42 ++++++-- ...5_construct_binary_tree_from_preorder.java | 46 +++++++++ Week03/LC46_permutations.java | 77 ++++++++++++--- Week03/LC47_permutations_ii.java | 99 +++++++++++++++++++ Week03/NOTE.md | 10 ++ 6 files changed, 258 insertions(+), 21 deletions(-) create mode 100644 Week03/LC105_construct_binary_tree_from_preorder.java create mode 100644 Week03/LC47_permutations_ii.java diff --git a/.idea/.gitignore b/.idea/.gitignore index 1ea9df1bd..a1b08dbbc 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -8,6 +8,11 @@ + + + +# Project exclude paths +/. # Project exclude paths /. # Project exclude paths diff --git a/Week02/Amazon_Interview.java b/Week02/Amazon_Interview.java index 900e0f4bc..bd1f98d57 100644 --- a/Week02/Amazon_Interview.java +++ b/Week02/Amazon_Interview.java @@ -35,6 +35,24 @@ public int daysOfUpdate(int rows, int columns, char[][] grid) { } + private int search (char[][] grid,int r, int c,int level){ + + if (inArea(grid,r-level,c) && grid[r-level][c] == '1'){ + return level; + } + if (inArea(grid,r+level,c) && grid[r+level][c] == '1'){ + return level; + } + if (inArea(grid,r,c-level) && grid[r][c-level] == '1'){ + return level; + } + if (inArea(grid,r,c+level) && grid[r][c+level] == '1'){ + return level; + } + + return 0; + } + private int bfs(char[][] grid,int r, int c){ // System.out.println("r="+r+";c="+c+";level="+level); @@ -48,13 +66,15 @@ private int bfs(char[][] grid,int r, int c){ return Integer.MAX_VALUE; } // missing a condition to terminate - grid[r][c] = '2'; + grid[r][c] = '2'; + int c2 = bfs(grid, r, c + 1); + int r1 = bfs(grid, r - 1, c); + int c1 = bfs(grid, r, c - 1); int r2 = bfs(grid, r + 1, c); - int r1 = bfs(grid, r - 1, c); // clean up - grid[r][c] = '0'; + grid[r][c] = '0'; int minR = Math.min(r1, r2); int minC = Math.min(c1, c2); // if (minR<0) { @@ -96,19 +116,23 @@ class test{ public static void main(String[] args) { Amazon_Interview solution = new Amazon_Interview(); - char[][] grid = new char[4][5]; +// char[][] grid = new char[4][5]; // grid[0]= new char[]{'0', '0', '0', '0', '0'}; // grid[1]= new char[]{'0', '0', '0', '1', '0'}; // grid[2]= new char[]{'0', '0', '0', '0', '1'}; // grid[3]= new char[]{'0', '1', '0', '0', '0'}; + int row =2,col =4; + char[][] grid = new char[2][4]; + grid[0]= new char[]{'0', '0', '0', '0'}; + grid[1]= new char[]{'0', '0', '0', '1'}; - grid[0]= new char[]{'0', '0', '0', '0', '0'}; - grid[1]= new char[]{'0', '0', '0', '0', '0'}; - grid[2]= new char[]{'0', '0', '0', '0', '0'}; - grid[3]= new char[]{'0', '0', '0', '0', '1'}; +// grid[0]= new char[]{'0', '0', '0', '0', '0'}; +// grid[1]= new char[]{'0', '0', '0', '0', '0'}; +// grid[2]= new char[]{'0', '0', '0', '0', '0'}; +// grid[3]= new char[]{'0', '0', '0', '0', '1'}; - int res = solution.daysOfUpdate(4,5,grid); + int res = solution.daysOfUpdate(row,col,grid); System.out.println("res="+res); } } diff --git a/Week03/LC105_construct_binary_tree_from_preorder.java b/Week03/LC105_construct_binary_tree_from_preorder.java new file mode 100644 index 000000000..3c22ee10d --- /dev/null +++ b/Week03/LC105_construct_binary_tree_from_preorder.java @@ -0,0 +1,46 @@ +package Week03; + +import java.util.HashMap; + +public class LC105_construct_binary_tree_from_preorder { + + //1.pick up root value of sub_tre from preorder + //2.find the root value index in inorder arr (using HashMap to keep the value-index of inorder) + //3.假设根节点在中序遍历中索引为 index。从 in_left 到 index - 1 属于左子树,从 index + 1 到 in_right 属于右子树。 + //4.pre_idx must be globe value + + int pre_idx =0; + public TreeNode buildTree(int[] preorder, int[] inorder) { + + int length = preorder.length; + + HashMap in_map = new HashMap<>(); + for (int i=0;i in_map, int[]preorder){ + if (in_left>in_right){ + return null; + } + + int root_val = preorder[pre_idx]; + TreeNode root = new TreeNode(root_val); + int in_idx = in_map.get(root_val); + pre_idx++; + + root.left = dps(in_left,in_idx-1,in_map,preorder); + root.right = dps(in_idx+1,in_right,in_map,preorder); + return root; + } + + public class TreeNode { + int val; + TreeNode left; + TreeNode right; + TreeNode(int x) { val = x; } + } +} diff --git a/Week03/LC46_permutations.java b/Week03/LC46_permutations.java index 747fff71a..d3f3752c5 100644 --- a/Week03/LC46_permutations.java +++ b/Week03/LC46_permutations.java @@ -1,37 +1,90 @@ package Week03; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; + +class Solution { + /*Solution 2: + * 就是把数组排列完再放入结果 + * 以[1, 2|, 3] -> [1, 2, 3|], [3, 2, 1|], [1, 3, 2|]为例, + * '|'往后移动一位,得到[1, 2, 3|];[1, 2, 3|]中的3和1位置交换, + * 得到[3, 2, 1|];[1, 2, 3|]中的3和2交换位置,得到[1, 3, 2|]。 + * */ -public class LC46_permutations { - int length; public List> permute(int[] nums) { List> res = new ArrayList<>(); - if (nums == null || nums.length ==0){ + if (nums == null || nums.length == 0) { + return res; + } + // don't need to sort + Arrays.sort(nums); + backtrack(res, nums, 0); + return res; + } + + private void backtrack(List> res, int[] nums, int level) { + if (nums.length == level) { + res.add(Arrays.stream(nums).boxed().collect(Collectors.toList())); + return; + } + + backtrack(res, nums, level + 1); + + for (int i = 0; i < level; i++) { + swap(nums, i, level); + backtrack(res, nums, level + 1); + swap(nums, i, level); + } + return; + } + + public static void swap(int[] arr, int i, int j) { + arr[i] = (arr[i] + arr[j]) - (arr[j] = arr[i]); + } + + /*********************Solution 2:******************************************************************* + 取出不同的数放入结果 + + */ + int length; + + public List> permute_1(int[] nums) { + List> res = new ArrayList<>(); + if (nums == null || nums.length == 0) { return res; } length = nums.length; List list = new ArrayList<>(); boolean[] used = new boolean[length]; - dps(res,nums,list,used); + dps(res, nums, list, used); return res; } - private void dps(List> res, int[] nums, List list, boolean[] used){ - if (list.size() == length){ + private void dps(List> res, int[] nums, List list, boolean[] used) { + if (list.size() == length) { res.add(new ArrayList(list)); return; } - //每次要用所有可能的数 - for (int i = 0;i> res = solution.permute(nums); + } +} diff --git a/Week03/LC47_permutations_ii.java b/Week03/LC47_permutations_ii.java new file mode 100644 index 000000000..3276c8077 --- /dev/null +++ b/Week03/LC47_permutations_ii.java @@ -0,0 +1,99 @@ +package Week03; + +import java.util.*; +import java.util.stream.Collectors; + +public class LC47_permutations_ii { + + /* + * 先排序,有相同值跳过一个,把数组排列完再放入结果 + * */ + + public List> permuteUnique(int[] nums) { + List> res = new ArrayList<>(); + if (nums == null || nums.length == 0) { + return res; + } + Arrays.sort(nums); + backtrack(res, nums, 0); + return res; + } + + private void backtrack(List> res, int[] nums, int level) { + if (nums.length == level) { + res.add(Arrays.stream(nums).boxed().collect(Collectors.toList())); + return; + } + backtrack(res, nums, level + 1); + for (int i = 0; i < level; i++) { + //avoid duplicated,need to be break for the same value + if (nums[i] == nums[level]) { + break; + } + swap(nums, i, level); + backtrack(res, nums, level + 1); + swap(nums, i, level); + } + return; + } + + private void swap(int[] nums, int i, int j) { + // must be value of i assign to j first + nums[i] = (nums[i] + nums[j]) - (nums[j] = nums[i]); + } + +/*Solution2: + +Bruit force*/ + + int length; + + public List> permuteUnique_1(int[] nums) { + List> res = new ArrayList<>(); + if (nums == null || nums.length == 0) { + return res; + } + length = nums.length; + List list = new ArrayList<>(); + Set set = new HashSet<>(); + boolean[] used = new boolean[length]; + dps(res, nums, list, used, set); + return res; + } + + private void dps( + List> res, int[] nums, List list, boolean[] used, Set set) { + if (list.size() == length) { + StringBuilder sb = new StringBuilder(); + for (Integer i : list) { + sb.append(i); + sb.append("-"); + } + if (!set.contains(sb.toString())) { + res.add(new ArrayList(list)); + set.add(sb.toString()); + } + return; + } + + for (int i = 0; i < length; i++) { + if (!used[i]) { + list.add(nums[i]); + used[i] = true; + dps(res, nums, list, used, set); + used[i] = false; + list.remove(list.size() - 1); + } + } + } +} + + +class Test { + + public static void main(String[] args) { + int[] nums = new int[]{2, 2, 1, 1}; + LC47_permutations_ii solution = new LC47_permutations_ii(); + List> res = solution.permuteUnique(nums); + } +} diff --git a/Week03/NOTE.md b/Week03/NOTE.md index 71e6a40f7..1592ac5ad 100644 --- a/Week03/NOTE.md +++ b/Week03/NOTE.md @@ -79,3 +79,13 @@ } ``` 其核心就是 for 循环里面的递归,在递归调用之前「做选择」,在递归调用之后「撤销选择」 + + 列题:反转链表: + 这个BFS的讨论想和大家再重申一下 + 1. 初始化一个队列 + 2. 队列中先把第一个节点放进去,作为启动节点,不然后面没法while启动起来 + 3. 队列中出一个节点,处理,然后把它的所有子节点拿出来,依次放入队列中 + ### + 总结 + 1. 初始节点在循环外放进去 + 2. 处理节点逻辑和生成子节点逻辑放到循环内 From 8be6e398f850338f9297550061a96ff2249d04d4 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Mon, 29 Jun 2020 15:28:23 -0400 Subject: [PATCH 059/105] Week04 --- Week04/.NOTE_images/bfs-dfs.png | Bin 0 -> 113564 bytes Week04/NOTE.md | 35 +++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 Week04/.NOTE_images/bfs-dfs.png diff --git a/Week04/.NOTE_images/bfs-dfs.png b/Week04/.NOTE_images/bfs-dfs.png new file mode 100644 index 0000000000000000000000000000000000000000..996d339aa66dd1c51f56034cf2e3bd49380fb9e8 GIT binary patch literal 113564 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�(JURc*(XWkk7+3lcYLn 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

*=E{m^c#<=nKt2~3IX;y&Fo1_e6 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 z�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 QEpsFzp(tK0Y83o`016}FP5=M^ literal 0 HcmV?d00001 diff --git a/Week04/NOTE.md b/Week04/NOTE.md index 50de30414..b703dc448 100644 --- a/Week04/NOTE.md +++ b/Week04/NOTE.md @@ -1 +1,34 @@ -学习笔记 \ No newline at end of file +学习笔记 + +DFS 代码模板 +递归状态树的理解:dfs会马上进入到下一层,不用等到for循环,等dfs遇到return才会进入for循环下一个 +```$xslt +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 next_node not 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 + ... +``` + +![](.NOTE_images/bfs-dfs.png) \ No newline at end of file From cb75f4632886b4b368df7a3696d3fd6546ed9539 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Mon, 29 Jun 2020 15:31:38 -0400 Subject: [PATCH 060/105] Week04 --- Week04/.NOTE_images/bfs-dfs.png | Bin 113564 -> 83950 bytes Week04/NOTE.md | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Week04/.NOTE_images/bfs-dfs.png b/Week04/.NOTE_images/bfs-dfs.png index 996d339aa66dd1c51f56034cf2e3bd49380fb9e8..ef4faed9a7837d6cfefdded3d4a49236339ad53f 100644 GIT binary patch literal 83950 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%0A#95kKY=tv;! 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≪rN#yUu>HH)G66J(~gD7{-@rw3$Ssp{+r?tvb?MwOVQXUA!EY-RQlsG#UuU$ zl9&Vm=~^oIFH)G;aTvHN&_8-|xv^zq|A&dZte}6H_mm#ja#le2kAO)3OSC|)K3#BjPuv++N~lBu#vh2vFSvo2*3Q>h zt3F_gOCpRDl`dn}zjR{>;m59k+k|qTf7AR0boesuU-e=CVdwDtj$6x+nw%U86f4J? zY9Lis96V&YJ;UB=F|`^iR6GMhOYwO}(_RP@(iSR?iLUSZ7&b_bG_haKN;0*&LIDdhwJ0_+|QeA}Bi_ZjRT0^ST@RsM9^{*6$5w)lZ6x z`>h4+p7WcZZD+@jjpnX>j_K$od&8K1vv!T_IoTb&&yu@WQ(d}H=&2RwhLxMG^TSyG z$+@R<)sHW!O&beI!k)Im{(M|eRCRaXMedJ#s2_F>&6g}L3T)0J#e=5Z!*Z=Q8~UEg zpqSK=_A}W%D$YuPZeXWGz|P#Ya52_K z=OcZ8kzVz+15FkU(PxT;?W^*MME{1T?1#jQ@!N0P7jff~t81i7kYhYIgDjOjAVAg0 zM{{%IYiG=JI+$|1Bdi?K$UgO5YfO>b;gtEba_DH*omee<)QWpf_H^3Z%iqbnzj$@J z%15rzWt}hGKrQNL9ygAfmK-^dQOWE(n6L|+2xwt$6@(+$2H_#kQ)sK0b8CJWI%1`x zeM5;XgHDw4Ik!iY^}|4e@)x?5c5z&;Pt9ZZ^#+_J&=!M)E^mD|qP)B=L^ltR*4pkJ(u3rYJKXZW(}e}H(WM`SL_yJKZ73z z5mE6<{h0f1UMDy%5j{>ntMerFId)(!WZO9PXTmCRnZC<2!Eg-W8Pm0I!(=^|4wscu z{>lnE<{C-wdSP1U^0xXZMpjC^;?A%uKvW$>OX1=l1z{ULE-oYdNp4!}cy59YZjlcL6CEfEcX*k^M6fjGz zy1PP_fM$Unv*!JbY{y;>S@!^8X3)gKRs-uo%fR4h&%-S;tEK(xzOp*Jgv@BxvWjj0 zLE6;j1`k7Dy*}W^$h%8|@cntuU%#SNFcQV&hg_Y7$t*^*B7+OCe)Un~Za*Koglh}+*)Zg;;5)E*6L=`y7uh!@~y<-q|wL3GLs*_m5zC6cL~7?<<0 zryyk|E+RNps&GXOe?{7iB7t&|Fe~e9)oH(FSK@Iy^21U(8+^d_O!QJG zmA!h6waci4o!92LfIU|-H1d%Su~|aXB;kXn)s09s?c-OR zD-p*|UNrjcV(MvoQt z|4bPS&O73u1(!WjAHSFOtvl|%QLTX`7kE)JXKrO*d5IIKa5iU`?$+-J9J=FjyT56F zkW?4j1E$O-9a`$wvb&?2U~aT}*>@!o&pu*(Q6kkg_O`x)6jF}I>4aU2yHe^K*u##w~v`{sy$vp;maec;s(S(VxODKmwC)%l>F^2#u?eQtzv0ahbL4z2WvA(__&2j*C2fjy+DN5g?Bq5fRB!@A(cw zE#FP#i+~#tnD0~7e5j+|()m);z|O~Bvkck+DI-wN@uHuc>@V?63plcG7VmHurC+#C zDvKJeV}%Wo!=}M18^7PphR*gc9vvQCc@K>P?L(Q}uxodb0G)`aSfDFpe`&l{F(%@1 zwCP$n_|8y8CJj|3ZyJp8w%FXvxazLmoEOs6PFxK0_1LL}?z8ld&)q#vA&bmM+|pv( dU+`!i{Fy6KwH`E9?Op(nw77y;m55Q`{{r@1wEqAA literal 113564 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�(JURc*(XWkk7+3lcYLn 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

    *=E{m^c#<=nKt2~3IX;y&Fo1_e6 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 z�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 QEpsFzp(tK0Y83o`016}FP5=M^ diff --git a/Week04/NOTE.md b/Week04/NOTE.md index b703dc448..800186b32 100644 --- a/Week04/NOTE.md +++ b/Week04/NOTE.md @@ -30,5 +30,4 @@ def DFS(self, tree): # other processing work ... ``` - -![](.NOTE_images/bfs-dfs.png) \ No newline at end of file +![](.NOTE_images/bfs-dfs.png) From 93ca34f7a5419d331086de8dc521b4a76f347884 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 1 Jul 2020 12:00:09 -0400 Subject: [PATCH 061/105] Week04 --- .idea/.gitignore | 2 + .idea/leetcode/editor.xml | 16 +++ Week02/LC_200_number_of_islands.java | 3 +- Week02/LC_264_ugly_number_ii.java | 16 ++- Week02/LC_m40_small_k_digits.java | 21 ++- ...6\346\234\224\347\256\227\346\263\225.png" | Bin 0 -> 272109 bytes Week03/LC126_word_ladder_ii.java | 93 ++++++++++++ Week03/LC51_n_queens.java | 12 +- Week03/NOTE.md | 25 ++++ ...102_binary_tree_level_order_traversal.java | 41 ++++++ Week04/LC127_word_ladder.java | 132 ++++++++++++++++++ Week04/NOTE.md | 18 +++ 12 files changed, 357 insertions(+), 22 deletions(-) create mode 100644 "Week03/.NOTE_images/\345\233\236\346\234\224\347\256\227\346\263\225.png" create mode 100644 Week03/LC126_word_ladder_ii.java create mode 100644 Week04/LC102_binary_tree_level_order_traversal.java create mode 100644 Week04/LC127_word_ladder.java diff --git a/.idea/.gitignore b/.idea/.gitignore index a1b08dbbc..9cc6fc86b 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -11,6 +11,8 @@ + + # Project exclude paths /. # Project exclude paths diff --git a/.idea/leetcode/editor.xml b/.idea/leetcode/editor.xml index 8f12a6c7a..d31d9f8ce 100644 --- a/.idea/leetcode/editor.xml +++ b/.idea/leetcode/editor.xml @@ -3,6 +3,14 @@

      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 YRA)rATv2V?6f55LisNPMrCU$`3rAy9a{vGU literal 0 HcmV?d00001 diff --git a/Week03/LC126_word_ladder_ii.java b/Week03/LC126_word_ladder_ii.java new file mode 100644 index 000000000..b64bcf9e9 --- /dev/null +++ b/Week03/LC126_word_ladder_ii.java @@ -0,0 +1,93 @@ +package Week03; + +import Week04.LC127_word_ladder; + +import java.util.*; + +public class LC126_word_ladder_ii { + + static class Solution { + + public List> findLadders(String beginWord, String endWord, List wordList) { + + List> res = new ArrayList<>(); + Set wordSet = new HashSet<>(wordList); + if (wordSet.size() == 0 || !wordSet.contains(endWord)) { + return res; + } + + bfs(beginWord, endWord, wordSet, res); + return res; + } + + private void bfs(String beginWord, String endWord, Set wordSet, List> res) { + Queue> queue = new LinkedList<>(); + List path = new ArrayList<>(); + path.add(beginWord); + queue.offer(path); + + Set visited = new HashSet<>(); + visited.add(beginWord); + while (!queue.isEmpty()) { + int size = queue.size(); + Set subVisited = new HashSet<>(); + for (int i = 0; i < size; i++) { + List p = queue.poll(); + //得到当前路径的末尾单词 + String lastWord = p.get(p.size() - 1); + List neighbors = getNeighbors(lastWord, wordSet); + for (String nextWord : neighbors) { + //只考虑之前没有出现过的单词 + if (!visited.contains(nextWord)) { + //到达结束单词 + if (nextWord.equals(endWord)) { + p.add(nextWord); + res.add(new ArrayList(p)); + p.remove(p.size() - 1); + } + //加入当前中间单词 + p.add(nextWord); + //记录到queue中 + queue.offer(new ArrayList(p)); + //因为所有neighbors是平级的,进入下一级前remove当前nextWord + p.remove(p.size() - 1); + subVisited.add(nextWord); + } + } + } + visited.addAll(subVisited); + } + } + + + private ArrayList getNeighbors(String w, Set wordSet) { + ArrayList res = new ArrayList(); + char chs[] = w.toCharArray(); + + for (char ch = 'a'; ch <= 'z'; ch++) { + for (int i = 0; i < chs.length; i++) { + if (chs[i] == ch) { + continue; + } + char originalChar = chs[i]; + chs[i] = ch; + if (wordSet.contains(String.valueOf(chs))) { + res.add(String.valueOf(chs)); + } + chs[i] = originalChar; + } + } + return res; + } + } + + public static void main(String[] args) { + String beginWord = "hit"; + String endWord = "cog"; + List wordList = new ArrayList<>(); + String[] wordListArray = new String[]{"hot", "dot", "dog", "lot", "log", "cog"}; + Collections.addAll(wordList, wordListArray); + LC126_word_ladder_ii.Solution solution = new LC126_word_ladder_ii.Solution(); + + } +} diff --git a/Week03/LC51_n_queens.java b/Week03/LC51_n_queens.java index b9254ed36..46943cccd 100644 --- a/Week03/LC51_n_queens.java +++ b/Week03/LC51_n_queens.java @@ -10,20 +10,20 @@ public List> solveNQueens(int n) { if (n <= 0) { return res; } - int[] nums = new int[n]; + int[] queens = new int[n]; for (int i=0;i cols = new HashSet<>(); Set master = new HashSet<>(); Set slaver = new HashSet<>(); Stack temp = new Stack<>(); - backtrack(n,cols,master,slaver,temp,0,nums,res); + backtrack(n,cols,master,slaver,temp,0,queens,res); return res; } private void backtrack(int n, Set cols, Set master, Set slaver, - Stack stack, int row,int[] nums,List> res) { + Stack stack, int row,int[] queens,List> res) { if (row ==n){ List board = convert2board(stack, n); res.add(board); @@ -38,11 +38,11 @@ private void backtrack(int n, Set cols, Set master, Set> levelOrder(TreeNode root) { + List> res = new ArrayList<>(); + if (root == null) { + return res; + } + //这题中没必要visisted + HashSet visited = new HashSet<>(); + Deque queue = new LinkedList<>(); + queue.addFirst(root); + while (!queue.isEmpty()){ + int size = queue.size(); + List list = new ArrayList<>(); + for(int i=0;i0){ + res.add(list); + } + } + return res; + } +} diff --git a/Week04/LC127_word_ladder.java b/Week04/LC127_word_ladder.java new file mode 100644 index 000000000..a6062cdd9 --- /dev/null +++ b/Week04/LC127_word_ladder.java @@ -0,0 +1,132 @@ +package Week04; + +import java.util.*; + +public class LC127_word_ladder { + + static class Solution2 { + //建一个canConvert函数,两个单词只有一个字母不同,return true; + public boolean canConvert(String s1, String s2) { + // 因为题目说了单词长度相同,可以不考虑长度问题 + // if (s1.length() != s2.length()) return false; + int count = 0; + for (int i = 0; i < s1.length(); ++i) { + if (s1.charAt(i) != s2.charAt(i)) { + ++count; + if (count > 1) { + return false; + } + } + } + return count == 1; + } + + public int ladderLength(String beginWord, String endWord, List wordList) { + + if (!wordList.contains(endWord)) { + return 0; + } + // visited修改为boolean数组 + boolean[] visited = new boolean[wordList.size()]; + int idx = wordList.indexOf(beginWord); + if (idx != -1) { + visited[idx] = true; + } + Queue queue = new LinkedList<>(); + queue.offer(beginWord); + int count = 0; + while (queue.size() > 0) { + int size = queue.size(); + ++count; + while (size-- > 0) { + String start = queue.poll(); + for (int i = 0; i < wordList.size(); ++i) { + // 通过index判断是否已经访问 + if (visited[i]) { + continue; + } + String s = wordList.get(i); + if (!canConvert(start, s)) { + continue; + } + if (s.equals(endWord)) { + return count + 1; + } + visited[i] = true; + queue.offer(s); + } + } + } + return 0; + } + + } + + static class Solution { + public int ladderLength(String beginWord, String endWord, List wordList) { + + Set wordSet = new HashSet<>(wordList); + if (wordSet.size() == 0|| !wordSet.contains(endWord)){ + return 0; + } + Deque queue = new LinkedList(); + queue.addFirst(beginWord); + Set visited = new HashSet(); + visited.add(beginWord); + int step =1; + while (!queue.isEmpty()){ + int queSize = queue.size(); + for (int i = 0;i wordList = new ArrayList<>(); + String[] wordListArray = new String[]{"hot", "dot", "dog", "lot", "log", "cog"}; + Collections.addAll(wordList, wordListArray); + Solution solution = new Solution(); + int res = solution.ladderLength(beginWord, endWord, wordList); + System.out.println(res); + } + +} diff --git a/Week04/NOTE.md b/Week04/NOTE.md index 800186b32..125e8c3ce 100644 --- a/Week04/NOTE.md +++ b/Week04/NOTE.md @@ -30,4 +30,22 @@ def DFS(self, tree): # other processing work ... ``` + +## BFS 代码模板 +```$xslt +# Python +def BFS(graph, start, end): + visited = set() + 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 + ... + +``` ![](.NOTE_images/bfs-dfs.png) From 751daa36d520b119278461c05e594d2ee6829464 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Wed, 1 Jul 2020 12:55:28 -0400 Subject: [PATCH 062/105] Week04 --- .idea/.gitignore | 1 + Week04/LC128_word_ladder_ii.java | 85 ++++++++++++++++++++++++++++++++ Week04/LC529_minesweeper.java | 79 +++++++++++++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 Week04/LC128_word_ladder_ii.java create mode 100644 Week04/LC529_minesweeper.java diff --git a/.idea/.gitignore b/.idea/.gitignore index 9cc6fc86b..3eb4d6cc2 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -13,6 +13,7 @@ + # Project exclude paths /. # Project exclude paths diff --git a/Week04/LC128_word_ladder_ii.java b/Week04/LC128_word_ladder_ii.java new file mode 100644 index 000000000..960943dc7 --- /dev/null +++ b/Week04/LC128_word_ladder_ii.java @@ -0,0 +1,85 @@ +package Week04; + +import java.util.*; + +public class LC128_word_ladder_ii { + class Solution { + + public List> findLadders(String beginWord, String endWord, List wordList) { + + List> res = new ArrayList<>(); + Set wordSet = new HashSet<>(wordList); + if (wordSet.size() == 0 || !wordSet.contains(endWord)) { + return res; + } + + bfs(beginWord, endWord, wordSet, res); + return res; + } + + private void bfs(String beginWord, String endWord, Set wordSet, List> res) { + Queue> queue = new LinkedList<>(); + List path = new ArrayList<>(); + path.add(beginWord); + queue.offer(path); + + boolean isFound = false; + Set visited = new HashSet<>(); + visited.add(beginWord); + while (!queue.isEmpty()) { + int size = queue.size(); + Set subVisited = new HashSet<>(); + for (int i = 0; i < size; i++) { + List p = queue.poll(); + //得到当前路径的末尾单词 + String lastWord = p.get(p.size() - 1); + List neighbors = getNeighbors(lastWord, wordSet); + for (String nextWord : neighbors) { + //只考虑之前没有出现过的单词 + if (!visited.contains(nextWord)) { + //到达结束单词 + if (nextWord.equals(endWord)) { + isFound = true; + p.add(nextWord); + res.add(new ArrayList(p)); + p.remove(p.size() - 1); + } + //加入当前中间单词 + p.add(nextWord); + //记录到queue中 + queue.offer(new ArrayList(p)); + //因为所有neighbors是平级的,进入下一级前remove当前nextWord + p.remove(p.size() - 1); + subVisited.add(nextWord); + } + } + } + visited.addAll(subVisited); + // if (isFound) { + // break; + // } + } + } + + + private ArrayList getNeighbors(String w, Set dict) { + ArrayList res = new ArrayList(); + char chs[] = w.toCharArray(); + + for (char ch = 'a'; ch <= 'z'; ch++) { + for (int i = 0; i < chs.length; i++) { + if (chs[i] == ch) { + continue; + } + char old_ch = chs[i]; + chs[i] = ch; + if (dict.contains(String.valueOf(chs))) { + res.add(String.valueOf(chs)); + } + chs[i] = old_ch; + } + } + return res; + } + } +} diff --git a/Week04/LC529_minesweeper.java b/Week04/LC529_minesweeper.java new file mode 100644 index 000000000..fc5cda6bf --- /dev/null +++ b/Week04/LC529_minesweeper.java @@ -0,0 +1,79 @@ +package Week04; + +public class LC529_minesweeper { + static class Solution { + int nr,nc; + + //1.点击的坐标click[0],click[1] + //2.count周边8个方向的雷 + //3.count =0,代表没有相邻地雷的空方块('E')被挖出,bfs + //4.else,board[x][y] 修改它为数字 + + public char[][] updateBoard(char[][] board, int[] click) { + //点击的坐标 + int x = click[0]; + int y = click[1]; + nr = board.length; + nc = board[0].length; + //一下就找到雷了 'M' + if (board[x][y] == 'M'){ + board[x][y] = 'X'; + return board; + } + dfs(board,x,y); + return board; + } + + private void dfs(char[][] board, int x, int y) { + if (x<0||x>=nr||y<0||y>=nc||board[x][y]!='E'){ + //出了边界或这方块已挖出!='E' + return; + } + //找这方块周边有几个雷 + int mines = findMines(board,x,y); + //mines == 0代表没有相邻地雷的空方块('E')被挖出, + //根据要求:修改它为('B'),并且所有和其相邻的方块都应该被递归地揭露。 + if (mines == 0){ + //'B'表示没有雷,要往8个方向自动探索 + board[x][y] = 'B'; + for (int i=-1;i<2;i++) { + for (int j = -1; j < 2; j++) { + dfs(board,i+x,j+y); + } + } + } + //修改它为数字('1'到'8'),表示相邻地雷的数量 + else{ + board[x][y]=(char) ('0'+mines); + } + } + + private int findMines(char[][] board, int x, int y) { + //周边有8个方块 + int count=0; + for (int i=-1;i<2;i++){ + for (int j=-1;j<2;j++){ + //x1,y1代表周边8个方块的坐标 + int x1= i+x; + int y1= j+y; + //出了边界 + if (x1<0||x1>=nr||y1<0||y1>=nc){ + continue; + } + if (board[x1][y1] == 'M'){ + count++; + } + } + } + return count; + } + } + + public static void main(String[] args) { + + Solution solution = new Solution(); + int mines =8; + char c = (char) ('0'+ mines); + System.out.println(c); + } +} From 33245990dc554dc19360fc558336a92386b9ad20 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Thu, 2 Jul 2020 15:09:40 -0400 Subject: [PATCH 063/105] Week04 --- Week04/LC850_lemonade_change.java | 45 +++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Week04/LC850_lemonade_change.java diff --git a/Week04/LC850_lemonade_change.java b/Week04/LC850_lemonade_change.java new file mode 100644 index 000000000..fd33a2c3b --- /dev/null +++ b/Week04/LC850_lemonade_change.java @@ -0,0 +1,45 @@ +package Week04; + +public class LC850_lemonade_change { +/* +* 1.loop through all bill +* 2.count how many 5, 10, 20 bills +* 3.for $5 just reduce the count, $10 reduce one $5 count, +* greedy: for $20 try to reduce one $5 and one $10 count, if not able, reduce 3 of $5 +* 4.if don't have enough count return false +* */ + public boolean lemonadeChange(int[] bills) { + int c5=0, c10=0; + for (int b:bills){ + if (b==5){ + c5++; + } + else if(b==10){ + if (c5 == 0){ + return false; + } + c5--; + c10++; + } + else { + if (c10>0) { + c10--; + if (c5 == 0){ + return false; + } + c5--; + } + else { + if (c5>=3){ + c5 = c5 -3; + } + else { + return false; + } + } + } + } + + return true; + } +} From 9d1d31931b34121b7afcba1131b5b16e08b24c12 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Thu, 2 Jul 2020 16:02:41 -0400 Subject: [PATCH 064/105] Week04 --- .../LC122_best_time_to_buy_sell_stock_ii.java | 17 +++++++ Week04/LC850_lemonade_change.java | 45 ++++++++----------- 2 files changed, 35 insertions(+), 27 deletions(-) create mode 100644 Week04/LC122_best_time_to_buy_sell_stock_ii.java diff --git a/Week04/LC122_best_time_to_buy_sell_stock_ii.java b/Week04/LC122_best_time_to_buy_sell_stock_ii.java new file mode 100644 index 000000000..5c74c9ce0 --- /dev/null +++ b/Week04/LC122_best_time_to_buy_sell_stock_ii.java @@ -0,0 +1,17 @@ +package Week04; + +public class LC122_best_time_to_buy_sell_stock_ii { + //“贪心” 的地方在于,对于 “今天的股价 - 昨天的股价”,贪心算法的决策是:只加正数 + class Solution { + public int maxProfit(int[] prices) { + int maxProfit = 0; + for (int i =1;i0){ + maxProfit += p; + } + } + return maxProfit; + } + } +} diff --git a/Week04/LC850_lemonade_change.java b/Week04/LC850_lemonade_change.java index fd33a2c3b..f3279a3e0 100644 --- a/Week04/LC850_lemonade_change.java +++ b/Week04/LC850_lemonade_change.java @@ -1,41 +1,32 @@ package Week04; public class LC850_lemonade_change { -/* -* 1.loop through all bill -* 2.count how many 5, 10, 20 bills -* 3.for $5 just reduce the count, $10 reduce one $5 count, -* greedy: for $20 try to reduce one $5 and one $10 count, if not able, reduce 3 of $5 -* 4.if don't have enough count return false -* */ + /* + * 1.loop through all bill + * 2.count how many 5, 10, 20 bills + * 3.for $5 just reduce the count, $10 reduce one $5 count, + * greedy: for $20 try to reduce one $5 and one $10 count, if not able, reduce 3 of $5 + * 4.if don't have enough count return false + * */ public boolean lemonadeChange(int[] bills) { - int c5=0, c10=0; - for (int b:bills){ - if (b==5){ + int c5 = 0, c10 = 0; + for (int b : bills) { + if (b == 5) { c5++; - } - else if(b==10){ - if (c5 == 0){ + } else if (b == 10) { + if (c5 == 0) { return false; } c5--; c10++; - } - else { - if (c10>0) { + } else { + if (c10 > 0 && c5 > 0) { c10--; - if (c5 == 0){ - return false; - } c5--; - } - else { - if (c5>=3){ - c5 = c5 -3; - } - else { - return false; - } + } else if (c5 >= 3) { + c5 -= 3; + } else { + return false; } } } From c0ef87e31af80805179d388611de6f476b986288 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Fri, 3 Jul 2020 10:00:37 -0400 Subject: [PATCH 065/105] Week04 --- Week04/LC455_assign_cookies.java | 20 ++++++++++++++++++++ Week04/LC45_jump_game_ii.java | 23 +++++++++++++++++++++++ Week04/LC55_jump_game.java | 21 +++++++++++++++++++++ Week04/NOTE.md | 6 ++++++ 4 files changed, 70 insertions(+) create mode 100644 Week04/LC455_assign_cookies.java create mode 100644 Week04/LC45_jump_game_ii.java create mode 100644 Week04/LC55_jump_game.java diff --git a/Week04/LC455_assign_cookies.java b/Week04/LC455_assign_cookies.java new file mode 100644 index 000000000..8ae6264d8 --- /dev/null +++ b/Week04/LC455_assign_cookies.java @@ -0,0 +1,20 @@ +package Week04; + +import java.util.Arrays; + +public class LC455_assign_cookies { + public int findContentChildren(int[] g, int[] s) { + int res =0; + + Arrays.sort(g); + Arrays.sort(s); + int gi =0,si=0; + while (gi=len-1){ + return true; + } + } + } + return false; + } +} diff --git a/Week04/NOTE.md b/Week04/NOTE.md index 125e8c3ce..a8d4bbb09 100644 --- a/Week04/NOTE.md +++ b/Week04/NOTE.md @@ -49,3 +49,9 @@ def BFS(graph, start, end): ``` ![](.NOTE_images/bfs-dfs.png) + +#二分查找 +二分查找的前提 +1. 目标函数单调性 (单调递增或递减) +2. 存在上下界 (bounded) +3. 能够通过索引访问 (index accessible) \ No newline at end of file From 44734e08b8be4bfb377a5b564d10d5863ec8f128 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Fri, 3 Jul 2020 16:43:03 -0400 Subject: [PATCH 066/105] Week04 --- Week03/LC46_permutations.java | 2 +- .../LC33_search_in_rotated_sorted_array.java | 41 +++++++++++ Week04/LC367_valid_perfect_square.java | 26 +++++++ Week04/LC69_sqrtx.java | 25 +++++++ Week04/LC74_search_2d_matrix.java | 68 +++++++++++++++++++ Week04/NOTE.md | 39 ++++++++++- 6 files changed, 199 insertions(+), 2 deletions(-) create mode 100644 Week04/LC33_search_in_rotated_sorted_array.java create mode 100644 Week04/LC367_valid_perfect_square.java create mode 100644 Week04/LC69_sqrtx.java create mode 100644 Week04/LC74_search_2d_matrix.java diff --git a/Week03/LC46_permutations.java b/Week03/LC46_permutations.java index d3f3752c5..14799bb18 100644 --- a/Week03/LC46_permutations.java +++ b/Week03/LC46_permutations.java @@ -29,7 +29,7 @@ private void backtrack(List> res, int[] nums, int level) { res.add(Arrays.stream(nums).boxed().collect(Collectors.toList())); return; } - + //no swap, original list backtrack(res, nums, level + 1); for (int i = 0; i < level; i++) { diff --git a/Week04/LC33_search_in_rotated_sorted_array.java b/Week04/LC33_search_in_rotated_sorted_array.java new file mode 100644 index 000000000..64142c50a --- /dev/null +++ b/Week04/LC33_search_in_rotated_sorted_array.java @@ -0,0 +1,41 @@ +package Week04; + +public class LC33_search_in_rotated_sorted_array { + + //还是用二分查找 + //1.如果左<右,表示这部分是排序的,另一部分没有排序 + //2.在排序这部分找,如果target在左右值间,说明target在有序这边 + //3.否则在无序这边,据继续递归查找 + public int search(int[] nums, int target) { + int mid,left=0; + int right=nums.length-1; + while (left <= right){ + mid = left+(right-left)/2; + if (nums[mid]==target){ + return mid; + } + //有序在前半部分,注意要把=nums[mid]也归入 + if (nums[left]<=nums[mid]){ + //必须考虑左右边界值等于target情况 + //有两种情况:target在前半部有序处,或后半部无序处 + //这里因为right = mid-1;加入target=左边界值 + if (nums[left]<=target && target num) { + right = mid - 1; + } else { + left = mid + 1; + } + } + return false; + } + } +} diff --git a/Week04/LC69_sqrtx.java b/Week04/LC69_sqrtx.java new file mode 100644 index 000000000..a78c877db --- /dev/null +++ b/Week04/LC69_sqrtx.java @@ -0,0 +1,25 @@ +package Week04; + +public class LC69_sqrtx { + + //二分法 + //面试时要说出为啥能用二分法, + //二分查找的前提 + //1. 目标函数单调性 (单调递增或递减) + //2. 存在上下界 (bounded) + //3. 能够通过索引访问 (index accessible) + public int mySqrt(int x) { + //平方根肯定在1..n之间 + int left=1,mid =1; + int right = x; + while(left<=right){ + mid = left + (right-left)/2; + if (mid*mid >= x ){ + right = mid -1; + }else { + left = mid +1; + } + } + return right; + } +} diff --git a/Week04/LC74_search_2d_matrix.java b/Week04/LC74_search_2d_matrix.java new file mode 100644 index 000000000..c25a9d817 --- /dev/null +++ b/Week04/LC74_search_2d_matrix.java @@ -0,0 +1,68 @@ +package Week04; + +public class LC74_search_2d_matrix { + public boolean searchMatrix(int[][] matrix, int target) { + + if (matrix == null || matrix.length ==0){ + return false; + } + int m = matrix.length; + int n = matrix[0].length; + + int left = 0, right = m*n-1; + int mid=0; + while (left<=right){ + mid=left+(right-left)/2; + // int r = mid/rows; + // int c = mid%rows; + int midVal = matrix[mid/n][mid%n]; + if (target == midVal){ + return true; + } + else if(target > midVal){ + left = mid + 1; + } + else { + right = mid - 1; + } + } + return false; + } + + + //O(mlogn) + public boolean searchMatrix_2(int[][] matrix, int target) { + //1.get row and col from matrix + //2.check targe with end of element for each row + //3.if small than the element, binary search in the row + if (matrix == null || matrix.length ==0 || matrix[0].length == 0){ + return false; + } + int rows = matrix.length; + int cols = matrix[0].length; + for (int r=0;r matrix[r][mid]){ + left = mid + 1; + } + else { + right = mid - 1; + } + } + return false; + } + } + return false; + } +} diff --git a/Week04/NOTE.md b/Week04/NOTE.md index a8d4bbb09..d3eada6fa 100644 --- a/Week04/NOTE.md +++ b/Week04/NOTE.md @@ -54,4 +54,41 @@ def BFS(graph, start, end): 二分查找的前提 1. 目标函数单调性 (单调递增或递减) 2. 存在上下界 (bounded) -3. 能够通过索引访问 (index accessible) \ No newline at end of file +3. 能够通过索引访问 (index accessible) +```$xslt + //用二分查找 + //1.如果左<右,表示这部分是排序的,另一部分没有排序 + //2.在排序这部分找,如果target在左右值间,说明target在有序这边 + //3.否则在无序这边,据继续递归查找 + public int search(int[] nums, int target) { + int mid,left=0; + int right=nums.length-1; + while (left <= right){ + mid = left+(right-left)/2; + if (nums[mid]==target){ + return mid; + } + //有序在前半部分, + if (nums[left]<=nums[mid]){ + //必须考虑左右边界值等于target情况 + //这里因为right = mid-1;加入target=左边界值 + if (nums[left]<=target && target Date: Sun, 5 Jul 2020 11:36:41 -0400 Subject: [PATCH 067/105] Week04 --- .idea/.gitignore | 2 + ..._find_minimum_in_rotated_sorted_array.java | 39 +++++++++++++++++++ Week04/NOTE.md | 1 + 3 files changed, 42 insertions(+) create mode 100644 Week04/LC153_find_minimum_in_rotated_sorted_array.java diff --git a/.idea/.gitignore b/.idea/.gitignore index 3eb4d6cc2..ddb295cb7 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -31,4 +31,6 @@ # Project exclude paths /. # Project exclude paths +/. +# Project exclude paths /. \ No newline at end of file diff --git a/Week04/LC153_find_minimum_in_rotated_sorted_array.java b/Week04/LC153_find_minimum_in_rotated_sorted_array.java new file mode 100644 index 000000000..a320051f9 --- /dev/null +++ b/Week04/LC153_find_minimum_in_rotated_sorted_array.java @@ -0,0 +1,39 @@ +package Week04; + +public class LC153_find_minimum_in_rotated_sorted_array { + static class Solution { + //旋转数组, + //找变化点Inflection Point + //1.所有变化点左侧元素 > 数组第一个元素 + //2.所有变化点右侧元素 < 数组第一个元素 + //二分法查找,需要始终将目标值(这里是最小值)套住,并不断收缩左边界或右边界 + //1234567: leftmin,midright, shrink left + //7654321: left>mid,mid>right, shrink left + //总结:只要比较mid与左右两边值,>右,收缩左;否则收缩右(r=m,as left side contains target),最后l<=r时,返回nums[l] + public int findMin(int[] nums) { + int l = 0; + int r = nums.length - 1; + while(lnums[r]){ + l = m+1; + } + else { + r = m; + } + } + return nums[l]; + } + } + + + public static void main(String[] args) { + int[] nums = {3,1,2}; + Solution solution = new Solution(); + int res = solution.findMin(nums); + System.out.println(res); + } + +} diff --git a/Week04/NOTE.md b/Week04/NOTE.md index d3eada6fa..1d288ceea 100644 --- a/Week04/NOTE.md +++ b/Week04/NOTE.md @@ -55,6 +55,7 @@ def BFS(graph, start, end): 1. 目标函数单调性 (单调递增或递减) 2. 存在上下界 (bounded) 3. 能够通过索引访问 (index accessible) +4. 小心边界值 ```$xslt //用二分查找 //1.如果左<右,表示这部分是排序的,另一部分没有排序 From 0d648e8e48526158a6ef59ff6c3a8cc2e41539f7 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Sun, 5 Jul 2020 15:36:12 -0400 Subject: [PATCH 068/105] Week04 --- {Week03 => Week04}/LC126_word_ladder_ii.java | 21 +++-- Week04/LC128_word_ladder_ii.java | 85 ------------------- .../LC33_search_in_rotated_sorted_array.java | 11 ++- 3 files changed, 20 insertions(+), 97 deletions(-) rename {Week03 => Week04}/LC126_word_ladder_ii.java (89%) delete mode 100644 Week04/LC128_word_ladder_ii.java diff --git a/Week03/LC126_word_ladder_ii.java b/Week04/LC126_word_ladder_ii.java similarity index 89% rename from Week03/LC126_word_ladder_ii.java rename to Week04/LC126_word_ladder_ii.java index b64bcf9e9..02856f042 100644 --- a/Week03/LC126_word_ladder_ii.java +++ b/Week04/LC126_word_ladder_ii.java @@ -1,11 +1,8 @@ -package Week03; - -import Week04.LC127_word_ladder; +package Week04; import java.util.*; public class LC126_word_ladder_ii { - static class Solution { public List> findLadders(String beginWord, String endWord, List wordList) { @@ -26,6 +23,7 @@ private void bfs(String beginWord, String endWord, Set wordSet, List visited = new HashSet<>(); visited.add(beginWord); while (!queue.isEmpty()) { @@ -41,6 +39,7 @@ private void bfs(String beginWord, String endWord, Set wordSet, List(p)); p.remove(p.size() - 1); @@ -56,11 +55,14 @@ private void bfs(String beginWord, String endWord, Set wordSet, List getNeighbors(String w, Set wordSet) { + private ArrayList getNeighbors(String w, Set dict) { ArrayList res = new ArrayList(); char chs[] = w.toCharArray(); @@ -69,25 +71,26 @@ private ArrayList getNeighbors(String w, Set wordSet) { if (chs[i] == ch) { continue; } - char originalChar = chs[i]; + char old_ch = chs[i]; chs[i] = ch; - if (wordSet.contains(String.valueOf(chs))) { + if (dict.contains(String.valueOf(chs))) { res.add(String.valueOf(chs)); } - chs[i] = originalChar; + chs[i] = old_ch; } } return res; } } + public static void main(String[] args) { String beginWord = "hit"; String endWord = "cog"; List wordList = new ArrayList<>(); String[] wordListArray = new String[]{"hot", "dot", "dog", "lot", "log", "cog"}; Collections.addAll(wordList, wordListArray); - LC126_word_ladder_ii.Solution solution = new LC126_word_ladder_ii.Solution(); + Solution solution = new Solution(); } } diff --git a/Week04/LC128_word_ladder_ii.java b/Week04/LC128_word_ladder_ii.java deleted file mode 100644 index 960943dc7..000000000 --- a/Week04/LC128_word_ladder_ii.java +++ /dev/null @@ -1,85 +0,0 @@ -package Week04; - -import java.util.*; - -public class LC128_word_ladder_ii { - class Solution { - - public List> findLadders(String beginWord, String endWord, List wordList) { - - List> res = new ArrayList<>(); - Set wordSet = new HashSet<>(wordList); - if (wordSet.size() == 0 || !wordSet.contains(endWord)) { - return res; - } - - bfs(beginWord, endWord, wordSet, res); - return res; - } - - private void bfs(String beginWord, String endWord, Set wordSet, List> res) { - Queue> queue = new LinkedList<>(); - List path = new ArrayList<>(); - path.add(beginWord); - queue.offer(path); - - boolean isFound = false; - Set visited = new HashSet<>(); - visited.add(beginWord); - while (!queue.isEmpty()) { - int size = queue.size(); - Set subVisited = new HashSet<>(); - for (int i = 0; i < size; i++) { - List p = queue.poll(); - //得到当前路径的末尾单词 - String lastWord = p.get(p.size() - 1); - List neighbors = getNeighbors(lastWord, wordSet); - for (String nextWord : neighbors) { - //只考虑之前没有出现过的单词 - if (!visited.contains(nextWord)) { - //到达结束单词 - if (nextWord.equals(endWord)) { - isFound = true; - p.add(nextWord); - res.add(new ArrayList(p)); - p.remove(p.size() - 1); - } - //加入当前中间单词 - p.add(nextWord); - //记录到queue中 - queue.offer(new ArrayList(p)); - //因为所有neighbors是平级的,进入下一级前remove当前nextWord - p.remove(p.size() - 1); - subVisited.add(nextWord); - } - } - } - visited.addAll(subVisited); - // if (isFound) { - // break; - // } - } - } - - - private ArrayList getNeighbors(String w, Set dict) { - ArrayList res = new ArrayList(); - char chs[] = w.toCharArray(); - - for (char ch = 'a'; ch <= 'z'; ch++) { - for (int i = 0; i < chs.length; i++) { - if (chs[i] == ch) { - continue; - } - char old_ch = chs[i]; - chs[i] = ch; - if (dict.contains(String.valueOf(chs))) { - res.add(String.valueOf(chs)); - } - chs[i] = old_ch; - } - } - return res; - } - } -} diff --git a/Week04/LC33_search_in_rotated_sorted_array.java b/Week04/LC33_search_in_rotated_sorted_array.java index 64142c50a..0c9818cb5 100644 --- a/Week04/LC33_search_in_rotated_sorted_array.java +++ b/Week04/LC33_search_in_rotated_sorted_array.java @@ -3,9 +3,14 @@ public class LC33_search_in_rotated_sorted_array { //还是用二分查找 - //1.如果左<右,表示这部分是排序的,另一部分没有排序 - //2.在排序这部分找,如果target在左右值间,说明target在有序这边 - //3.否则在无序这边,据继续递归查找 + //1.nums[mid]==target,return mid + //1.如果左<=mid,表示这部分是排序的,另一部分没有排序 + // a.nums[left]<=target Date: Sun, 12 Jul 2020 12:51:19 -0400 Subject: [PATCH 069/105] Week04 --- .idea/.gitignore | 3 + Week04/Amazon_Interview.java | 93 ++++++++++++++++++++++ Week04/LC127_word_ladder.java | 2 +- Week04/LC874_walking_robot_simulation.java | 69 ++++++++++++++++ Week04/NOTE.md | 13 +++ Week06/NOTE.md | 10 ++- 6 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 Week04/Amazon_Interview.java create mode 100644 Week04/LC874_walking_robot_simulation.java diff --git a/.idea/.gitignore b/.idea/.gitignore index ddb295cb7..39ee28517 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -14,6 +14,9 @@ + +# Project exclude paths +/. # Project exclude paths /. # Project exclude paths diff --git a/Week04/Amazon_Interview.java b/Week04/Amazon_Interview.java new file mode 100644 index 000000000..06bd25f57 --- /dev/null +++ b/Week04/Amazon_Interview.java @@ -0,0 +1,93 @@ +package Week04; + +import java.util.*; + +public class Amazon_Interview { +/* +* 历遍矩阵,找到0时,广度优先,一层层扩展(水波纹),找到最近的‘1’ +* 最后输出最大的 +* */ + int nr,nc; + public int daysOfUpdate(int rows, int columns, char[][] grid) { + int ans = -1; + if (rows <=0 || columns<=0) { + return ans; + } + nr = rows; + nc = columns; + for (int i=0;i queue = new ArrayDeque<>(); + Set visited = new HashSet(); + addQueue(row-1,col,queue); + addQueue(row+1,col,queue); + addQueue(row,col-1,queue); + addQueue(row,col+1,queue); + while(!queue.isEmpty()){ + level++; + int size = queue.size(); + for (int i =0;i queue) { + if (0<= r && r> obstacleSet = new HashSet<>(); + for (int i = 0; i< obstacles.length; i++){ + obstacleSet.add(new Pair<>(obstacles[i][0],obstacles[i][1])); + } + + for (int command : commands){ + if (command == -1) { // -1:向右转 90 度 + curdire = (curdire +1 ) %4; + }else if (command == -2){ // -2:向左转 90 度 + curdire = (curdire +3 ) %4; + }else { //向前移动 x 个单位长度 + for (int j =0;j(nx,ny))){ + curx = nx; + cury = ny; + ans = Math.max(ans,curx*curx + cury*cury); + }else { + //是障碍点,被挡住了,停留,只能等待下一个指令 + break; + } + } + } + + } + return ans; + } + +} diff --git a/Week04/NOTE.md b/Week04/NOTE.md index 1d288ceea..17fa1904e 100644 --- a/Week04/NOTE.md +++ b/Week04/NOTE.md @@ -1,4 +1,17 @@ 学习笔记 +#贪心: +当下做局部最优判断 +贪心算法场景:问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。这种问题 +#回朔: +能够回退 +#动态规划: +最优判断 + 回退 +动态规划会保存以前的运算结果,并根据以前的结果的结果对结果对当前进行选择,有回退功能。 + +#递归 +关注本层的逻辑,在递归前的代码是压栈的时候执行的,递归后代码是出栈时执行的; +如果压栈前改变全局变量或者参数直,就要考虑出栈时恢复,不然会影响其它子递归; +必要时画递归树帮助理解。不要尝试像电脑一样每层去调用求解. DFS 代码模板 递归状态树的理解:dfs会马上进入到下一层,不用等到for循环,等dfs遇到return才会进入for循环下一个 diff --git a/Week06/NOTE.md b/Week06/NOTE.md index 50de30414..acb92ab4b 100644 --- a/Week06/NOTE.md +++ b/Week06/NOTE.md @@ -1 +1,9 @@ -学习笔记 \ No newline at end of file +学习笔记 + +### **动态规划的实现及关键点** + +动态规划和递归或分治没有根本上的区别(关键看有无最优的子结构) + +共性:找到重复子问题 + +差异性:最优子结构,中途可以淘汰次优解 From e1e315f54a1ea3f3fddec92e357dad5c22946596 Mon Sep 17 00:00:00 2001 From: Jimmy chen Date: Sun, 12 Jul 2020 12:54:30 -0400 Subject: [PATCH 070/105] Week04 --- .idea/google-java-format.xml | 6 + .idea/inspectionProfiles/Project_Default.xml | 36 ++++ .../algorithm010/Common/BuildBinaryTree.class | Bin 0 -> 1833 bytes .../algorithm010/Common/TreeNode.class | Bin 0 -> 588 bytes .../META-INF/algorithm010.kotlin_module | Bin 0 -> 16 bytes .idea/production/algorithm010/README.md | 28 +++ .../algorithm010/Week01/LC189_rotate-array.md | 17 ++ .../Week01/LC206_ReverseLinkedList.md | 100 +++++++++++ .../Week01/LC21_merge-two-sorted-lists.md | 30 ++++ ...C26_remove-duplicates-from-sorted-array.md | 21 +++ .../Week01/LC42_trapping-rain-water.md | 31 ++++ .../Week01/LC88_merge-sorted-array.md | 34 ++++ .../algorithm010/Week01/LC_283_MoveZeroes.md | 47 +++++ .../Week01/LC_641-design-circular-deque.md | 87 ++++++++++ .../algorithm010/Week01/LC_66-plus-one.md | 26 +++ .../algorithm010/Week01/LeetCode_11.md | 27 +++ .../algorithm010/Week01/LeetCode_15.md | 53 ++++++ .../algorithm010/Week01/MindMap-v1.pdf | Bin 0 -> 51682 bytes .idea/production/algorithm010/Week01/NOTE.md | 32 ++++ ...5\206\231Deque\344\273\243\347\240\201.md" | 16 ++ .../Week02/Amazon_Interview.class | Bin 0 -> 2721 bytes .../BinanryTree_Traversal$TreeNode.class | Bin 0 -> 597 bytes .../Week02/BinanryTree_Traversal.class | Bin 0 -> 4415 bytes .../algorithm010/Week02/BinaryHeap.class | Bin 0 -> 3035 bytes .../HashMap\346\200\273\347\273\223.md" | 161 ++++++++++++++++++ .../Week02/LC_200_number_of_islands.class | Bin 0 -> 2330 bytes .../LC_22_generate_parentheses$Node.class | Bin 0 -> 719 bytes .../Week02/LC_22_generate_parentheses.class | Bin 0 -> 3806 bytes .../LC_239_sliding_window_maximum.class | Bin 0 -> 1728 bytes .../Week02/LC_242_valid_anagram.class | Bin 0 -> 1564 bytes .../Week02/LC_264_ugly_number_ii.class | Bin 0 -> 762 bytes .../LC_347_top_k_frequent_elements$1.class | Bin 0 -> 1339 bytes .../LC_347_top_k_frequent_elements.class | Bin 0 -> 2121 bytes .../Week02/LC_49_Group_anagrams.class | Bin 0 -> 2557 bytes .../Week02/LC_m40_small_k_digits.class | Bin 0 -> 2152 bytes .idea/production/algorithm010/Week02/NOTE.md | 94 ++++++++++ .../production/algorithm010/Week02/test.class | Bin 0 -> 1043 bytes ...6\346\234\224\347\256\227\346\263\225.png" | Bin 0 -> 272109 bytes ...t_binary_tree_from_preorder$TreeNode.class | Bin 0 -> 706 bytes ..._construct_binary_tree_from_preorder.class | Bin 0 -> 1978 bytes .../Week03/LC111_min_depth_b_tree.class | Bin 0 -> 2176 bytes ...C236_lowest_common_ancestor$TreeNode.class | Bin 0 -> 628 bytes .../Week03/LC236_lowest_common_ancestor.class | Bin 0 -> 978 bytes .../Week03/LC46_permutations.class | Bin 0 -> 718 bytes .../Week03/LC47_permutations_ii.class | Bin 0 -> 3492 bytes .../algorithm010/Week03/LC51_n_queens.class | Bin 0 -> 4872 bytes ...LC_17_Letter_combinations_of_phone$1.class | Bin 0 -> 910 bytes .../LC_17_Letter_combinations_of_phone.class | Bin 0 -> 2427 bytes .../algorithm010/Week03/LC_50_powx_n.class | Bin 0 -> 700 bytes .../Week03/LC_77_combinations.class | Bin 0 -> 1504 bytes .../algorithm010/Week03/LC_78_subsets.class | Bin 0 -> 1864 bytes .../algorithm010/Week03/Lc_69_sqrtx.class | Bin 0 -> 1053 bytes .idea/production/algorithm010/Week03/NOTE.md | 116 +++++++++++++ .../algorithm010/Week03/Solution.class | Bin 0 -> 2627 bytes .../production/algorithm010/Week03/Test.class | Bin 0 -> 729 bytes .../Week04/.NOTE_images/bfs-dfs.png | Bin 0 -> 83950 bytes .../Week04/Amazon_Interview.class | Bin 0 -> 3030 bytes ...02_binary_tree_level_order_traversal.class | Bin 0 -> 1856 bytes ...t_time_to_buy_sell_stock_ii$Solution.class | Bin 0 -> 835 bytes ...LC122_best_time_to_buy_sell_stock_ii.class | Bin 0 -> 447 bytes .../LC126_word_ladder_ii$Solution.class | Bin 0 -> 3814 bytes .../Week04/LC126_word_ladder_ii.class | Bin 0 -> 1078 bytes .../Week04/LC127_word_ladder$Solution.class | Bin 0 -> 2196 bytes .../Week04/LC127_word_ladder$Solution2.class | Bin 0 -> 2037 bytes .../Week04/LC127_word_ladder.class | Bin 0 -> 1366 bytes ...mum_in_rotated_sorted_array$Solution.class | Bin 0 -> 740 bytes ...find_minimum_in_rotated_sorted_array.class | Bin 0 -> 915 bytes .../LC33_search_in_rotated_sorted_array.class | Bin 0 -> 749 bytes .../LC367_valid_perfect_square$Solution.class | Bin 0 -> 836 bytes .../Week04/LC367_valid_perfect_square.class | Bin 0 -> 407 bytes .../Week04/LC455_assign_cookies.class | Bin 0 -> 634 bytes .../Week04/LC45_jump_game_ii$Solution.class | Bin 0 -> 824 bytes .../Week04/LC45_jump_game_ii.class | Bin 0 -> 371 bytes .../Week04/LC529_minesweeper$Solution.class | Bin 0 -> 1403 bytes .../Week04/LC529_minesweeper.class | Bin 0 -> 747 bytes .../algorithm010/Week04/LC55_jump_game.class | Bin 0 -> 592 bytes .../algorithm010/Week04/LC69_sqrtx.class | Bin 0 -> 517 bytes .../Week04/LC74_search_2d_matrix.class | Bin 0 -> 1177 bytes .../Week04/LC850_lemonade_change.class | Bin 0 -> 684 bytes .idea/production/algorithm010/Week04/NOTE.md | 95 +++++++++++ .../production/algorithm010/Week04/test.class | Bin 0 -> 1125 bytes .idea/production/algorithm010/Week06/NOTE.md | 1 + .idea/production/algorithm010/Week07/NOTE.md | 1 + .idea/production/algorithm010/Week08/NOTE.md | 1 + .idea/production/algorithm010/Week09/NOTE.md | 1 + .idea/uiDesigner.xml | 124 ++++++++++++++ .vscode/launch.json | 112 ++++++++++++ .vscode/settings.json | 8 + Week01/LC18_4sums.java | 53 ++++++ Week04/LC15_4sums.java | 69 ++++++++ ...15_count_of_smaller_number_after_self.java | 79 +++++++++ 91 files changed, 1506 insertions(+) create mode 100644 .idea/google-java-format.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/production/algorithm010/Common/BuildBinaryTree.class create mode 100644 .idea/production/algorithm010/Common/TreeNode.class create mode 100644 .idea/production/algorithm010/META-INF/algorithm010.kotlin_module create mode 100644 .idea/production/algorithm010/README.md create mode 100644 .idea/production/algorithm010/Week01/LC189_rotate-array.md create mode 100644 .idea/production/algorithm010/Week01/LC206_ReverseLinkedList.md create mode 100644 .idea/production/algorithm010/Week01/LC21_merge-two-sorted-lists.md create mode 100644 .idea/production/algorithm010/Week01/LC26_remove-duplicates-from-sorted-array.md create mode 100644 .idea/production/algorithm010/Week01/LC42_trapping-rain-water.md create mode 100644 .idea/production/algorithm010/Week01/LC88_merge-sorted-array.md create mode 100644 .idea/production/algorithm010/Week01/LC_283_MoveZeroes.md create mode 100644 .idea/production/algorithm010/Week01/LC_641-design-circular-deque.md create mode 100644 .idea/production/algorithm010/Week01/LC_66-plus-one.md create mode 100644 .idea/production/algorithm010/Week01/LeetCode_11.md create mode 100644 .idea/production/algorithm010/Week01/LeetCode_15.md create mode 100644 .idea/production/algorithm010/Week01/MindMap-v1.pdf create mode 100644 .idea/production/algorithm010/Week01/NOTE.md create mode 100644 ".idea/production/algorithm010/Week01/\346\224\271\345\206\231Deque\344\273\243\347\240\201.md" create mode 100644 .idea/production/algorithm010/Week02/Amazon_Interview.class create mode 100644 .idea/production/algorithm010/Week02/BinanryTree_Traversal$TreeNode.class create mode 100644 .idea/production/algorithm010/Week02/BinanryTree_Traversal.class create mode 100644 .idea/production/algorithm010/Week02/BinaryHeap.class create mode 100644 ".idea/production/algorithm010/Week02/HashMap\346\200\273\347\273\223.md" create mode 100644 .idea/production/algorithm010/Week02/LC_200_number_of_islands.class create mode 100644 .idea/production/algorithm010/Week02/LC_22_generate_parentheses$Node.class create mode 100644 .idea/production/algorithm010/Week02/LC_22_generate_parentheses.class create mode 100644 .idea/production/algorithm010/Week02/LC_239_sliding_window_maximum.class create mode 100644 .idea/production/algorithm010/Week02/LC_242_valid_anagram.class create mode 100644 .idea/production/algorithm010/Week02/LC_264_ugly_number_ii.class create mode 100644 .idea/production/algorithm010/Week02/LC_347_top_k_frequent_elements$1.class create mode 100644 .idea/production/algorithm010/Week02/LC_347_top_k_frequent_elements.class create mode 100644 .idea/production/algorithm010/Week02/LC_49_Group_anagrams.class create mode 100644 .idea/production/algorithm010/Week02/LC_m40_small_k_digits.class create mode 100644 .idea/production/algorithm010/Week02/NOTE.md create mode 100644 .idea/production/algorithm010/Week02/test.class create mode 100644 ".idea/production/algorithm010/Week03/.NOTE_images/\345\233\236\346\234\224\347\256\227\346\263\225.png" create mode 100644 .idea/production/algorithm010/Week03/LC105_construct_binary_tree_from_preorder$TreeNode.class create mode 100644 .idea/production/algorithm010/Week03/LC105_construct_binary_tree_from_preorder.class create mode 100644 .idea/production/algorithm010/Week03/LC111_min_depth_b_tree.class create mode 100644 .idea/production/algorithm010/Week03/LC236_lowest_common_ancestor$TreeNode.class create mode 100644 .idea/production/algorithm010/Week03/LC236_lowest_common_ancestor.class create mode 100644 .idea/production/algorithm010/Week03/LC46_permutations.class create mode 100644 .idea/production/algorithm010/Week03/LC47_permutations_ii.class create mode 100644 .idea/production/algorithm010/Week03/LC51_n_queens.class create mode 100644 .idea/production/algorithm010/Week03/LC_17_Letter_combinations_of_phone$1.class create mode 100644 .idea/production/algorithm010/Week03/LC_17_Letter_combinations_of_phone.class create mode 100644 .idea/production/algorithm010/Week03/LC_50_powx_n.class create mode 100644 .idea/production/algorithm010/Week03/LC_77_combinations.class create mode 100644 .idea/production/algorithm010/Week03/LC_78_subsets.class create mode 100644 .idea/production/algorithm010/Week03/Lc_69_sqrtx.class create mode 100644 .idea/production/algorithm010/Week03/NOTE.md create mode 100644 .idea/production/algorithm010/Week03/Solution.class create mode 100644 .idea/production/algorithm010/Week03/Test.class create mode 100644 .idea/production/algorithm010/Week04/.NOTE_images/bfs-dfs.png create mode 100644 .idea/production/algorithm010/Week04/Amazon_Interview.class create mode 100644 .idea/production/algorithm010/Week04/LC102_binary_tree_level_order_traversal.class create mode 100644 .idea/production/algorithm010/Week04/LC122_best_time_to_buy_sell_stock_ii$Solution.class create mode 100644 .idea/production/algorithm010/Week04/LC122_best_time_to_buy_sell_stock_ii.class create mode 100644 .idea/production/algorithm010/Week04/LC126_word_ladder_ii$Solution.class create mode 100644 .idea/production/algorithm010/Week04/LC126_word_ladder_ii.class create mode 100644 .idea/production/algorithm010/Week04/LC127_word_ladder$Solution.class create mode 100644 .idea/production/algorithm010/Week04/LC127_word_ladder$Solution2.class create mode 100644 .idea/production/algorithm010/Week04/LC127_word_ladder.class create mode 100644 .idea/production/algorithm010/Week04/LC153_find_minimum_in_rotated_sorted_array$Solution.class create mode 100644 .idea/production/algorithm010/Week04/LC153_find_minimum_in_rotated_sorted_array.class create mode 100644 .idea/production/algorithm010/Week04/LC33_search_in_rotated_sorted_array.class create mode 100644 .idea/production/algorithm010/Week04/LC367_valid_perfect_square$Solution.class create mode 100644 .idea/production/algorithm010/Week04/LC367_valid_perfect_square.class create mode 100644 .idea/production/algorithm010/Week04/LC455_assign_cookies.class create mode 100644 .idea/production/algorithm010/Week04/LC45_jump_game_ii$Solution.class create mode 100644 .idea/production/algorithm010/Week04/LC45_jump_game_ii.class create mode 100644 .idea/production/algorithm010/Week04/LC529_minesweeper$Solution.class create mode 100644 .idea/production/algorithm010/Week04/LC529_minesweeper.class create mode 100644 .idea/production/algorithm010/Week04/LC55_jump_game.class create mode 100644 .idea/production/algorithm010/Week04/LC69_sqrtx.class create mode 100644 .idea/production/algorithm010/Week04/LC74_search_2d_matrix.class create mode 100644 .idea/production/algorithm010/Week04/LC850_lemonade_change.class create mode 100644 .idea/production/algorithm010/Week04/NOTE.md create mode 100644 .idea/production/algorithm010/Week04/test.class create mode 100644 .idea/production/algorithm010/Week06/NOTE.md create mode 100644 .idea/production/algorithm010/Week07/NOTE.md create mode 100644 .idea/production/algorithm010/Week08/NOTE.md create mode 100644 .idea/production/algorithm010/Week09/NOTE.md create mode 100644 .idea/uiDesigner.xml create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 Week01/LC18_4sums.java create mode 100644 Week04/LC15_4sums.java create mode 100644 Week04/LC315_count_of_smaller_number_after_self.java diff --git a/.idea/google-java-format.xml b/.idea/google-java-format.xml new file mode 100644 index 000000000..2aa056da3 --- /dev/null +++ b/.idea/google-java-format.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 000000000..6560a9898 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/.idea/production/algorithm010/Common/BuildBinaryTree.class b/.idea/production/algorithm010/Common/BuildBinaryTree.class new file mode 100644 index 0000000000000000000000000000000000000000..31ec6f8b5ece00f1eeff733445cb64c23f87cf60 GIT binary patch literal 1833 zcmZ`)T~8ck6n@^_nVtPYC@{5KMER=w%?fR|7AmbE)zyW@(9l**WMD@aI_%;yYsCvq zYQ1YTdSlY4AvK0OLyd}+NW9|0#Jm0h&v|G6_~+Mc z0H-h!#1nWlra8<&vjXd4@5XOrbm8dc1 z7RE~$591?|ZL{iF{BeJt+U7e< zNG)6Q3!Ie|>jM+rXyQGQA1|0JS~wozF2h-HRuh{L_qgz&m7~u!`q0L8xaxp*=-dTx z6i?DZu(%18p1^mB9rzR5cc6-mEqJbN!kgcMaxLK<{2A&dd=tt@VmqrOQ}>~Ha3y&k zet|nEcIwJqEN~kT_#MiSn&=$dL3c!T(VaE)PY5O>>W>Ik(YL&UxHb6Jk^Ue5kn11X z_g~-pEVaQz6}Pxax2z_F$VeNx=q4MzEGWv;3@sxpG{-V8u}}lYu!Q4SMh8~WiI4C! zKF2fony5AO;9DXkNh2g8hb#1skQ7ovOb6#Se1WHk6ZF4DY=i{&;wB?>QHdx%q`ixI z_0U%mUG?wfs*jd#XaTWDfU4nyhG#WI1=V^eUtQ5q?=BxD5UcCq2{4HOVSgtNXfYw# zOxCrSOr@*5s98nHs>yAokoD=lZ}7dYW;I>YRb836i%)bdxxEH8y+P4x^7xawMt!0Y z{|;3sdPilqRVp>8i{B|f?TI?0%`90k))mj{AMx8tA3JKn|~PGUBwx^ zjk73V2sbc{k8vKiaRHxV6kpQwD~#hF-wVGHx5Kx>pF}?3JK-->d*?0Ed=;jvwx2O> zBTf}HNqy~_$d&8>dDkAe9pGVRJ8lPfncEgKmAWVK3x8b{asWRt^DatQ?}aL|mmMQ} nA%%dp$LDAo(vNh5knP|Xtq*aUJrUeR|1SK;`P_bDJjnbD2Ul<5lTv%)WUnYASNz+03XVD zrc_K|Gk5NtbH01$e*b)a0l34t2?Na%@;FwiurC zSVW;ajHMhzFY;a>AN$i8-;4)8^pg%OPIP58l5bA%W|&Q$T>G_ r=>OCvzXyIuC!@rzR8m4Y?c!|w+b(w2h0JsXYEoNmGF^_%OvBMHn*>xS literal 0 HcmV?d00001 diff --git a/.idea/production/algorithm010/META-INF/algorithm010.kotlin_module b/.idea/production/algorithm010/META-INF/algorithm010.kotlin_module new file mode 100644 index 0000000000000000000000000000000000000000..a49347afef10a9b5f95305e1058ba36adec7d6dd GIT binary patch literal 16 RcmZQzU|?ooU|@t|0RRA102TlM literal 0 HcmV?d00001 diff --git a/.idea/production/algorithm010/README.md b/.idea/production/algorithm010/README.md new file mode 100644 index 000000000..c2f794952 --- /dev/null +++ b/.idea/production/algorithm010/README.md @@ -0,0 +1,28 @@ +# 极客大学「算法训练营-第10期」作业提交仓库 + + +## 讲师课件下载地址 + +请大家通过该链接查看讲师课件并进行下载,链接:https://pan.baidu.com/s/1GOuXJfnlERQs8bI8HNwPrQ 密码:zlua + + +## 仓库目录结构说明 + +1. `week01/` 代表第一周作业提交目录,以此类推。 +2. 请在对应周的目录下新建或修改自己的代码作业。 +2. 每周均有一个 `REDAME.md` 文档,你可以将自己当周的学习心得以及做题过程中的思考记录在该文档中。 + +## 作业提交规则 + +1. 先将本仓库 Fork 到自己 GitHub 账号下。 +2. 将 Fork 后的仓库 Clone 到本地,然后在本地仓库中对应周的目录下新建或修改自己的代码作业,当周的学习总结写在对应周的README.md文件里。 +3. 在本地仓库完成作业后,push 到自己的 GitHub 远程仓库。 +4. 最后将远程仓库中当周的作业链接,按格式贴到班级仓库对应学习周的issue下面。 +5. 提交issue请务必按照规定格式进行提交,否则作业统计工具将抓取不到你的作业提交记录。 + +详细的作业提交流程可以查阅:https://shimo.im/docs/m5rtM8K8rNsjw5jk/ + + +## 注意事项 + + 如果对 Git 和 GitHub 不太了解,请参考 [Git 官方文档](https://git-scm.com/book/zh/v2) 或者极客时间的[《玩转 Git 三剑客》](https://time.geekbang.org/course/intro/145)视频课程。 diff --git a/.idea/production/algorithm010/Week01/LC189_rotate-array.md b/.idea/production/algorithm010/Week01/LC189_rotate-array.md new file mode 100644 index 000000000..ec7ca573f --- /dev/null +++ b/.idea/production/algorithm010/Week01/LC189_rotate-array.md @@ -0,0 +1,17 @@ + +class Solution { + + //Brute-force + //move k times for all elements - O(k^n) + + public void rotate(int[] nums, int k) { + int length = nums.length; + for(int i=0;i0;j--){ + nums[j] = nums[j-1]; + } + nums[0] = tmp; + } + } +} \ No newline at end of file diff --git a/.idea/production/algorithm010/Week01/LC206_ReverseLinkedList.md b/.idea/production/algorithm010/Week01/LC206_ReverseLinkedList.md new file mode 100644 index 000000000..a293f8a2a --- /dev/null +++ b/.idea/production/algorithm010/Week01/LC206_ReverseLinkedList.md @@ -0,0 +1,100 @@ +/* +第一次写道这样就试着运行,链表和Recursive不清楚 :-) +*/ +class Solution { + + ListNode res = new ListNode(); + + public ListNode reverseList(ListNode head) { + + if (head == null){ + return null; + } + + res.next = head; + res = res.next; + + return reverseList(head.next); + } + +} + +//因为要达到末尾时才能够进行连接,所以要在出栈的时候(recursive 调用后) +class Solution { + + ListNode res = new ListNode(); + + public ListNode reverseList(ListNode head) { + helper(head); + return res; + } + private ListNode helper(ListNode node){ + if(node == null || node.next == null){ + res = node; + return node; + } + ListNode temp = helper(node.next); + temp.next = node; + node.next = null; + return node; + } +} + +/*看完题解后: +1. 迭代法: 用 prev, curr, head 反转指针 +prev = head; +curr = head.next; +curr.next = prev; //反转指针 +head = curr; + +*/ +class Solution { + public ListNode reverseList(ListNode head) { + ListNode prev = null, temp, curr = head; + while(curr != null){ + temp = curr.next; + curr.next = prev; + prev = curr; + curr = temp; + } + //at the end curr =null, it mush return prev + return prev; + } + //时间复杂度:O(n)O(n) + //空间复杂度:O(1)O(1) +} + +/* 2.递归 +递归就是压栈,在递归调用前的code就是压栈前要执行的,在递归调用后的code就是出栈后执行的。 +有没有一种方法/公式,知道是这段代码是放在递归前还是递归后 + */ +class Solution { + public ListNode reverseList(ListNode head) { + //terminator + if(head == null || head.next == null){ + return head; + } + ListNode node = reverseList(head.next); //这里会一直迭代直到触发terminator(走到链表最后),然后才执行下面语句 + head.next.next = head; + head.next = null; //这里是为了断开连接 + return node; + } +} + +/* 递归 2 + return helper(nextNode, curr); //用value互换来达到指针反转 + */ +class Solution { + public ListNode reverseList(ListNode head) { + return helper(head, null); + } + + private ListNode helper(ListNode curr, ListNode newList){ + if (curr == null){ + return newList; + } + ListNode nextNode = curr.next; + curr.next = newList; + return helper(nextNode, curr); //用参数互换来达到指针反转 + } +} \ No newline at end of file diff --git a/.idea/production/algorithm010/Week01/LC21_merge-two-sorted-lists.md b/.idea/production/algorithm010/Week01/LC21_merge-two-sorted-lists.md new file mode 100644 index 000000000..a84347b6d --- /dev/null +++ b/.idea/production/algorithm010/Week01/LC21_merge-two-sorted-lists.md @@ -0,0 +1,30 @@ + +class Solution { + + /* + 思路 + + 终止条件:两条链表分别名为 l1 和 l2,当 l1 为空或 l2 为空时结束 + 返回值:每一层调用都返回排序好的链表头 + 本级递归内容:如果 l1 的 val 值更小,则将 l1.next 与排序好的链表头相接,l2 同理 + O(m+n)O(m+n),mm 为 l1的长度,nn 为 l2 的长度 + */ + + public ListNode mergeTwoLists(ListNode l1, ListNode l2) { + //terminator: + if(l1 == null){ + return l2; + } + if(l2 == null){ + return l1; + } + if (l1.val < l2.val){ + l1.next = mergeTwoLists(l1.next, l2); + return l1; + } + else { + l2.next = mergeTwoLists(l1, l2.next); + return l2; + } + } +} \ No newline at end of file diff --git a/.idea/production/algorithm010/Week01/LC26_remove-duplicates-from-sorted-array.md b/.idea/production/algorithm010/Week01/LC26_remove-duplicates-from-sorted-array.md new file mode 100644 index 000000000..7c440b78b --- /dev/null +++ b/.idea/production/algorithm010/Week01/LC26_remove-duplicates-from-sorted-array.md @@ -0,0 +1,21 @@ + +class Solution { + + + //代替法,用j保存修改数组的位置 + + public int removeDuplicates(int[] nums) { + if (nums == null || nums.length==0){ + return 0; + } + int j =0; + for(int i=0;i=0) { + // when nums1 reach the head, p1 will become -1 + if (p1 == -1 || nums1[p1] <= nums2[p2]) { + nums1[p] = nums2[p2]; + p2--; + } + else{ + nums1[p] = nums1[p1]; + p1--; + } + p--; + + nums1[p--] = (p1 == -1 || nums1[p1] <= nums2[p2]) ? nums2[p2--] : nums1[p1--]; + } + } +} + +//可以简化成四行 +class Solution { + public void merge(int[] nums1, int m, int[] nums2, int n) { + int p1 = m - 1, p2 = n - 1, p = m + n - 1; + while (p2 >= 0) { + nums1[p--] = (p1 == -1 || nums1[p1] <= nums2[p2]) ? nums2[p2--] : nums1[p1--]; + } + } +} \ No newline at end of file diff --git a/.idea/production/algorithm010/Week01/LC_283_MoveZeroes.md b/.idea/production/algorithm010/Week01/LC_283_MoveZeroes.md new file mode 100644 index 000000000..500ef6dbb --- /dev/null +++ b/.idea/production/algorithm010/Week01/LC_283_MoveZeroes.md @@ -0,0 +1,47 @@ +class Solution { + + + public void moveZeroes(int[] nums) { + //把0用后面的数代替,并统计0的个数记录在j上 + int j =0; + for(int i=0;i=0;i--){ + digits[i]++; + digits[i] = digits[i] % 10; + //e.g. 1,9,9; when it becomes 200. it will end th loop + if (digits[i] != 0) return digits; + } + // reach here, only when all digits are 9. e.g. 999 + // in java, int[] initia with '0' + int[] newDigits = new int[digits.length +1]; + // System.arraycopy(digits,0,newDigits,1,digits.length); + newDigits[0] = 1; + return newDigits; + + } +} \ No newline at end of file diff --git a/.idea/production/algorithm010/Week01/LeetCode_11.md b/.idea/production/algorithm010/Week01/LeetCode_11.md new file mode 100644 index 000000000..96824c7e6 --- /dev/null +++ b/.idea/production/algorithm010/Week01/LeetCode_11.md @@ -0,0 +1,27 @@ +class Solution { + + + //11. 盛最多水的容器 + + public int maxArea(int[] height) { + + int len = height.length; + int i=0, j=len-1,h=0; + int maxArea =0; + + while (i> threeSum(int[] nums) { + List> result = new ArrayList<>(); + int len = nums.length; + if (nums == null || len<3) { + return result; + } + //sort是关键,排序完就很容易去重了 + Arrays.sort(nums); + + for (int i=0;i0 && nums[i] == nums[i-1]) continue; + //用while一样效果,不用回到for去判断 + while (i>0 && i0) break; + + int left = i+1; + int right = len-1; + while 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 stack = new LinkedList(); + stack.addFirst("a"); + stack.addFirst("b"); + stack.addFirst("c"); + System.out.println(stack); + + String str = stack.peek(); + System.out.println(str); + System.out.println(stack); + while (stack.size()>0){ + System.out.println(stack.removeFirst()); + } + System.out.println(stack); + diff --git a/.idea/production/algorithm010/Week02/Amazon_Interview.class b/.idea/production/algorithm010/Week02/Amazon_Interview.class new file mode 100644 index 0000000000000000000000000000000000000000..c24f897189824b27beed3502debd4969c89f857d GIT binary patch literal 2721 zcmaJ@T~iZR7=D&)c0*hQfd!F-(%M=G6)>gIf>M?Gk(LiDf<>ybBnvDgo4DD8+F@EQ zyz51$R~62JuN{V$)&kv{itP|0C4BGmJEj=2Avx+Hfr4mxHpqWD#iF=ylUv>5uoF z%Nk$g?Av00r(~I{++Rx@cMB5>Q~9*va+^?BGC4at(#=W(j>)ysGJh-{?BrJIs;OM2 zm=)E_i;k7%EY7Bru?nt)ma0mLaK%iIGR{+4UPgB}zl*Tvl`E?0sV1Xt(lt^mWZ0{Z z?Iu43({NHtWW0+=lF6iiE{SHbPr-~?GBX4@zd*zxe}q(IiD-Bo zZ)k|3L&IxgO7q^7J?1o=#W@vA8Z596t=^m}(VQ<@nY77bMR(3U)Wn`6FtZK$DS|(GOS(87 z(39{Ej{BQRc^(pC>_PiOsF5EKiv5h5%~<sLv7N z3AKZAAQ9Aq?HjlgNGQ4z*}(j9Js8)OfrkD^xDunIE87Ss)SqzRIW#V+YdpAxdOf&> zhQ>p}QiRngES1(4nzqm!6X#V{KZDM)?kUoform{=9KZ445T6WD+aRk0>WR34l{KLe z&1i+r+tkWB4-P=Ds7Xf`_YInZ$YYl5UkOnCPRWkZ>3Mw1S-T zpv;o6PB11Yf54qP*b-sA%ilQxp16khkRYy;j0%4J$SFqNXXG%{ko*F=ib3fwgrq-l z>kkC^kGl-vw9h_%r!USd#d;#ToQ`gzB$j^1MaEJA~tXFV2;3KZERPq=R zER}Gk%u`#~-s$&hUMBhfNN2!@(xWHR;38(lBj_{2f$H$n#82>jg&S!W64yHYR z7W{fD{H#^@S*!4~R_5mvKIG1VpAo8NgjSHd^)f0{Im2@=&{Da76E4yU@suzzbg*AS zWkCe$4rnBlFLPN^FBlXr%(`I1Yka-WAjL#Bcj=2Grqc*sS;N&4iL``Ue#H&;3mtv#mhEF%m!&pVIFDzUEqaU#Ftq1NR0V4 zR7hN}khoqUalK5UAVNj3rHy|`1%G>$sVLABRCER+j}eLRDN#1i9Ed(feUy&60abni mxeBUyaDi+Ugw6_t&I*Li3WUxo2)x-HXZimN%0j%}qyGRzIswE0 literal 0 HcmV?d00001 diff --git a/.idea/production/algorithm010/Week02/BinanryTree_Traversal$TreeNode.class b/.idea/production/algorithm010/Week02/BinanryTree_Traversal$TreeNode.class new file mode 100644 index 0000000000000000000000000000000000000000..1508b2f1ebb2730c0011fa2a2943f8099fd43812 GIT binary patch literal 597 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 + +数组的特点:连续空间,寻址迅速,但是在删除或者添加元素的时候需要有较大幅度的移动,所以查询速度快,增删较慢。
      +链表的特点:由于空间不连续,寻址困难,增删元素只需修改指针,所以查询慢、增删快。
      +综合这两者的优点,摒弃缺点,哈希表就诞生了,既满足了数据查找方面的特点,占用的空间也不大。
      + +二、底层原理 + +HashMap的实现主要用到了哈希表的链地址法。即使用数组+链表的方式实现。
      +hashMap实现了Map接口,继承了AbstractMap类。其中Map接口定义了键映射到值的规则,AbstractMap类提供了Map接口的骨干实现。
      +hashMap底层有一个entry数组(entry是hashMap的内部类,它包含了键key、值value、下一个节点next,以及hash值,
      +正是由于Entry才构成了table数组的项为链表),数组上每一项都有一个链表,如果链表长度超过阀值( TREEIFY THRESHOLD==8),就把链表转成红黑树,链表长度低于6,就把红黑树转回链表 + +JDK 1.7 有源码分析
      +三、HashMap提供的三个构造函数: + +1、HashMap():
      +构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。 + +2、HashMap(int initialCapacity):
      +构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。 + +3、HashMap(int initialCapacity, float loadFactor):
      +构造一个带指定初始容量和加载因子的空 HashMap。
      + +常量
      +static final int DEFAULT_INITIAL_CAPACITY = 16;
      +初始容量:16
      +static final int MAXIMUM_CAPACITY = 1 << 30;
      +最大容量:2的30次方 => 1073741824
      +static final float DEFAULT_LOAD_FACTOR = 0.75f;
      +负载因子:75%
      + +** put(Object key,Object value)方法: + +作用是存储一个键-值对
      + + public V put(K key, V value) { + if (key == null) + return putForNullKey(value); + int hash = hash(key.hashCode()); + int i = indexFor(hash, table.length); + for (Entry e = table[i]; e != null; e = e.next) { + Object k; + if (e.hash == hash && ((k = e.key) == key || key.equals(k))) { + V oldValue = e.value; + e.value = value; + e.recordAccess(this); + return oldValue; + } + } + + modCount++; + addEntry(hash, key, value, i); + return null; + } + + 处理步骤如下:
      + (1)判断key是否为null,若为null,调用putForNullKey(value)处理。这个方法代码如下:
      + + /** + * Offloaded version of put for null keys + */ + private V putForNullKey(V value) { + for (Entry e = table[0]; e != null; e = e.next) { + if (e.key == null) { + V oldValue = e.value; + e.value = value; + e.recordAccess(this); + return oldValue; + } + } + modCount++; + addEntry(0, null, value, 0); + return null; + } + + +从代码可以看出,如果key为null的值,默认就存储到table[0]开头的链表了。然后遍历table[0]的链表的每个节点Entry, +如果发现其中存在节点Entry的key为null,就替换新的value,然后返回旧的value, +如果没发现key等于null的节点Entry,就增加新的节点。
      + +(2)先计算key的hashcode,在使用计算的结果二次hash,使用indexFor(hash, table.length)方法找到Entry数组的索引i的位置。
      + +(3)接着遍历以table[i]为头结点的链表,如果发现已经存在节点的hash、key值与条件相同时, +将该节点的value值替换为新的value值,然后返回旧的value值。
      + +(4)如果未找到hash、key值均相同的节点,则调用addEntry方法增加新的节点(头插法)。代码如下:
      + + void addEntry(int hash, K key, V value, int bucketIndex) { + Entry e = table[bucketIndex]; + table[bucketIndex] = new Entry(hash, key, value, e); + if (size++ >= threshold) + resize(2 * table.length); + } + + +**get(Object key)方法: + +作用是根据键来获取值
      + + public V get(Object key) { + if (key == null) + return getForNullKey(); + int hash = hash(key.hashCode()); + for (Entry e = table[indexFor(hash, table.length)]; + e != null; + e = e.next) { + Object k; + if (e.hash == hash && ((k = e.key) == key || key.equals(k)))//-------------------1---------------- + return e.value; + } + return null; + } + + +处理步骤如下:
      +(1)当key为null时,调用getForNullKey(),它的源码如下:
      + + private V getForNullKey() { + for (Entry e = table[0]; e != null; e = e.next) { + if (e.key == null) + return e.value; + } + return null; + } + +返回table[0]开头的链表的键为null的节点的值
      + +(2)当键不为null时,依然计算hash值,然后找到具体在哪个table[indexFor(hash, table.length)] +节点开头的链表中,遍历此链表查找是否存在搜索条件中的key值,返回其value。若没有符合条件的key值,返回null。
      + + +***HashMap常考问题总结
      + +最后补充一些面试时候常问到的一些问题总结。 + +(1)HashMap和HashTable的区别?
      + +HashMap是非线程安全的,HashTable是线程安全的
      +HashMap的键和值都允许有null值存在,而HashTable则不行
      +因为线程安全的问题,HashMap效率比HashTable的要高
      +哈希值的使用不同,HashMap要根据hashCode二次计算得到hash值,而HashTable直接使用对象的hashCode
      +继承的父类不同,HashMap继承自AbstractMap,而HashTable继承自Dictionary
      + +(2)HashMap中的键可以是任何对象或数据类型吗?
      + +可以为null,但是不能为可变对象。如果为可变对象的话,对象中的属性改变则对象的hashCode也进行了相应的改变,导致下次无法查找到已存在Map中的数据。 +如果可变对象在HashMap中被当做键,那么就要小心在它的属性改变时,不要改变它的hashCode。只要保证成员变量的改变不会相应改变其hashCode即可。 +
      +(3)HashTable如何实现线程安全?
      + +实现原理是在对应的方法上添加了synchronized关键字进行修饰,由于在执行此方法时需要获得对象锁, +因此执行起来比较慢。如果想实现线程安全的HashMap的话,推荐使用ConcurrentHashMap。
      + + +参考资料: +链接:https://www.jianshu.com/p/2f50d21dbfdc + diff --git a/.idea/production/algorithm010/Week02/LC_200_number_of_islands.class b/.idea/production/algorithm010/Week02/LC_200_number_of_islands.class new file mode 100644 index 0000000000000000000000000000000000000000..bc026d83e8d11ddafa35ac84d61d24caf7bbbd7a GIT binary patch literal 2330 zcmah~OK($G5dMzuv2PwuVp88wsINm(nmTqNjtPd42ZTU~!4M!#5TG`8YzHnFC-{L% z*XfTai?%Y0Y>+A>Xi6)kU3F2ZQq^_Ut}1ok6%~(u=UzKD6;-3$$((a$&V2LDoXL+b zzS#mWg84T1aJUU!7**m(E5(=+<7zpfW3mmpGU&k3b{xZ$633O8)^S2@pVTp<8a<2G(dO6RX?&NAFonK5BEw!#~ z%JOxqB+!?hvHXh#UMY zhP_s_vc$k`%5;I3cFdR4nVV7h#5$`75$ag*3( z#wMlbRSNE|)oB>`x6in2-~kfc;ScP z#XA`AVh~|3cA(pfHxxw#dAo={@&H3YCU>1=k!DwgPPgqkdz zOUG0>b*psp)>@ebVL!5jEo-a!d@`+E{GsMsYd*BF3gtx=+IC5xkMF_9H{;?*!YH9Q zqx686z@Y5mYKVUY|GLAQ5D%%iu(M{QOy8vLbqufzySWm03jsVm6{DB&KC=Qt>{EM^XX(RDvKVPu2cyzq2W3S*3 z@C+@&{2Olmk~p@gLkzy;TGDGO90{14&^|>+BoH&1_~(!hmFkNv@JwcT>QYLorkFD8 z?3gk|MODP1q8}|b3_n2`Oe?@}D&T&+%k)D`KWwKRb^>pwI8{rLU})KGH^da}yLqol zOv2??Rp-;HfxpcY1wN<+?qhc#vQ>p&Gw-9zRE4cVmm82;qe!Zuz_+MKccKTkqX)O6 z2e+dKo1&Apz%kW2p+S|Ce838$SQ`}W`?BhuA(<$ z#tdmUS7$h48gdh!b(dhDZM^(#U8DRd&_M09)&XWd!qz&-${u3j53_kj$?FjeV~njZ zjuV)`DX!0Qf1VtwEJp}1L@U)=k}__$mZm^&XTDI&+(obVY~B^yJt-tM-X#t9*Jyo$HWzluC%h5&gr+pF z!1w6*3Z3fhDf>L%o~^9Kb;I)+ViCh5voS-riQ3DXxU?@e^i=)Mx{WWoV0d^aWwz>g zre5_-z0OnFC{Nvq#+A%AqSZZQwkeuzWBaJ%dNj40dW~l@PTPi_8!w)!$0F^yafL*K z(}4f!IW-a-T&GFz8ALf9jU#3Nk7cespSa0P$jDtqw* z;l+odA4_5%(jtmwy8$k;K(qLRk5A2(3;30Dv|EirFdFJ{3=kXVS6YMWx0o4LLd@$CQ5!*)8Jk&ij1l(9% zW&)xkkk`?8LOXXaV}Vk5CGTZ3mdUu;%XE~CKMO2mlPGN*3)I7JN_{_WHN*Cx)f$Xd zqO{D^;6`edWD}LD)EqyJk|;Y9_;m1s^PSGWS046>*q&Y}ft4^yRQK+BsPtDkj2S6~ z(~*q(Qb)#r4!Q=BNnM-dcM_7dW0{gj-~|{BlSp>K9th3Fv_fxsr$_2MGPiF1|H((D zWjiK{;K+@;?NLr+PL+=3&^3As1951W(_=k*o3PdfGaPG`Y2~c7NhX)k_w*c8SljS&ez1dgz!S>w Bnx_B& literal 0 HcmV?d00001 diff --git a/.idea/production/algorithm010/Week02/LC_22_generate_parentheses.class b/.idea/production/algorithm010/Week02/LC_22_generate_parentheses.class new file mode 100644 index 0000000000000000000000000000000000000000..fd1cd4a70e14e404bc4df7e2dffac5238f519dd1 GIT binary patch literal 3806 zcmb7HZBrXn6n>U$NJzJoLPMJ-X=$kxQYe+$strY3d_x1RMT^BMEM!a4h7glY74cns zfB)bYXPoI&XZ)&;!f0n4KRS*x_V+j)^*MJpn?R_oWODcJ*>lf5=XsuUm;CL&E5now(?OWxGt-1wq(iW9A%M9M zwn~Uh5ZMsga8d5h%Wz4CToY~cGUR1g5L+RL=OkV+gc2qtq8&gvfXf>6v4ymy!5GQs zt>SRbES0R1hQ`5cK5GwY@OAf`rPHu-+LFrVt+Dd_j8%NXoXK%nYieQE%$+rhS-E$O zx}C`~MrUfmvMwDO=uZt#4Gc`pS=_+1t*L@pwDNYw;zmgg+bj0d6?3*UmA9VP(AGWD zle%bLHv7wVHrJoZmTdZKd45NjSW)t9sds27&1i@?_MDlY>mRp^+5FteayFN?ij2^{ zHs{4cCGUOff(_OMNe*%S=5gDcy)qDof;;HaJgiyK~Rz%`HxuZ3z1|4Bs6DT zu&E^H;xA_BGQ1uBKcP0PO2P+KjwD6Hwr&@R`G%T($Ty=i%L-2m^}Bvfxmovn4EVY-92wf?5thsGDm#aZj2 ztTg=Yn>X`8=~V-Fpo_g*?b{Q@qPZvuve%Whz9|hHL(;$tSY$UDco9p~b+>_+@Unqd z@T!5=@H$OB22S8)0B;z06Uza-W#DbRqhU*RH${<#u3H{Gif0Xwgx@vr9^NeoN_$Y*OXVuo}xZ>8*RJMd6|@s@LTf*dr?(Lqi!g`QhAo=jJ$wO5yluJaU zs}{-%)-~Pbt*V7Vy=nM%-NTo?`~{#%KXBa7yMA7&IQSE*(7xlO0o@!Ml`()G&JD)_ z2^`>^hF7=W`JGlf1 zA&5;3Y@nH+c5K0Jw5ZJzPC$1vhQ>jaV-OJ>!kyf>oht`$7(V_7<0R)iJHls2X$eBR zf#v}2#yz}iz`gvkl{qqHZ8P_m3^K9!6|~2~{wruX5Ybl<_zA%VOngVvRooHLTbou8 znn)ao>C^Fu9`>`0h%Szs^z;ghiFnL$+w8i<_34e=1X8E+0agoaWA`wdsoq{*z_qjo0a21Vt$A<9ai~v zIE%e}BOZfWT?VVXiA8v;GR3phW$Gx?2r!MMXzU6)qNFSOJ+>&SR?rgh*N_&CUqw%a zvZy|Nv@sEGjFGkoX=`3XTP%7N7g?XIjtK*CU<`I^27YQHcDv{ul2hoxo@Z>;j zJmnRoOA0pOVM)ndC|yzj)>0~#BP7$MbZ?^9#quErc^HqlSbk21WXtQ$X*dSI|Duw}S0o;Co(n{ED_?RQeBy5Uab@gpm53C1K+J19rM{ka?61pqhm} zq=LmJ)EedYH4Z!LswRDU{bJ!_-QwsKbgBTH>{PU?jaque7vOi5{ zzPeqi;v`C_T4vQQP_1zSM3{FGBuc-oA9j2Fu-idK`eAQ^jS!1_Sl6&5UC|+pKp#2Y z*7&$&D4#04U1(xX&lB23bW+g=sl_B-rS9Lv6y74J?{fCO2PO0OU|aUoz3i!b*;Ds2 nDLSKoUanKOSZdUr?Cf;aJx;KmU_uRKd>^kNHcuPh6`jDpH10TS literal 0 HcmV?d00001 diff --git a/.idea/production/algorithm010/Week02/LC_239_sliding_window_maximum.class b/.idea/production/algorithm010/Week02/LC_239_sliding_window_maximum.class new file mode 100644 index 0000000000000000000000000000000000000000..99251d0394fae0c1bf07c24376d969880078865f GIT binary patch literal 1728 zcma)6-%}e^6#j0q$%e3$pP`~jYg@#Sq@)H4HehN?i$+6Zn+ijj5f`#ewk4ayP5vntY<(UDq)u5T3Ce+bakJ zlcNg)+HA9G33Qii$GXvKtXl4EbG1%SU#Yof))!3Imglxp^X}Q30wbkG%UZvX%a&$W za^sg)HtTlPc4{jRZKv9NxY97cu^X+%v_KEH75{Qk-3jQ)|LuY5B3X0~Zbg93^N0v#2*=9pf~ zCC1FZB9E`zey%l4n>+`T%SX^vJeP7#tNxg7jSBQ1b4`Go%{s+sGC{P`Y`JUJoGp8I z_CNbFCPg&Rhkk*9LqV^&uDPvLHIPPz3K;kl>`AYRIVzih&+xf{5{d@qal=4a?!J)b zCTBxOZt`*Im~z$^KtM;Y4~!-$O{?cZ8opA1l9hO#FmS>4*p{J`VE5ugARz|4bB`LY^m4 zpc^6dpo5hANj6Tj=XjeYp9%8FlfyjT!B@Pwi&LoMEWTreWP8hJ)MiU=jEgG;9wEWl z0RO+oY3_oo@h#rvPGhBQN_>i*el(daP6cJ|a~Ot>_n23z=zB)!d7qv*w0)Y0j--xJ z!9OlKQa~adVinFjt!&Z`YiV3_={auPq%73g20F;%vPD6D_?sgI=6X>9oBRjr(ouB) literal 0 HcmV?d00001 diff --git a/.idea/production/algorithm010/Week02/LC_242_valid_anagram.class b/.idea/production/algorithm010/Week02/LC_242_valid_anagram.class new file mode 100644 index 0000000000000000000000000000000000000000..1842b497bce2d308b01c1adb15610802f4968fef GIT binary patch literal 1564 zcmaJ>O>Yxd6g|%#dy>hRd^JFtl9sj*J8@!~hOZ=~O$`(`PC{#x2wEw9nM|Dldu-X` z2-b8_b=wt-sudeHK`I*ufrJp7O5ODL6hYhbX6$5u2wQXK-Sh4}@4j=d{nx*bo&cD_ z6$8DPFp$9s9iJG82F|2`Pcfz3lggaZaoRv9&M0$MA=AptC^M_fIURF4J`;$~Ijn?;1!Mzte9l%07==osX4w}VrS;%` zI!-9rO!T2&$GnLzkQM0lr3_bN;yf;p)Wk)6Y2p%cCceT#JJeUbRgj51vMO%T#1fWG zTvq05ESUHP1%aWrG*zHyuZzp;*KJERVGr6B;+4Qaf6iRVc8lJoKXYti++t_vNuVWj zDc(xw{50(49|R63v#F4hyR1~Q%c{7Zblm!aeT#Dvo~odp88t)EqD|i8`|XB!TL}Uk zj_a+c!#M)1B^1(bBCD&})snOra%LaeP)fUuHzC$lZLqF*%`R8A$fP^<3+1ZEi||)? z4M)+#AG!KOzzIe_?K|``d<(u~qdO1}{OtkScmU!c*Jf*d2#4u$l<+Pslf~cApc8vG z)O`#x^BFlkL-}UJDc(PlI51yHai( zbSu^U?(}H%t{bJ%U8U{|EJtzpgybwEtCZ?{bpa7^^VE|7fy{H>rHTf@+dGR(WpTMn zSH(>2*zXUU{;RZuRK%Kq)gDhL{oqg~oo@cK3-8!}<7Z(&nz)+9HS7v({jY6-)g+`m z@}r}2t9KmqV}X^wRMU?`PVGcdgi)$f5R+=0Z?ZBV2}v|*m3a!D#;vaqU()9#V)9H9 z7l_&U-NHp$g7z|z!Jh*K#(oqu*6ec+w3u!f}B8f@Yk^{um^ z%dn8c3i2pm13ScfaB#>UtBxW%WS(&vFR=@S8yMqeD)Qk>2xAkGl*9}+Wm*_wmANy- zfcb6Kyo4UN&3busSvi<$F2=ey_eW{oOCsN^&S!)(R0#j9SsF5EY~ZjmNYaT?sJa@SO{uMEj^v&*2D zZCkh{i+8(%M5FRnh|7(wVx?5u-r225r&GJEy>rF;p0H(2SfWj|o7voB&>Bv=!(A#6 zKD4EK#juvGT<{OP*psGJJmH;;r{5c^G|CK&Go;2^$yR4r7zKXSxds1XT+n`BX>q$% zEZb7FgzJ|cQ5_KU=~J_1bJKk8pc#h$SSvb)SzV6_;WJkVcNGIbf6Rx8$hAspq6NK<+O}+@HN8-xq=T_d83|Lr+3zj(+`_YjXf@5fjo8p0DiMVz<iueJPwzORewO|W~7Lb)?7c90c15YjO;)RJJ>6HmySU?Ejj>JUcjs6IKff}(s?{rId6Jk2aydUR0=e*}U=e#pN z{rlr%0E4&@!%H}6;_VnhI2nV1chqXs#3{8otu|*&yldiY3^9d>BBg}yHQ*f54LFaC z8nPxXD&6~P7*oTg1~lP=7}_yzV#35_0W0OY(i_d&<+3ab7{?sf@lObZySm2(w9(?M z6xfk=T$!m9rlohup3YO!oG#AT`ElEG)V?az`~`MgB(oeg-w=57(FWNWlWW{&# z$@6w;Zy=@<;V@3OQsBvZ3lxEjw1Ow~hJs z%o6hqDq^CCT@-Xmj=jLV3bsRL+qx!eq8;-+$DJPu%58h|q_O1%YJu2TvEt3hGmfhN zp8v0Hzbci5o#+r~+ALd@D+^aJY2hlaZD?ybvhX3MEL>OG_D$P5rr2a#>ao28DhNh0 zjTsZO79{3Ocd2KdNO8L^W{i4UVziHz$Hwb|p_YN4siJ>%ME7 zttzQ?RTT+D9M>OL=LJ`sS1eqr&|{+NG3dR~VxeRQ!3A9r;cfMn$0T7*T~((6jw01_ zn>huTi1R$NwmSGm#~cnaM34N=Tv7Ko*tBloYe=g2-TPzcX5~GEI8{u_aMIKB7~PY8tX#r=Gv;RU%{)~ zMO70}LSyj3ck+g@^RG9@oCbKwn(%A2NF5#(ik( zW0wBAi<%R@Q#+coZAfI<#38#n2k1lF;#Vxwg z!&$8kP{w=3aC_0mN?k*l$Rta88$&oqoQ44++o)Sd9eR#BOw=HCLx@J!s5MNyAxsRZ zi4E{42A?5e;)sc(-G3wW3{j=|2XPZ`{>A2rVi+Uqb;l<>N29O(jmD!`E^KCV8eg5S z5y|FEzL7>Fo7RsX*mWOmna#Fp4$OKNIFEM d2oel4p%cV}@D`~DOAumd)Dz*q{Q^3T=zrvS>6icj literal 0 HcmV?d00001 diff --git a/.idea/production/algorithm010/Week02/LC_49_Group_anagrams.class b/.idea/production/algorithm010/Week02/LC_49_Group_anagrams.class new file mode 100644 index 0000000000000000000000000000000000000000..220223e1cf0f00d6ec0c530819d1377055fc1c99 GIT binary patch literal 2557 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 V-lD9$&eP@sn|wRiUB(q${Rfhq8&m)Q literal 0 HcmV?d00001 diff --git a/.idea/production/algorithm010/Week02/NOTE.md b/.idea/production/algorithm010/Week02/NOTE.md new file mode 100644 index 000000000..d6635abf7 --- /dev/null +++ b/.idea/production/algorithm010/Week02/NOTE.md @@ -0,0 +1,94 @@ +学习笔记 +ArrayList / List 初始化: +List list = Arrays.asList(1,2); + +Array 初始化: +int[]{map.get(target-nums[i]),nums[i]}; + +HashMap 源码: +为啥要这么多中间变量呢? tab, first, e; n,k 感觉诚心让我们不容易看懂源码:-) +这些中间变量的作用是存储取出的值? tab = table 有啥作用,为啥不能直接在table上操作? + +putVal时,如果hash key 相同的值超过7个时变为TreeNode(红黑树) + if (binCount >= 7) { this.treeifyBin(tab, hash); } +--------------------------------------------- + final Node getNode(int hash, Object key) { + Node[] tab; Node first, e; int n; K k; + if ((tab = table) != null && (n = tab.length) > 0 && + (first = tab[(n - 1) & hash]) != null) { + if (first.hash == hash && // always check first node + ((k = first.key) == key || (key != null && key.equals(k)))) + return first; + if ((e = first.next) != null) { + if (first instanceof TreeNode) + return ((TreeNode)first).getTreeNode(hash, key); + do { + if (e.hash == hash && + ((k = e.key) == key || (key != null && key.equals(k)))) + return e; + } while ((e = e.next) != null); + } + } + return null; + } + +------------------------ + + final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { + HashMap.Node[] tab; + int n; + if ((tab = this.table) == null || (n = tab.length) == 0) { + n = (tab = this.resize()).length; + } + + Object p; + int i; + if ((p = tab[i = n - 1 & hash]) == null) { + tab[i] = this.newNode(hash, key, value, (HashMap.Node)null); + } else { + Object e; + Object k; + if (((HashMap.Node)p).hash == hash && ((k = ((HashMap.Node)p).key) == key || key != null && key.equals(k))) { + e = p; + } else if (p instanceof HashMap.TreeNode) { + e = ((HashMap.TreeNode)p).putTreeVal(this, tab, hash, key, value); + } else { + int binCount = 0; + + while(true) { + if ((e = ((HashMap.Node)p).next) == null) { + ((HashMap.Node)p).next = this.newNode(hash, key, value, (HashMap.Node)null); + if (binCount >= 7) { + this.treeifyBin(tab, hash); + } + break; + } + + if (((HashMap.Node)e).hash == hash && ((k = ((HashMap.Node)e).key) == key || key != null && key.equals(k))) { + break; + } + + p = e; + ++binCount; + } + } + + if (e != null) { + V oldValue = ((HashMap.Node)e).value; + if (!onlyIfAbsent || oldValue == null) { + ((HashMap.Node)e).value = value; + } + + this.afterNodeAccess((HashMap.Node)e); + return oldValue; + } + } + + ++this.modCount; + if (++this.size > this.threshold) { + this.resize(); + } + + this.afterNodeInsertion(evict); + return null; + } diff --git a/.idea/production/algorithm010/Week02/test.class b/.idea/production/algorithm010/Week02/test.class new file mode 100644 index 0000000000000000000000000000000000000000..1719f06d3c1903bb7aa20275c2f593495c401e9e GIT binary patch literal 1043 zcmaJ<+fEZv6kVsC>69`E0tG9ef}&Fp3W%tH^+IA&(}+m{L;7Hb_E-nonPxhLVB+OX z{TzKLi5TB}@kjg%<2o${gvKV_`<#7Qd+l}R=kKrI0nFom4BZ$va5aXI@}tUM>wtx% zfr%Ilj7Kr4{B>ofl$nkpg&7002Id4J%Z}>=X@Rhn+z`-KyrLB7&N{AqQm<@Df6d-1 zGt!&&3U+zJ_8oOU3~IqkrzX&qeJ16rnYmOTYrzshDz@Va3|RT>w!LGg%C=idd_2iQBlN%%X`UEE`}Xje7!}$K(;{IYL?8+Lnbtz%1H(wbd8v)uJ7cYt+hQxJQ!9 z9V^c5)dE@Ja$cP+@s_lXmwHNF1F9?S3U!It)v9!<#FW)W{8ORB4cItrWs?6%M+2|* zf&%^4=|TeZHTU|LkbqHD^vZnAcsoKHxP&wOhSe{`Kc55q*mz3O3wnKGAL4T}-A5Z~ z25ac&*=!Xcjse~}Fo<)EsODd+i_m)q2yN~ooYn6dY2Ek%Ewrd5w6O6_-wgN6tZ!<{ z=*mQBatTdqo0?tEO%9JFvLz-_% z_Z>HSkH`3cHGG7NPt6t5Et*K+JnN$OT%aZ<3b@EqnDu$8H42RgLl|RB LXXRz~g>dB${=VjK literal 0 HcmV?d00001 diff --git "a/.idea/production/algorithm010/Week03/.NOTE_images/\345\233\236\346\234\224\347\256\227\346\263\225.png" "b/.idea/production/algorithm010/Week03/.NOTE_images/\345\233\236\346\234\224\347\256\227\346\263\225.png" new file mode 100644 index 0000000000000000000000000000000000000000..1cbd7549998c15feba01bcc068d359537a93d65b GIT binary patch literal 272109 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 `q^tk8HzHVG~L(tWgVt=5k7S#@bI`gw zSW>;KWueiD&+)gOVXnsSpELX{tqzx;&~cb&{70`IoQk_59*j*~ov1uzx3%o4eJww} z)8@IkkEi#7(&MKRnP0mg#}e+*=BuXk&;18OSQFh~xNEpS2pPVWq~9R~@rSK;aiPkw z)&cM4^7Y2d?^3Aj1ufoddi3#64~B<@F!RQ3p&_~X(-E|FIVMc(E=}*<0g9Z#$v}m- zG{e-IRl|NmKC7*AXXci3JPkBqr8-POEhD8xZV}gGg*X!ia_p8wKyCVQjI_`;_VUn^ z^rPnZ7mR@Aqf>3Cwg-@zqx_&mQsP9<#kz}{IC~Snvsjqxvw(?&-b8}ipJY*rknZ*n ze=_~mhgN=e0XM$G|NA_Wmvmle3dk#Wb%5Z##Oku|a z@+(KIoSFNVLzo;m3hgxErYFlvUyh~0Wq@}$Y`@&|4PSb^@wfkZ_gRnOf=S?-?Mmoe zDC!~9%AAz`s*kbDmy5Dd`c{sDucm>a@JL3?3DMfx^_#2!hhZz$+?W^sP4%rRJ-ZB$ z^a06L(cKI6*sJGRF~5UV8n<4@;)NmgXoi9dSJA-2%c`f(Jj|> zZ09eeRGuf?nUp!QBH!}2E|L8J`ulRcB9L;N_U#m6drzRqv6Od$_=3FlpV>NWLshTi>tU5g1b%gn(!-*2c&X9+G(E98}r6z*>ck`{=_q!oSWYDEM zLJ`^nBA==2qe_29ayltNDiId=eLBWD8U&$iSCR)7&ZBCnEK+sHhw&xsj#=du5B-Y@Q6H)g zmhMvpiH}m=oK$j^j98|uGxyxutd&*^J5e>1WK{}!Nm4n(7NK#{SMsQqw3{r#5Mk{+ zz~yM$XamdfAGy6`$J8}X07-v_c8kYpC5{0?QKaXX6RJZ~CARd3<;UjjTsEH_1?JWV zIpv;hFJI{+-v4fdhf;@|sSUgU2co%PuI{jedx5Ps?tqxHq*k}(D#SgVa`vTX zB2>-p_i+#W+gaF|9yaa{rE%3$TnHX97T<;km8_FLx0P)_O}B+0kYKDM{W{?$1ZW?{ z$JFLdtF87mZ>sN)#Gjg$x!%8!OYIbh4xy^QEt<2gG_201AQ`ATelLsV94fCD7oy^4 zli4L1M1XI1^CjnJ|Eu>;^D8Mdi$+JJg&MayY)BMf9I|4fv_V`9WOB8uRTPOD;vO{q zU%xtce}}JkN-~pBlpjkQkNb?2=#m52XFJ+&NN49V#=E{HahS-f4i18`g&(nRUQITB z-j{!iH?vnRgo!^>c=FX}PFVlsT4&&Sfojyc9c=RlG6GBO4bCTP+QB z@vBnz#fE@;)*I_m=|3Q}_5POdY(g?=84>Q=*l67RV#OlFEJtOc-@7!J=TroOu)sf$IZ$Z1T#v|zW z&bRQNl4&X?^*&Bx9%Y=Yw@3A^#OKJ5#CzYVW@l1R+P+eGl-{%-f9-t7%y*m4fe6Za zPZL_D1RB(jiN`KWeGd{XEBBDJ(S6n=;F!!1+@9_m-OcMHQk&hLB$J1Wttn;)yY%Yf z0`l|Vo_Q@}1(Mip?*;`9T@&f(YM0|M6X=hP?yAh#$#Euc-M6FFRRD;XA<67Qnmec- z?OxOZWr;3`c$s&-`|i%9yU{jKE`AE^ByN1T&;riB<1y?xc)h1QQC>2~m#hT;x#pf? zt2>{@2k*ssOd8g(Wl+r2lp-oiOXEmyqd*O@L!@=&tLgIO4J2!)&cI`%l9a_5NV|Dt zMWb!GhvQ+Gk9>C)&`?EMr#23IK<(5Uc=P68NPGETNc&;0-vV}*{K4or^&#Ce99^A& zFalbxhXtHd4PJlLYTRT^wwfmM4qio}>95|CGt7bv3K8 zvDjZ6tXKwFGzeWehZdRq_#37_LFYgd8v|FMpMOP1FPgOzxJp~{gDa%gGTmsmFmg`D70yA6%Suq9?bPJ3 z7b~DF*l$_5Qr3Rmf>adQ5E2c$MCP-*8{P|&7EV)Sc#9{G=WdvE%B1*eleX6y9SUpb zg~$GOV!v?=1Ji&|uuuEb{@n82iz}P=EZ!$*pfLml3^Sf8 zC4u`<*SVslrlE+Z$vz4XkHXo?bR;PTC{(6)W6<=13|3=Ln|(MJq;n*EFQzf5NVp(Q z%7TX-D{nI?y{k{0Z&zzO-h@*u8X?d zr{ml;F|x~6lWPlrIJrr-n3+RRtvRitH^v;XTh!)d3?XX1cLg++i1SNImY$fPw?W z&Q)kY&T@t#H)X`QXqeh23*{7{BfsO8CnYguw=?Qs$>h=Gs1F~Zz8rCuepH6%aPrAMVBwl9k;I@)C5D5-KPwS(JP)$v%ahMO z+Pt={1LdVV7%hHjDev4RbN$SAj9ciV-A{LN1!L@eZQ|9wuxA&7gAG3hp`f(!4YG=Q zq)4W}lJeIII@4aYfNOQ>P7)&t%Z7(9YYBn@yWS;B!-xM z@z{SjH!9qks4n~u_trJ-^UgW z+a|A@;G{}q?vRP`5)pb7{#Vo#PrPdr0++!E<;Eb?Y7Yd#C~ zIXNkF98SzO5a?&~Yt#iST8-dmYoh1WtZjC{P-?yy_P#z|nvqie9?f;J(6DeKosMg5 zocqfM37tAJ?lC;(_d5hk3xfj<-_Be8G6&E1enB-1WSnPOf)D zfT>I>7IInCj^~?251@15!u)EK7k;o|$%&WtW|9S`r`ZHQz8{)wm{KYDxE%~og-21V z{*2gpn4MeTeVujs_<$;uJTZIfd6VVf`~)+eRD=)E#SEUL$7S(5 z{zi=lRzQD!8N3xdM0{yZQ6KgFmu#@Rrauj%kZ#XMOT6135&MC0U#KK>WjMQSNB*R^ z6#XdHEfbA;`{I=2GE2h#Rm)hoSgc_y=w?`_XE&9izR9ft+3BYP>od)eSJ|z%FKMqK zT@7j#dx_}^BI%5E0n0nm@bL|m44d;(8Zw)0U%cmh3t{0bEth&rH}t6%jLwA#H{Ii4 zp(L)>FLZy)>liR)L#ljJ&e}yGiib|*Dn#sjwR^opHeZ}IC zVLNdLd3Gxi2krR!pK3C@*Sav|@)i=Mm(R8u;XnVzQ>L8_W9pbDEPPSg#^aAJl=1ra z^By~4t>S=8@eu}xSP&_C#?)A)~YUDn;)oay5f!x8< zzhPEEgv`LvfH_4R5rNFTVW%aeVT_94{W3kfE}Vrn_1+Y|a<7VkOjsl+EE$NYHJ&^+ zyMBCV%xFBmDwWiUk5Zz$)LivzC7pC#L(yik?VnctpkHtrZI}MRtX(G+1nwOkB@QJVFjOq**X;|W`Cx9g`D+#l2 zS2x`?NVSR^sbCeb5Jxo~SVzfM{w^vU`Y9c+Ehb&?aWr(uT3)zjrzgjEQkerkiD;oD z*9NDaWl!pLx!WlNIc3`AqZKr%kyWGvncYFA+Y7CRpQxc*`W}P+E7teAnC#vMkc|EH z%gL!*=IVa|^<&3op+@518@{ZYy&QyOPV`8EIm`WhXH!(uUhDpJsK4+Mo_D7~!oRMw z{eQ`aYD#I`Jp8sOb>J=P>>*L0%e(6`p>lbE_SJ>UBy&vnRC(zebE5M7a6E4U!_gS?>H;ZC^)@7nObJFkw!mB)ME zKI`FGe7qG}OUCH5dNFy%AZ1@UL$1cd>3V%=)L0-{AVKN(h|njn!!W*YJsmFs_KN%{ zAzXdD_jL&Ghs5Cbk?_^MTKB1Rn?SCIB?9K=PVfg^?i!D8ZCo8sRau^;e)q*y`z;GE zl5NQ)-(>pqN=^it)dj{mgYMk3wU8{39MK9JjK^}(V%Dr&i7cI1AZdO0@v47)s)B28 zDJMBe>k#lAA4~myDLQs_#anr+yg+i8mawFm1@Dp5y1tqbUYW4y6Ke|2%dGc{D#XfS z((WXjEjck_v8v#wl>NFgT6ps!U6KZ>He3^u6?f?I9ebc`Bt|ppC6?VQdq!&Qyhh`1 zDy$7?sOvMxE@g1cQ_4l68@WwZ6V2m0m@H|YvnOngKDI-@c2qWvNCK)J?@=XyR|3Id z9)eqeRHPc*#0Ft&_&pSDWL?tO3x{$kEl2&~IKNV;{F(z(Z|7WSZ%j2s37?Wdrgscq zz~ROF8iiD#yUngwhdwj@7(Bqa3MI};{k50x`40^l@uwFGC1H(Mg zt&IKv=FIG!m!(fWSMc2p=y&cEja?}!m^2#SX(4?8s>R&o+oRfR$j>VD69A<|jSJkk z^2unQ$(5g~CDQjYF5XSuXngBA5|&8~RbP!=$wj4g%)2oYP(&~`Y;X*M$6e6+HD&ua z?QMQ`f=|u|sxG|}%oIb7C%dnJOH`R`RC-UH|Fmvc{`ag7=mK_@3K6NgU=EkL<)WU>JTLEh>0vcq`G=SLgJ`Zo z;ISuDzYu`%U*E#E53My*OJ!uRWLrd4Q{OGZp3&A<-ACS!POA{Y3QfKL6d<0fd~G*f zXw5XKVGO)zs?6h!6Ne)ZEKPsu8%GtPOJYp)2@$ z5mX#>UbbODk?kb4%O3w#|7`?OliGPD){||sx@A@V2)ep0`z0|$`<_*ns8V?l-I9K>v|Rb$c=$ zHn7!GC2&B#Lh>lP6o%@bB;J7*>fcZx$O@3T;KrBv>12w;q9TA_sh?TjbbiZDj&0>z zK#Vm}Hyi6k(MN83t}a%~--HZ=Q-Plln}78tUX3T1=K?sm2r0?wei&zgcO zpP8UfBIbB}@f!%R?CIoWiY7I(gLkeCK7n`0*B-^F!#N$#x3W6V&(``+C~SzkfB?$# zNYQgh0-+vQ>g|*qRK5Q+#MCfgdKhbStB8fdLQBTm0|-_nF|Y$}vQSFt8n3=w!~Wd# z3OL_3u$O*gk6IM~o?h*&$LFxwFWFr6NEoZTs!PGIYfsKZwt&jCl%t_u-5jBjua4N4 zVln-}lG+YFBeL*&bm?(XUH_^ErU#6_ulYY)oNnWOSzL zGO^L~TK6v19UhlhIM=`-zoV4ntj=jS#kO$jymFWn${kbrIvvnXA6=~-=Ch$Xj2<*=C!WL@nQ{6UTdAm z-!~Y4Q)%98>P(`tY}P8D#yv9|c~SAj9#%g6u?TX`&OggK9N;%s7qFUHBs9^!)$}#a zj?H*{cPyYtI-hsNGMcCX{CYSGu$ov~edeS5?b6e! z-ypP>;7EbC-Xq?gf#%Yj)6zfU+OnPeFGAWmA=Yg>ru1huT;06)NS4q?*eSFRVETScN- zBzm7y;m)_3$sn$c4+;=K2(G>HlX`a6#pvO@fi&HhkvEkft)lB4rEY)MZ#ut>uOKp) zL_J3BGAO+kdDi*$*rmIuMC)LeKsS9J`mM%zn36H$Ci{^WPN5l^S}^QSo>Iy<@*00C z8cjGb(z@?Bb~P+O*f>;iy~W!~Ks$gvJ}Bee1^`y%*aP#C0Th|WVhb^CSE9(8tx;6r z(J)&Ds0jiWNDJWA*2Z_YvD1-S@4^m$Ty7Y|rAFd>P3m7SOZ>lH7H4*8T(A!yp;O)7 z2$2$7nS!JDcN*w=D26^82CkR+DqT@cc`hzD-PI46xq|#yho>W>(M6^=uXhciNO&0I zY{jF{f!~rs=)3h1Jrk5V*+D=)0+T|mA0d)Z`hg?)Z6z;73R))k`H=1-4Pu7J3ifebsR#`{GjZh&4F%w8oBHJ=T}24$s}O>nJ0m|#H8@bI^> zBFRCA*oT%W5Dvv}mP{_%{S~Egl;kRVsX!VN$z$P$sth&AJ!!hWiRS@Ac9K!+UkfBd zD0<~c)SKtHQO`&Ieu+rZF7VlVy0nZd+MLY-Jv$JjEYi4_Nfs+Wcnhdle5Inx6xb9} zdgu3~%sjm=Py9~yh=ZUtYj zeL=HGFUPl^R@Y76{0GE4H&(W%w8q%7k?u{xKu4abvFGK4;4hjv9?_TM85<5KWG@Jw z!TJ$6msmD2kk?SwTa@aF1AapDM|rvlyJ8&?R`+7MNhy1>g!xzMqtSME=ihf+P@w+mMo`b{ z28<)*?S>vtsmXo2e8x2O&l^jyB4a>qlACqIP0WeC5Q3-M#q1A43sygUur*7#ZM($4 zg7#vi;4@u*IUe!%vR@UPhtkvtr@MR!mOKUG0M7Y8f5l_Bio0m*GnUS6)Ae?G-86F- zb4$$QKJ5?6Ptew1WZOC0uw{9^6_%poV+lO75Hw9efVrtoRmaur#$|+GQCx3*h(_PI zjR>`u>R5Gpat?`(%cQ1E2PS{l$reuWy|m1c5`YoGGKVwkkaqD(?|Sc0&Xl#FQ3jLH z5;N&QE>WllqTsaHopo!(1^U<6@cODi5(yh1U_<@BQrY+#S1ioJcv>-or-k`=JHodw z>uk1@x+f|`5uEO>`Oq;rB#Q(Lhsly9+lTG_a9$NLzEflLac2OQpqEmSUAK2UC92N6 zTH?xo+6qViv2+peChoKBt}S9)|7B|u81RoZ*>1OGvpu=<6Z77(SO*p`gC4MrI&1MbZpl!BW8^Jf6hJ%$91RhB9a5hE`b*V7&V}Ry zc>ANzV>8S56;N$LJ&?_$|EeZ10{2(I|1~eKmX%%OIM_Bs2X? zD7?Lm>N{CEOo8O+(u`7y!kLxtg$hX;kS5lAwsaYpRUbxq`<+x!v@!0wvUIi$XL6xL zDeyUj(i*=r!Yg3o7yKNsuWdmQS{}}Qw|bdlUl(CYgbr`Mj11^*8v-``+VzieE=~f9 zDsQaD#Q0p>Ua7RrFR7tVEnM3?Nt37DB40PEHSM#XpElrVtid32%A9lTwQFqbH;mvQ zy}YqjPJm!iKzvcKLmVWh$+8MC7A9h{Bw$Towi3|5FHPi-!Tl$>{TG0U*8I7??sj6> z4J9Zj^AX*wW4p!pO6nK=;^pcxTrXE!!pQG^UNKh z;Dsjp`)S{vUFraV}A%LV1D_reS|Ete?SF5lTa56k*8gXS`le$uD;qFS% z(*kLw11U9=x!?e@*lH)KZNfBYv!W1?C`y6p%Q?Hj+0Zv{aO*rSutJZs=3L>HoB{S6=Xf-)Q_1 zVF7sODF~xy3R57?>h_D2zW#X9DSXyR)H~9vqEMjJcF|cQb7m;P7ZZ_0rysC*e6e7D z;Ih&3>Q1OXp6w%SNjx23jv9iWeK!)rL^@xr6F}>dP z5s-z7+IG0MZ=$>_#LP_5)@Rv;XkTdk^d8j?a0S5&eXebSjq*T>BBQ?UvX4kCG{t9O zW<<%?m0s$k&~N&eOpJiz8TmBT^l|o>6zE1VS)6AR&?A#V!xvAhfFmS#JM03m^EC{@ z4^?aj+9P~j`}dZs8k4i8f__KYoeSoNZj0a_r(-Xe`k7ph}Hce&=*XJ^ax$ zq{pWlex3i}{`mn)&XsZEOQ2|L7s}n$bMLrQa%6zJz?$@&Rt)L@FTa zhywM6s@|e+=(#9rIR8jHd>yhna9jsfJaDppp>)+%dhFx+Bd$Jl{xfZ0SZJPCvx|r0qNf9fuZe2 z@ewgT;^MyTh(QxzD6-Q*9z83Hgw@+RSl@>opH^-jfJHS&0?x#1Za~Pg0A#g|bUsXZ_^g$M*SP#^FO4P_jZ z!2mS@)BG^$ciWM2_8fz%=NCv$J%HQf&)zxvQie~dwGN^f@q2l!4)@GNa3h|A8w>1h z@NITyg}U>GTgC{Zw)Xh=oIY9k28dFw$j~X%+aC+pF-*{Ij|m{~Wt}Lfth<_smB-bz zRVfY!Yj0P(uH|&!>3us~0_Z$X;U^yswh!grbG5Vl?G0G-U63k zjSDKs!*uI^u=Ps_YDy4r#Ly$y43-r25tZPWMZtx_5T187STU2;in8d!$f96*mB&N4 zWT?CI7$*GFi}uwms-K~yH-O|lCMlBB&Wd=5t`HdVcr-Rey|9W)6CgTEcs&qc&EgkZ z8Ea4f*~4*T6sHgzOWtb5TzsC{936UVE5$J4by#0MlpHx77o_G~m}`yw?cDKXHySPQ z(j_T~WBPb$JBGe&2dQ1(%lQaG0;?51Q;)VnKrF`=F5`t9J9=e)&{Dk^{{pia>Ub6F zb$N{EY^=`|NiOm2j4ZeMD(H6p0YkU*E@w7dN4%Fch_=!!gta3W%lgSf_11hsY^ z5Z%W9t`ZBSfhp|HDC54`O7F!vH5W*dQ9FZdJMMd%YWUC?ly8}6BReJ844PUX7@!1K zr$Iy<#=TbR8QW;9s;1^+(9*%958!`GaLd?zYzO^dV|T6nx0m`!P$`#L5Hk7fnUPc% zW<+!RjdPyj0T~kQEwVclU8C1;1>}rK(0l4yB zF=hgWNxj^QN1EfSQ%i!c0PEyCREcLV!%1{H4qe@(-?1Fn+*Y6`Tq!M9TD9_WS~J8^PrLGkGX`Aix3oqQ(e1oxNI)A$lFgl@xq* zAR6FSJ)n8T3k)1^upxIZs_IJPM4rjkIsaNaJZ&iqNyb@Z ztJa>*_wWvWE}5}1V)TQ;YI>WDhu^Oj(f@H`Cjou3BofhW9H~%6wcBKIuJBWS1q6;X?y=+PjY@o&{vPDIu2Sbo3dTu2J$ddgw~Zu+Uxn8$Fo}*ko12enuPRc7Is&b z5Rl_><8DUh3h)CRk>q9taGx6}e6p z>S%L|gBP-~H=8v864CL)5cbhAcq~|}+TwSDAsw5rg%)BK3w{{&d;(HLT_4;;j*P^W z0Bj&uJuJ@!u|2M5P$d55s|tZGXhv!}Wri^B-n|0+BeI^PkX~pm@yM*6Z!Cx?o=l!D z%ls4FOprHVWeAA<@o(S4ALFk}C077i!={@vJTar2ZVC6dH*V3^9CLErC>DZR6nJf7J-8rrj03^`W-CZ%#yOLvsnIs%h05v6TzIMIxe zw@eeF@zsA_rsV|?hPoCLJI!}vJOOq0lDx*0lvP|Ojm2Y4IWU)2z)Z@dE~`GbQ2ebu z$kD2Czff9B6zM){-)$02qRxk8c7IUtsG1F$YsH%ShtOzzm>dY16Irv^%X~t0-$YfL ztGX~_r6bzUl)8Ki_i|ULzCV3Uz2MhNlBEp@l`OuCc+5{~ECy%(ZF|c8Pup{v+nr#e zC@4zS;yj1Y8-NHn9$80n#BTxGB!|ZlLcxY>nN=+oC$cUTXkb2`bG^Wm)XY#wn)v30 zr7P{si^qtGcij4!S4`sX;%D3tUK2)0yk=KaG!Kg&-D!@^tKaePJxhZ(j8S=2aSjg^<%EQD#{Q@5v_zeAm zh_f2QNBC}h38eBkno#UUQIX%#Hbvzwi-=8h$NLKDpyyu-5Xu9P*wC5#P7@nGXgNy6 zHS1*QPw4ES`>R*tG~M)T<6b*)X1;X!aYjS*#qhty%!L9WlBnOiGHZ|*mdSltU4o8V zKAZRMNZD7&ooGpOXG+vZdG$69xE1Sy_C2+qMx*ING#NBo9F)RuQs0_#y1X+C8nEhE zA8aQK4`TSZIf~37-$@Gk>=4cy#*uhKksom~{;D<^YXYM6U|Zws(N~(?uLsl*Z&F7R zB$z)mS{L5H@0ctT;*#npl@52g(L*leWVUB`^?@5XWuHbJo~+DjToIz^X36Zj0TH{0 z=B8>#1Q7R?`q8WCo2a6f`onZjMSG7P@peb`Nk}{0ReD7~qxekKWmmr{;de@WC%F1!HxW|?^ZNm+isvU0?;t=B&vnON{!1)@ zA#7KGK3)CkG~q&iNs>e1Ob*1*^)pGhoJ)3UgDPOV&H!)rd0JWa)BJ9J6okTM6N6_b z;E22!W|twim4VQY>hpeK`+waWd4^k% zclD=*3WdZH3Sh_K%dOwapbx>o5;}w9)o+=9`^XUrH54K!23iteT>D(bdytZGDw` z3mUFHmaA(3Tt3yqi_aBe4sR-d8ff0s14;-m0QvuCR5W-TZSUHV^7asCC5u6lRx>f(iHYy zR_7k?A&Fw0@_Hg2x5j+`a%n1{uq}Kr%6XA(ihFyEpg={7HW^^_c98GUQFlEc-?+^( z$saoFh@Q`PbeI;=qX5AmRZ^KG;uc+xb)`C#y*}S6{@~GX#+-XUr+|73#MqNGXbNO0 zpBRl#K;h<3d3*W@i^fvcat+;PFSVeP*dX6&Y9c3#OF-62tw;auWt;|~p!7lnR74()73Ug$FwjyPELkTiE(!787D_>NR}Vt`To(%I5Bd13IE>=s-6 z#|1Z<9K$|mXY3!3n1u z0FZ^&Xl<{?6T}$(s_+5QSdinzW}s60leYey@Hf5wzoGlRZooWmOVJT%b(nPezW#Ah zdK^Q$E$0{`&!6fn$cXhu!g}(%+~!lK5qI4uxE?<>hOWprcERVL(bg8rmfmus5tjjh z`b^D{P|9Hn`cb9JKfC055SxT0$QFI(dV`hpz}GFg(QBavYBr&DR<* zAt5y1`Ll}eI6SyKV(Px&|NoeK%cv;7J#5$nR1oQI5fLS&OS(b2K|;E_M*-;+>5>NN z7?7Hg28kgCknS8{XqbV4=k}ccIcGg)o`DQ^JXH~;+{9(iBErd>G1WP zj@-30M2Q>aP;{xvT>kC4sLeS(`ncVUu3scHMqDQ6$BPltn}BPr%XybOl*Dnd+Y7slC8-v}T~c-DZ2zaJ zm`@fX*{w#YfxygBR*QMgMy~aOHkJ+{WhXJ-eKi+JcnC^Td!bHMsyUAxh?Qs`)U0MA z?f7f-{Fi2J|0pHiY?SLa|8b99=?@6VsRemA8ON>0l+7kN30Ql%^YcB1V7~GZtU^7x zh<6p%#(EF#NPq2Qx2q5G0HbSfzO`)7CB>Gipj|b7Pb^IoR|9pZ+t~~K_|$VkHHn?V z#qP-Eg&I?J3!ykkK!_!uKmF^X5b}Y36Qh=${Br%}eOc8=>oWSmkn`IZCUQPOxq;u+ zic1QL3J>n$j=;$l$nxxa_m~y7AhYWLN-$zyC=9n9XV{tl^sBqRb9C0bzx#nY)zQ7$ zhua~Xos1qtE8_k)QGd|MD?dZt|2f!~;5GqqdMk(+ydNkp4dir4l`ho?(iJeNqh*@| zKNZ!7m;{>%H0AT9YxVz>pn#Kgfu;gUnFM{?DXR9Y>AjsoyO$`4(U$T-1f9fQ2tG= zY%Ry(hAccx%1rn>EVKT@#~SwwGm0faQuVndT{FjzB>5CwKn-CRzE2`YA7^&6JYqHw z`iuKPgx2528GG|==%a1*4XSL3kXc2f zKj6-9Jd^kLx~{+MVTllBnJ&C^g-q)qvRe$QZAnK~uUfp2-;kH4?z1EWD|klf^7O{Z3_^%4 z)@q$caNY=?Ca-Z;t-Yz7=DoYQ=upRaXllnwy0#6by-<=SY(+!UoB{5A#EHx+)o zfW?zvo5UsN*f`^U4*H?dI0-6<-s{4yH?4vROlHhBf3|<;B;)u26#III-{Bah1K*@s z8x!|(drjl@t#tn&I$`Lldf{h?CF}A9eLm!kv6vE)K+BTy!|of8oLMcvHY$uhZHJ zGLdm)EWN_brYBI&*!k2Li8Jt5*h;i?ky(>tF$#GmhHnbgAAF7rRAfK>@H6OJG*dm0bX{NYE3@;x#Pm2q&@M z^xS;M8qwqWd2PU8c}kdUirq3-c@&$$;lnd#UXKDk(O~{oycEZ86V6uld+i#)fyR=y z#Z(G7Ty9~7av4wfbYJ2VN;_5!q~RS9-l-?8h_F^$5q*zc8ciNcz-v=*zzdKyCTJrY ztQGD)pxJMYDBVgcc{QcRDY>NsFTOEfcUmX|wb8NT01BC0-3;$XeVZe$PJus-u8sTM z{hL2Z3gS{-NR0DVVFAQ8HVeH9afNOYtsNqaTP{@Oy^!910|lCFs?<8mZHLDrKPwfX znsZb;B!~(0LJCug+-fL)YFisSUWG3slYZd8_qmmE8)x8wifjo;yc1Ht>TcR%HjIWuR zkK?0?W8;eaJGyr?McD~wJ>pe0f9ICev>qdU{yz->j8To+9iTt6ZWSZ|v%8|Z4ed4X z$BeuqG1svLG*^dlhff&G!$7fsBt&0w9%H2Lj~KyxE$aS) zRAM61L z7xtwi?j-{w`Sse>)9mLP4Z)hJ-uvuUxkz`F z;0rlyF~HyD&?`6bnE$L?>LRTpB9Keb{HGZd(25e?KMu7$*>G-5!WxIB08=C;FBg$8 zrp3Ff&Bc!=&yJ#WeFPz-0==LI?6VZTdZHy!vjVZNZyf?%b^usjPiRf=t?jo`JQ4c~ z6#d~u_%d}@OKOX;bXXRe7%%{cs&nF-qkEDo3L*jzyLZ&=38xUhQ1?GN{(}S*9J@~N zQ2k?mNd-V$`20&gNSQCcaS%AK$yz|)A1HOY+_R9?+_NBAXoVMYLu4qIe^kp>d!s{Y-8T# zFj#P`zTKei6XSdNVDA9oxAR z4=qIU2mX@d&|~T6Ft!F^{d~sjH#lz_Bwi*mrG3>%{%G?@w)=&@j^BdFy3e@ig%(`Ir-+I_ik438E47Qba$BxpC}7zZ`4|J!yJq%RO7Ty4sW5>B`Lq z-7sKcd0th5w*#PJDp~kDPp*Y<0FHODc&A{nSXkp~iZSk$@wn&&Z2|BF`d#pd{Xm5z zO$qyF5X8fXRXtOX_oQI{*Zk(zD?7SJTko^tQDQqNHhA2b8C<2iZpYnRUqX+6fdpKJ zt)?AQS*~h@i(bXwe4RYReZ%|dVi62`={mJ$pw4J4q!Bq=<8S(!O8YOV?A?~Ah<}cI zk;=S4Dr8Qd$4qUBc|viv;Spqx;vFrk%T5nZ-`idEf!J$DRiTOQX|LYF+lf z9mf7`&=?co3c!lE_%egtVsA4W5$PY6)5QF11G>#co|9DhQ>$}JZ<@Um^xHd@GY6I@ z$2eE@0MGD6lnA+tUQ!Gtm_A4y6nkN3s+kWon9-54n+vsA4Es;I%7BwPRE3M+W5j1w2L!KQEhF5Sz?tCq zN8vb(5x=Bwl6teelzJb;(gFt!u(E(vT=Ztt1G4q!Sk>5yTFF-(zhYfSZr{Kaq>H_r z`|?Sj1^@JB3?{g>$*m9_L~rh?*;#c{#8@L?F%)pF-?dIc7r}qZwg7vBqfaMg_43g* zi%f8h6h-*?O#4L*IW|G|(t$8wHvoW(01K4JHPl)@x2sXxzNv=^L=d&$PD~0=AN=b1 z{RdIRLX zkx5(3qFj!NesYb^8i68X=RKDmWV|A};?1yMLuTVaqyx)uKo4UXXh>ZwfbY4Fze29q zdd4JtBK1nWRj=8Pa32RicoG}|6ncj&v#7m}re7!6W;-_*+(keN4rCN6OC--r^fbC_ z7H8e>wTL$@DLpNTtiFx5(uGz+tDs@X}r$O zmU3pISFC2H8vw})-vGUX{_ZFc2E(jREN6=q6jeASsWN&IzClgrCqJ(b7hjU^NhSpE zFu9KR<1HDZcdS|MPWH!}rz7-epzUd|sicj&)Dvq10qXA2#Y*&SgYc}`iA&Z;NJxm` zkE1W{^l9aq<0q4uy)<@ZR55hvmo5hy1X6;F03v1zw;CC|R+*~Ak7s7Xxu|p5p|pjb zb~uIQ1QUZV=wc#o<~gPrG;!3AZh{_mq^`8JdVuw;@-m~oJ(_a*LosAhBbil)9ha6- zr-I1<(9meqb7-zT9+fcDhWlR~PQ%AK6D}{V>XLY%J-F}Ax;a$ec@uwAvvjDyeM`>m z=f}yNRn570_!@k(>k44`sa+6<$&AWzTAk2+K|oeEGj#c49QAlmxs)mLuVd=9#=i|x z`^f-MI^fr3%(Dcth#%~lm9+sesQmNd%GRFcU*Rm~MM0eAp+5li3b~X#>mH^3<@Vkp zNV#oD)bv}aO5wS1pe*yRzEjXT`DA=LUn#CvXBP?Qy;croVi#WUZ_6=dKwGr~C9jlkn zSdB_5*svJDDv|Sn^0?_J0x-(h=)N)>62oDqiM^C5!v7QM^I8M_Md(d%yWkEg5a1;- zhpEQ3Z*XjCOS5OgknDNvde~ zDQU-rW>Ze{`S3dYvJ|cyS3KOe(hr|G8nliXj^{)`vaHFRT0raH^x)Tg;qYmVt&W9|c@Onvg;XS_hhX(vI|B zSmFeNXnYTM?98`^h}(nJsU%XsBs&v==Zh?+#Oe{p57e)=SqDy} zw1eJ{Glzkb;nd7Ww(!?XWdC!()a|Px+)AWp?14wtd-Y5qxwpbl?3J(+}r>TUr zj^<2D(O=6W!i81p$eATmz7W3Hi0RsCPS%sYyCcIHgJ2VT4$L#U~K>6k@HNUx)x{K9HLOg8zdxC#0ToF<2N zm1;E@D$Ba%E3KJWOCaAd%{4QCk_uMl`#u3d1VfDcH&=Y1T z3m2Y>1-{@~!&&n})o>I#13p_0 zfRr`e$)D9|(Ku$}!Z%!98rvlWuyfbWo`k~(Cdi)eTmMUz{``MV8v#Q{V?%QKCd+y% zC)?4p*?v!x_Q`E{jcM-Dmc>neTBYK@?AQ8?X8|@mw;R+W{sJxL3zOR@r@`)C4u3fU zk^cE}gWbYCrb$|ZAp^BR8B5xVy#0!UbI!udn8@X@C6)fR2}ggPXSxR`xc{Q0HJ6~| zZp<8c$g}RVF72}Ex993lBOclf^~y{6y}h_#131x%s}4E>NG=!*^}H{7%q3D60Tqa*P zk43Bshz?lFtYmB!{AWa5Ib=TNJ*Z6FAFAq6CE#)xx)-k(A)(PU!7itkMe_}B4kY9> zq_Cu5yi9}IP!};>JA1&yeeuWt@BtU`iL!nOX-5Jy@+YX#t?L8ejmAi?o(mE66ccbi z_g4^&=1L5@({cVz&+B?!zbslh$Y}v$dV>_N2l%!?l@|3EeFT`^w@WV=0)*8y7s~fxHiI=Cfs-iH~p?DM_5Q zr075u%Jhl3evY;`tLcu2_CemJv_|QCZ9LluOFL8&W+4%QtqkI&Gp*G#11J>}@x7KO z!B5kP`$vC?#pFf^NV^{MuicS+tt67xS*(`>M9l zWtZPor4Yb72DLXq#f~ILYx`=xsWQQ(sIh%-Gu&=q7vgNIRme|y%il{A%OX@`a_6b0 zUup}IGRJRAy!`>H;INwryB2)>zUi!K0q}S#bo)43nr0JlKF^$fJCpuu?DC!G6|u2?U{RViq-V1XlW^h~R0zc+G+- zU$o>VqZ7^VFyJ@X{M8~2$Eay5M7-W;!70I+ZHePqmjA^g0nhoSHWtVASxkba)ds(O z+KOe=YB16n)|0*GLTy3KdaR{wt6Ml}_4Mu58VO?!ov4>=R;!P-5ZT%SgWicrdN{S9 zpU@wo5&p(6OQl13r$PYsJfYUK!~MROWb;bE<`OCgxHMu3$N^fdCE|9h*m&W|Lia!G z3nx@*?ll~@2Sc5Lg8cbjsfYd{fKqLxZJ3YxbAwtjOcUEA7the^3yfuRuQ%{(WXNmL zYZbblCW5OY;b#>yve{eYQ1N1R9%mPseeOvrmNTS)n;R6sn$yXK3|?E1ZY|FdT3dp| zfvIZOC9~PTP@F^#AT%-E$69OqRcnU>_(q8BamBa>P0>u+>^+(wjc|Qr@qo2y-hWl< zYbkdOs;Hcgu-f_oZoa<09FY|97E{z%?CjcYp>fZL5joL|<167PB{cu7cdK$5Y4qc` zNRu7$LM~1lI1Akm>ye%qLYx;kiRcde>sFC>kor?kX_K;NkGFuklm-6L(}+$P-5W)P14jr9Ka}3k8Qw+;P1vq zaa92jZG7UhJmUMjSelKsiy~JV@z3t}r@e2nvmjXf6DRT1f(%Q0{I+V)^)h(m55kMl7~cykY9=guSK{6?zNz79;t1 z)xZ+d$+wfA>N{DKh*Hmgp`yGmRH0+~f+i~;!Z}Y$TJ?q794>EgM6lJx~4zkLod$xnrJh@;X@e!J>Rs5U`Xl` z>N1LPw3Mcg4)qV}{R&z63FCeR`?5yo{qhLBN-WR;;{*4B}6!Xs)|z?>f71coyz z^O!K|TwT2y6gQ-UJHSoQpBQ0UNnVPw|2!pJWGTFHOl4bxbu=QU3J=9GP9wM+Rd9oVF{)x z)J?nrR!A+DT>jG1d0|WkPK%$@Y)xxS8h$#{pLn4l&BU$FAY0pUF?E3KvSxF$?GCmK zlJz3?gfm@XFA2;*i1zSBh-Uj&4pB*han9B5EAyd_0Zm7So}m3C-%XgdEpd=0?AuYg zeJe223V-=hiP?_r4{;j)(Xf;kJM`Z~GlhSMW>4}HBLtXY$*|tVnET$f5TLyx7kXxY zb{){>xy>gXgBNh8E;e2!W`_LHGtc5)fgb~gIes8qz@9fXL;}3?_)GbDIe3q6;PQwd)#tL zOMweQhI{}Ff;(DNghPmya@3x!l2u=7FbZ=SLHIYAX1sRc-V)^_nC^NY(%sS$Gp^_r zRLrtD$|S(|jqs&7KNOl{WMZDr;3OX^p0K;B({NJLyD&|mZO7gJ0@RW$}NM2v@Z5Y(~l{yt?T=Yq>MT9bd0wi8Z@Bd(kve{qVKwv{rO3IvCoO?{m zXLO`QO0cZR%8zAR67LdUnzAsvIx$EF!%G|ZarFwTPbYS&Oj@P(>m2ELU9rSVofc zsm9~@^tW=M*?nDW1cF?Rgo4%gHZ$<%HheVlL4*)*{x8qRG$^^Sjglb!P~Bw+Ah3}@ zw*p^~qYRjKoM-Jd3)Pu@=}D}fu*Wo0tT2M53%4>VG~q0^4SPn0CeUa*QpJ+e6`G_xe4?_x^A%VuJ)uFM(TaCFi0%oVIYENS^zlym^ z*pOIyf~->X$q|YbelgDvOBa&4lKXWE!l%y=qntWgS~w5InK|Xb7c(|aIXa{XcY6|u zU$!YjK6JN0^q$=pgJGVkVM>5UA_TRG)5Nvlh5o?t~7i436 zy8-MGIzxGBY8t8fRqyiRbbm}RZculTfn7#`>xx#hP{9zn#fKk@gRjWKni|D&7O*jV#ho|5=?{~F z4*qSiajq+}Gj&}auZ#RG7WJUU=wWlS?2Sba;b7`}oJw6TH+@}!mpAz;&tq0(^7~vy z#i*y8<_SbjBtvR2q^Y%#Jrqo5 zqG+UQnO>`JXV%-~(&2#EqKb%9Q>qbRkE^K~j^h235&fszo7C2#mrXSs*7^)f3Q@zjPbKo*ZIE;<(ev|2#?*U;27p6F(aK` ze-Mg@4kD9|od9N8p$2^XMN%8KVtBI#w_02d`dd396;qG$Xi>0euionnv2a}dp*QIu zN0goOxHC}rLGm)cES0c>sXP<>a#i7*wB*j)Ps|fH$KqQ5ZIjUP&$#acv9!^(`F>;Q z+qvd1_#(JD(leI?-^lO1be~wv5x)%y2ynu@nmvrTjOLmq!Qq;sw=93BJgay6Q}6L_ zU&1`O)2!TlzQ?#*0To^d@fT+MO)r1y;&KI)UeOgtZ26zl5LhsTk*IiQK7H^^BWA_3 z+8%Rnl>}kk(iw_>5j^&Vm&&+cE7F;xzqZB}VbWaUkQ34=yh6cNzg3;Et-7lSZ~cvz zwH14gj5^9h|8ifwIl0H`;(pTln6g_ozg~-aZKlvq3~(a(#@j&9R1o6?`5fv2briZt zZIL+r427C;1+cZZ+GO33F%ILG=o2n2a5s@9<{|oKTPi$0lR!DQ{W*0Ags{sA4$v_fcscsq z=>(Yeg{k>xQ=soQU zEYBh=cy>!`Ypefk4D7+Bc=JKCj?j+fRJUE>z*fiA!}`=cQU4d?0b2(41pz0R_&Rsk z*xL&Oyt8TM@v|$>bvihh(5d@!XS2(z<IU~w zd+w=qDg@$Z1gajjN1um38b`FMZ!V@6g%z}2c&OPMyGn|u<*!sjiv5;O1!WO*u|dem z>OkXs?GSRz!izRz5ZQQjDsKm3c<4$B*&0MHAzoN4ZYrsR4UONOR$hmFdKM^-uwzA^ zH3tmqxIU=nIQITFG>X6i<4EikM|8W4lrUzdG8wo*iN|80*VrnjhfO2s=PRDm zi|=@u7a6(sD|D84V^`mAb^f?7|3o#niT#-la9&7gsBQ{!j=M(Dd`(C=w!Z8rupUDC zw-l+Y`*KTN1We&eZX-#?#N_i%?;BH|+I=rCKa*~hD?svMvL!&!@oI`dJk2>BR-V)L zVyO4-58M`!AlXK-{?`~ZCjPRf;A4QO(X1_=W zeb9$mk+Ls*SoF?wRQVP(ynAILo<@2jDsd~m<1>EIGOD)_ECHeeD&g0aoYT3^=+-|m zzJtTi=`(Bh24sg&^^I8K>QZpWQpcI^PGI~Vo$A&EzU?kHD1SIR!=0=u9oddP5o4lj zoV1U*Zc4bhDV^Kfo?=5^6_1c8fK<1U1L!ldeS02hWNMJwm}7K<^Ezz%TOg5g;wMO- zr+rHQd0{SD($H_Zu^`}Dqrp?p3H&?+_K=1l>)kt__CnuN-8t+Z2Pqey;V;@KiCIa@ zcCPo|ps}4WOe+gHCnnN21tP)|;-_EE%~TLz5b^dIf{u~<7@aQuuK9kkvrX=PgH1v) zQVz2gV0Dmmjz>0gL;vv{aUd~Py)sJI%I%JS8gHghZM~X%97sRj6@+)@i=b1O@DoSa zSD1D&>^$V4NSs2A=WmS+VaBSNPk7T5ZF2PeoG{IdKg(b4%4jNZcln>B!K}2Aj+BD?@wj)*#Le ziG`4>Bgk;X=+%MK0jxbH@LAn&Pm$N?04d~Ae`Dc!A=0=E11YCFgp)XW^xVZPcXau| z?%p}HW`zH}weSvoCMVm(YrSNkn=d;}#GHl@6_2R#C$5JXYX2{qGa~ z;NNGO*KNI^Nh+&P{oOL`-@S8exX+NvzVt2GzG?7$A-refaYWZn(v#HHo~^5eUH_)* z8}aUqr~R=$se(&oJgFP~weD`KaG7%Cf{@#F+mOLeMJskaX5DILy?xuUt&HWv-@}GE ztzVZ9)3?Y4ouk|z%uPGYGXvmkDi!~Nj(^06`|2rkx{!5x%&l$CWDv)x?=B*Nz)8)# z1@`ElM@^`I1}yl13a?f;kn8=;@jUi1aysgF-K3!<>@(3oTy`5hEzG$XS@E!Z{nlS7 zzFW(Y0Xr@$$xw*5{Qqyg`Gv}KF+j{ zcTgMLSq6hJUGc{X7s!L(-xI})s0wq1{Ph>vOr%VHYmUsv_n$v&ukPwqNrgh*zsvCf zM`Ve5Pwo=!{GK$d^Oz*n|LGz1<9tutN$lrn>+Lo!1-I1?qo*TOzU=?3{oTml-}9&Q zQ#w&L=JL1vW@l@#t<-DRv%+^f=m7)oJ^NsreX7S`C2dEB@Zhx{d=4D(;uoK_?BNn4 z#y_2gDVS(9Q0 z>XbV124lcQfm%~WP~H?NS1-PVjZl8SSt|pdnY`6)^BeQW&gER4^MMr z0eo>WbuG3;$L;jn$bJNfP33v^*(nQ!)7}M^vspz}z8-i}&dffQ?(?x%Bz8>)aNQRw zSG-cIb`9JX<4?ez`WNS-=s^qEW-|X{Ek2Tiyv9gPvfrA{$?_{uXX2#3Ts1WPuceS` z3(Ko$WNP9-$4U669ylmm1f$A|fP`PwD2b=He<akJ+QIRj2Ev%uF12$9)_cx7|56gk;kUpSy>sFvc2Ig@X5%<~v48|wD-32_8D|}78l6PL; zY+hmiQ%!!(7`@+rk=-uMRI-qtdkCg#7kKzwdyN=f5 z6i0eG(0S!s$7#(Qlp8}m^h{W$JpE7ya}m2*T+Oa~)9GK76d!K%(}Sr;kk+F#5WSbY zj({%dIRCNDR{Ih@TfI?jbD%FPa-v#6k)%^vsT8Ygdl~s?E<9H0$GAzYRVMMPx%aQ8 zomuXOtMR$R?G|O&jUl$N@uvX?<7Hv9TO3CGBukV5YU#Cq>~yEsjIGkW+G#5n@txhV zsYD(n~#kv3(xtTwCa<&({Mmc zbriL2oz8P_=As`KF8y-VF(siG4G#^UWnvjhpgO9;wVi=9{aspnG; zx5?vggig8F?B4FbE_gAb=x3bafzxQpsT5fvlS;4l20rCq=DxvhBGp(}SABU9D5sLU z<<^(}>gKR9L{60jT9s6?G*kcIFfo~My>Tp#$k&b)NJ+W+UorM z)UV5spDiyc;EMYgY_)Vw_lZVKUBECO(Sz`Nd+17Wp1!W;g-F&BGFrPOj_RQI5-C-) z=Aumv)FJ@}i>w;MTGSx;nLWx3&QW|11!RH2DXn`8aA1|OV!I4dy~@K0tH~K@TxDNo zfh!`D_@8L=4Swc#m=G1%B(tSz(=m>^F5_3~N2~aMO{Igy*yJ_pXgBTtnFd5PHq6#A z)8q%?(=Gymt7kV(0G+R8^psTtl9(lse4OFQ;o&&(7-O31Sd;UgElF?9^f!N#G_k1r z1@g~o-M6PNV{kS))8Y0yrWSNX=TnP&sy|M)e|dWW?DU#JUDnRR3Jud6wH`wslWFSK$&&kksZl8)(yXZ@^Rpp`y*eSgE;6{oi!yj;$9ral+AW(J+SBXUcaVf1fhm;c=(D9 zl-!3lo~GGtO;}f3X2ivc$i4MjxB}2NT_7QMxI`+dY;>1J5A3Jofv<4M*?{c&g#vprSVVz;HeV3_?`D<$yIHL%jW`VJC$(0@Zh-owK$7kBp+PEsu9&s&@g;Ck>YzK)_RI@1H)w{e9m%`v*s2EQ{cK%nWjw^S zFwtT)F``kU9HKl2I{fAtCvQLlF&h+PHDP6q05#co>O=g>XO@KFEcJO_@zr7JH#?~5 za+#s_@e?~2>KWRd9dE?}_>58#tRU~CZW#>GEc|iJ@~7(a#Ti0%rsd?jzFWIrQXH$~ z`h1VQ;!Z~822k~+k}YyDX;XnyfqIwAgW{y=u{Iw@GOrO*JUkm{8+^mE^wMlr;|Um? zVVYW?rdIaj&H4a;(q@L3ce*F?pEq$wkO*immaBG-r-7>(lT&EWX+;IRF##`hD{!g! zRS2m~Cbs?zJQ+WV{%mDy=Qw@G3*N2I`lFWjQ}z{t(zpCQ3DMV0c6BKT-I;sT2AGIi ztZb|>DZOC9dMV8!vxzRD>9MW~!H5-nDm%Pli%2z9dAex)B(=)9(+khAWJKRC1@jb{ zI`iJ}qUgpG6=ul;z-?nh)`M*__8PRNH5xZ(cIxhx?GUQ${5KgrZ2SW=?z+HB(mnzT z>(tvPaU43ekpWZQ5n5GCs>i)>zRAOuT-1`u%MVq?T_+q+S_XT*gRcR#o<)jX=f%4w zY+FhXw?>;!a}eNANym0^CQufG>!bnJ70CQwZ;Dd9PD3n%m&z*xpL$!*m{9b1@jpkw z?FG=Y{W2EzSdZz}asC)=gU87GZOTPR2{S#yS)1!Uz=|9`0KmBjL@2w)W zSdA6Wf5i)$-=`AvzsZ=CyT4bw@27}}3*1oFV|MlVkPU}%OjikiTx$%pqS({4<|wg& z`Uoz*?y9_to>gfbt{sh5QoD2K(;WqA39ZBT{=0jpspV6ndZ|0AKm`%licc%Z*PQzP3XNCt7IXPTQw0N5bj`#8ae0l0?_0OL3)ZJUQsoP|?NxYk zXh*&p4xZLl&VkXeI1^Vmhy`$d_+vTaefX^ce^ES}-&vWaOs~4~5%}zk;&wu$-l$o} z8ZrM+ar$qQW@&J^IAuRM{1`0Na!#3LS1RgxPKffIBBbDR^2>PpbNYSz`=~h0tGpD;RzrR9E-| ziJ|6|?^DsKlexrk@YaRfhF!2x`)17ukN1ilkr(7Lh=NE2QF}#UXWHhb3D{b*166d| z^7YY{c!FK5aDTDmmF8X^&5jAMiTU$B&J9kYUdkBylxC-h-S3U)OL9~209$TYQSjI{ z&gfqKiG0EujC2l4OQ4o)+L`BQ&KG9lrm~CA=9XLJ&>zfT`5K038S>4U3%sBc`k38E zS4fwo2eHc3C-|_H!?fywsto#1+S~i`uRf{4W=RQ11b2645&q4-gBIs-r`ZD~-x7IV z{T9FIoq{~C+`9!EK;85^^C4UGniqYUl8SxJ5AB|oRJVrTYb`)}tEmsjj$gn2g4q0n z!3A%od#trxHfS6e7nZ%U8pWXAl2*A(nLi`r(VOIBpS>z@;2pVhMDz81q+|Kr>rp z-X5>=PSEm{V;~Uhr`Kh%58d#>**m&^@nw+r?TTGeqiO%7{Ug>*sOtnX2vqhxy&PzV zyEjy4ldgioW_5$NhR8JKR(~{o6}^hfw2z{u8(s*TWt( z$WH^W#lN?WWHU&X2m6=k59A?#($NTpfBZ6`Scd?#eqe0h4wMfq&-I8jJ_9r z^R#41>jT1H3Msc9{-}YmRWU?u-MIr%1^=FXO2MgPGN7w^b7nwrzVt8L3^?8naewy< z%xc8cOj5aW&$!JzNwAo~(#Cn$YXPcq(CWCw;LB_3OQiag!kuMrO7xp2Y!3uAQPy$( zS)W@MmPuI{COO_5J@vc^=(~V+ifb^fMCKwU=y;e=UCPn)P=xZOX|vy;Uy$wCGt>Ky zM0QAJarn6(D0LFyok4F@y*4bF{BfaJR3qO_Qxlxsq(uY30DwE*)c}7~rq~H-HF#4Y zTF1#7an`=hs%=OMI=IghzKAsH`JtpdNxEs^N#VWFB}{Aw61EJUnP~YigQd|bLq;T> z3Lr9%8euuDcAbZ(lKb)sdFR>FY;X9T{R)@9yIL77rp@YH6|wPe9BrK_Eu<_A-6Cq4 z*_!%6!55_}snr!X|2}>D(SD>2c}AjeC_dn23V(>4DDuFW! zZzqh1{vd+Z^G>djm0ve$5pJulyao!$yB3yH!O4W0m0!~9)o!_po&A6gs>;5o@u0nO zZTvCV^ta~JYpJF6HI8vyFf1DiJf4xmc~1^STd}L=reX;P_HU@ElEF>8X9;8~O|yg} zb6Rf>sJAmL?D_V-lAV0xn#3ex{*$F=u>Y1bIj;>M1EHw~1lRgYdBueK@rdzhrd}8) z!v+wJipUH6`4LCvB$;Wy;HMY2W|FHcCamU?3o?WJ8Edm9-<9uc+Fp0r7|)8>1_7{) z_0&S>EM<+ZcNf3U#K2slVayiJjwHGP##R*R1mo3^&|2E%M#%hoKwYNC16>rUwEN6aH z0&v_zp4%3cR+Yo+zuC=YCu}Fxq_h&IB;N2ndBJZ{L6gh?#zt(HS~g?AZrW_S8CSlj zVaJPb7@?TCJ)L3exYC{9Gp-u!2v14Tb$+nKRz8KS>D{IUbXfdf$rjm|a?fcQlS=H$M*8*YTf9J1i|JvHnZ~^FFfFn4-Q4YLg`TTB0zv; zH7t(>L>3~b%M}Z2l@0ek+WYIfXTsWjEq$Ih<7ex#ZEQWLE~$N>jvM$gcx0Oa{*YYu z0W$aAFvO&i_$huSFMNc|ki!>rcxof#7s9ttgt5j9i;XAl8>|G0UW$0{i7^s|Tr~Pa z^Tr#D)#}B4%a#LQYc=NS>xg*QQXYF9HUpJbU0Vt?IN%TO2I2h3@_gb|FoMgtxP6PC zDJdQZ6#)C5Z!iX*Tx>>b)ZWt@D7goOWqzbjE8WL*$-(rdE0l^5kg3eZef}-@wDSF+ zg%e>dS31?XCn@%60f3$0^mMIE_+s7GuSjA#BOJPV%Z(TH-R(Lxw`)a`Rz`!%+t`UhN4RHhZ*e+T_N^G9h;N(3M(E0n#2BFWf}rmVd?C;zcSTa$aL2)3&%ax&}P(@8e0s zzs-@((zC$Ik*sz*8Ymgs0KvW5BJO2%u##6`ZMmIRHeP^ypAPlOMkTzn{BK`=F8Tj* zxbV-0045sx|KCkC{(tbFCQJf=#HT@y&pzRo9L6NKJ147i|A(oo42W{+!YBx05F*lD z3IYOBQYt8=bVw`RDIqOLw@8r3Evf zgU2AJuH_e9ICQK-v876&w=*#FmBRXGSfDafJE7Lhi4oQRy94apG9#FvUD_j0l8Z2` zy)?+f7IDdrM#}`3m*E8JYvHgw?YWa{Gm3m_$zyCGmCvZ`_{?Yrjl(*|GV<%7HH7LD zgRqS;<(V@G5ps7CmhkAAFcC{|p{m257HGTn*-yvL8!0hpwLtpO8}(o=p=utHTo2os z*3vFc3dyt=Y=kwum$n-(WiOH2?l{|?fFvY=VmZbVC`cK-x6#+kK6k2f9YaiM7{(4 zjHC`wcSqp`uXXLgPRe2gdOI}V)l?c2+d1ysPu*MUsP%};ht;h9+se}%fb%^ye_y&a z>((J+>n)J<_^#x-(u20G$vZIfVHIHp$zYr5@T>w$`ERNJm|hGFXLK?tW0y*Rey8*# zC{sIG046gTGleh@c0RPk74X=K`gi!d7@&o3R_7GBu<2^`nRyR}@Eh61v|4ReCT$Hc zGQsDkaV45d|8~gs0zBTmcN$k3;ym!g4!O=Ws5!RvNQ7yax#AW;hbkVa)Uwst9gQX_8(W%V?IOlSN1XFz|2;};0a9d<+eh+g zBtt-&4@oSpO}$)Kf}La)yG&RSK!o0g{VUq161aNx-_Ca1gK03NXbDT|&?v1D&<~k@2X4n>nal2DT#&Bny!y|Bv=(4#?sgw^ z3AOVW1ykt<*o_x(%#B$Tm;dtwMmH3EN_gayq%_!VmsZ)2ip-FryrW~PAi;&-s{F4{ zZGzPFZufo~1ih@<6*1;pF5LRt2Lmojn575Q(rBPhWVj<_{cmJTa=(}`En##$w!oFldH(uemy<%vM2 zX(F)DsvXGo4rl6J6Pvp1H&oK!k8prTG_-uQgfk_RShu*M%rB zK-$d_k*cmRV#(|Zwa64o(}_I#)DH(f9%p|m^*(x{G{~UhZqUcLj4nlg37#7LFX^3+ z>+tmL1c7H)Tju|s7E$zn*^TkH70ux3I_Xt)l3`W_eG`9wKNbCb+#NVhZeu`A;dTHFV&6u7^B<{u zZvn*fTUs9#0X$g{mZvg!qddCf9*KHVEKJCumHHpN0ysNho4%!WAsdhQEbp24HaJC6 zbxt+-9UW4ab^W_yXs6M-le?GpgkkU{qL@JF#aEruSeJ>SXm2FH#Xm3>21bP#5WN>( zfI6jWuNIxt4I_hgAp?J)Gn0Rfi~)?y<=5$iO;Dp2iBLNpiI(<^o)^1kKo|Lc-AV>= z(>L)INGfgWyS7VZt!S%zQbly(*Ejy3$yt7gRxN7zr^3;>fxus}wd1W>4y(B1;QcMi zC3J(PO|r4U3?*5_`nlJu3f1oc|Ff0(ui3>wH|M)1eHRWzsCipG(2)^t3y@xjolgB% z1{i{OfHlJD1Cpw-CQ<+C?-WSYiZD~()2q`5Y?A-~yeZLg$6OKfl+mVw1~HU;x@=I) zlIh$b?k{WAJq4yuSU|3{4u!Zhs-WjZIp#Qx6btkQ8Rj*iYsXh)5->@qO;dAkK8WYrnX zQGC%P8<$Y9(=GUKGu~3@&Zb=8+acjL*Cu1@?!eAhEpTV-r~lh#U?_q~t>XtqWo-~F zV0$nb8ridDB}e#F)ocHL2}22(J{mj`lXXIb9z~ z?KEfpzF?rYSjdHEIR(>+|INJ=Cg^kHDw&8TWqC(2hS2BD%yAgRW$ZtV#mEW(^3&O~ zp5h1}VM0GrsmZj*p-X=SZu7SYUD3-n@!~srk6{W1H^S60dm*%^2QeD>SBWqTu|RYE zcE=q&W}gLmyQb)z3}c*t{}*!_`AZ?YX@RU0U_vf$l3!D3UU7PyD(Fy*o{DZ!m`y{+ zHr|^qnroh52DvT;63L6+E7V~{)IpAWZH-it6xWfWfO7kvFqnR+Nq@DQ?bEL8(UZ?ViYUUXKC zp6qjO@$z~B4aK4{2(82Jgah@JZ;L+@?3a%OE#xk{U4aQkNw%t0ubCXvr**}N(WJNl zHd`@(7QHu)4Z=U=GA*}ak#Ql)XM1G$p;EzUsu}*K49)?-HjQKJZV5EI1Mxbf>mW%O zX`OtRW8%lBrKoK(#X=2}9tvfxa7tOB(6L?Ad?^VUJ$z#|{3@yPRq6+pmjLjyu3kUb z8n($p6Kh%zoMS+Yo@2|_Y7r(Kp;p9yb|lNQ2C}uqhoR)6o(<^K2)9uu{W|o(?L({gj!RpU{7+*3Cr;Zs%T{B!i~A~6u$jg2~b!H zMY4t^XN{&d*n2=(AN!vwK^8`PKU>Q|Zs3M)pPj?26ahzR*bNUL!>j@M=Mf4Dr z-i^h!Y6#(R(PNnYxnz&Cy!~DEwO_rO=jJ9q0J{71QU_SZe2}91bth(>`WCu>O=QNi zYT~z&ic<@jssMUd;depcH6{Km7F#Te0}T;V=Gv?X(+VH$~JmkI(vwm~s+@-){k; zK|;&o+4BY*^zZ;sP96z~&n;@wD)I-E5((i{34{4oqR+W1R{1|O3Xd38mB>F$*qkM( z6d~=%p}joy`pZG;AyPrT0~u8;!}yr}@g@P=vg+1+LzPQwnC)fW> zsP71JUXF9>3Rt{V$DSnc{TNuDW-G8cMlwMr{ie8en1^Uz=|XEfp!Z;CH8?7}@N+@> z&zpcgEu>^mQcCBBpDZPs<0kI~Md1X2i(Q$z9W7HoS2L;)Z&bK+Fn>V!-q=Sh?5ROa zSJ^cg(%xUl?Z=gv_-y!FH6(S>odvw+Mt!ufEsUV3J=0F@A!Y-pLe4J|Zlsf6{SYz$ z;5~1Gzt|YE4p-mNx+sirL((us=U%Xa#C*IUpUL9JGKN6wB5&)FmR~`)pX_j9Ra^=5 zVYWpTH_BFWb8Z|P-T+mld9Um=by!44tSc>(t4M0~3XLErl9?|L3HUcV%WT-I1MUo)Qy&wrXw_gzyV@7=7JKf{iY6?I}bqHLaU@UTCJ zIRZSa01bV}BrS-Dcy9QN#U>`zDp`+ZmL{m>Kz4Q4mk;pBc*a!9yHstM95vs|=5&Fn zO*pO7TnaZ9M3{#?2^?}>OT0Ap-EzPiWDOD#3@!J-?$elDn;Zs#jUjqF;f*7M)IUEh ze8)@>23e6KG*1(B9(!0wC07{CyX(;?rCMmUl_fZS8ugfV+@osR<0S0J8fOwvTzF*T zA<4DL8s^%_rEp3Txj0ckoyw`&0so^EV{z1Sik`Zu&Qfb3K%q(Qe)wG#P25bB`Te8Z zRu^v5^XvrBNV)dnuI>Mx&NhUN`mOE_Xi;la+QogzpL!XrYDv$;%K!RMF3Nn>vste~ zZNGdq?e`bpGBhWs2E_C@9?qihUK9G5_LNxh4pXo8wQ zz$88P4QADwoDMjE=LNsZP3Y4C_uRqYN+(CQrtr?$B_3SEudL`@4s!mqV{_RL+1tIl z$D{NK8do~^IikTc<+*9;20&gltU_XKs#fuacdMUm4)yO(kcZmLG;qE^t+3VhSFB#R zR_DFnMl|QUgeNmBccrZ*HP?XhCi(^K)%Nb7JX+7eDuu->Tgc09FztmeHCmLsdgl@zOBH3bPQicoN=H@z}t=Zea?XE;!&B_L(Bk( zEHW*VPmJ-`0bZFPv-cyOf?sE3@8HTl3}y6c<)A(Prr||;bdKf|mDk1ZoB<>ywYVSF zPUB8VW^OV6v5iF*(Mc8N)ub(@JEW&r@c4-F_>I8rC43s8I2g1|-0HR~(VeDM2)V9> zY4O-B6#gTMCuid{m&{p>a>QcLG|%Jkl-HqD=#Z4aox1Di`;&fRi>A2{VI~XNmiPu{ z%ZPjCXwZBLA}pcTXyVYpEH`ICHnoa6Ccud}d@-eO6g($Iv z>?%i_?I!@U?269e_`;?hUC`wCVVh#VzeBxUn~@(B zuqk+ltX5BBdJK4o%uC-i4qy$*H>)b?_UUoGZh*TidoF?G{A1KR`Ggj!U{%vQyrVlu z9ZxIMTmscf)C-Vy`%7^DS6_ULDE`(7aN!czphLUy$}(-SQO6(#yA(#6!Qu#l`6%?B zxy9F0kh<@-IA)V7(H|>1B#2{s`+QwLCb7F#oH?GUj8ivQ-g?6JaCf*;sanzPfjUZD z&}+{%cn@0gvC6+Q?eP4WIp5|(9K1B{OBADmnIIx&%^@x}cRrkp?$k?{)0oWW6kyoT?O12c`afAj6-ipn|fRX_((2g6*9f zKOgC)5WDR;~^DATOZ z*_f)RTf=8Pmi&LJ7vqi^Ck5M=wnFR~ao zzdG@Yg*uB;kSHv}+`69}wi$BK|G^C%mkF!v@#}D#L7yM5vH87zbLKTPnSNM|Rhq9^ zGMAM}DPpI4BhKbN@kY&SXAO9tx-~OAsCcnZO>y(MYI`AyXMX@+tT#PVI%bUS$y#|d zi6Q(W(YSjQJ#tiy+||MejnpvOyt0zrxx>2*(5cUmW`(D6X|m8l*AD3R{ycw3Qucr& z1P+0y{CF5wVuj|>@TH&q90R;L3a2*{ z6d5s_0MCy6QZl6p7(|64%iVhi#xxGI7Q&i&#TkB3;0_)~@b2OddkpaY8viPGT6Y2n z+79#dYuISP&d1?XzzfHkr=I<{S&aX`&&jerzouC zw?Bl8CvL3Jc%^cRUeJtGPat#VSGV)kEef5|JQ>7aUeNQ~G#CLOOR2#8rbdN*rP*`? zV5&toz`vHmY)_)QOy|d`P~Fon3VNpwCW-{x{GM;8&WC>iRVi>vz5E|)luO^C6czN` zf3AYYCSz~gjFp$xi3Ax_&+=%of#PYx55%rbJIZe>zp6e1;Yf4pI?w^-9}_ZoO2T8Rwgvmi!w-ukt(qUCkj}<3PO^LM#p6=ihrCV3tz14$7rp_tEpS?I#fF81-GqNuBxG(C5tXQecIu1 z>sF-*p!q9rQ{D*S&9a&+$!*fBFb*!T6cGgx3lTYz>=AQEvMc+vGgU0vfm(O1*sDlD zzl}k2s&!o;RZX8un}m;F+7XRdyeU3#VTc_akJN5+)1eo3PlMb3Tzx1@XfBlEdCd93I8Kgz`BxJ-GEL3w-L-n z*TTDbnOJeDJEVESgeDNW?;&i7Y&XkI(+_{wvn?lRmmA~m?Cyd6^5DZR5r?@O7S`D@ z-_ge<@YzY?bmx>oBhaX1oIb~EX(p$jaoj#o!2E<|e(N*_9qjFfm@W`1ZJLHh8m3(2{8z(l?+;^@`sL^P{ASX;Ym zncYvLp5E8o zUVBdf6}aQBn|Xlgo3uhxUge+?l#YdC^*Ka0U^?Zo-eV9{PCHS3p4?#fT`Mvy$U{s5 zD4EfDS9Cd|kOk~kiAwnq9-X|V<0~T;kJsmNEU>HgQ|IzMsm{BKcZsj+js9JnqcUCq@EDP+P4W*;f4<~%P zk}#Y%l8w~#vRg|z%!>PLSr}cSBP<>j(U}KOW413zpUld$)uy>u*1bw@02uCvW{7O1 zlSnpTSAjtJgF}($=1`Vxy}z-|diObNRW9&FT4s+*`l8m@RlBt1cVN7)yi?V_3OkM~ z5ix>8F`Dm0kQ2O0^e$GeEg+e}T)VCf?h=TO+mGcTUOKr*??u|ms#$T#2Can@GiW(e zS3xt^5wrI{ES_;!7}+I@+r1inQ(hq6)cy>o5q26_$e+eMQ-75MqnkB$-`4os*t<-G{UQc_;DO zJvwj8UCAub>jUKIKD7M>dx?&9nR>k%|2c}99bVNLsJ!?&K*c{#n+)ig9iDn3eD{r; zrc+E)^pF?25TjDdDZ3xZjcc`;{o2)uj^zc*Z7=+xuJC&tIySK(UMw!nrK_d1^S2X7 zg=?OX*Q`hV7QUex!+Lu<$!H#NUV_`QlRKy@UDf_ z7TDvEfyxsCRnky)$0hD@>~QNv~0Blj>}_h<64ZhZo!pywPp$&EYUAc&6Z)xpKtZps;ZS-#~QZH!o7H0=DK{=)Lp4; z?iD-)S(%y>znl2grP{C2lzJ&oYJ|^3%i1?PqCpEi5#%t@+Q6Ni3zvEYdohPWlY^el zVpP%bWq|223T&ldf)MRaxj_eTwdjqd$K>bcD)8S50i8osrKouS+z&v5Z==ighXBf0 zdAQ_=0z$v6bVsuIolPA>m+#v9oFZ?zp#%r@*Q!T}VU0yKqgzntS59y-YpVI0&9YaC zH467QrfDa>v$i?r?*bo}P4+V2XQbE2sNaK=&14E2I7MnK(2t%xT%Hw_qFCQhWo*32 z00T-w=6Z`9rsONGzM@S79bKI`S1~U-#D;ZtUk;6!pwCfbt97&f6bxq zF+LTsNi!5ZhY3nBoyzgQQnfCT*Q-BL_MbV52{p<2HM;TRN^A*TzqA+VKf0O8 z)VAIzQC@mT!qQSaUHn(>83*7Y-5*aUh}viCGl_L2i2*v{;VMl#_io_7bnxXz-nUx>AL0LajHOT$uNCsiR-y1C!S z@_mnpW-e1o=(a!-Q5=v#mT7@Q?9ia|RfPihrSU@{@1@7Md|>wxS{?j^XiJ=|ws)Tp z?+i60aE+sLQh$Em!~t=BnP9F%ws_$QI~r$1OU5>$$rCqujxI>6Qx@hU_gSDiol!22 zF(@-w78dyZTbjYEP^`h7n)%Ypj~Ei71-uX;PoN&)q-L8!uD*r`gOJ;x#pnHM|Af)@ zI3DY8Ag0Kx(a8N%Y(Z-oSOX2C zo&9Yg;U+3t=0Pi#kGC0^%A8ZN!i&Cq%P+noP7OL;^-BR3r~r55Sd{hfd%XZgkZg5T{@J25bn0J3aof(KBY-xY0} zqbjA0Eh4DPIgI2hombIfIe$ZE6faU9%vf@&c~xD0$^bnC5G&B32eCR`FPW^$23>Sy zojE&^`bJcCIRJ8DU1{OnLPog~YPAF%nX5V6ZqZooL5HM&-ZdlzW-Y8<3~qgGBA-=9 z$=wa9h2AOAQsI!u!afB%U){!yVJve<#JW>5?Qv-qFe1&+?XApKP2rXNT-ZTmUn=x+YM@N8I-I>;(0FPZ;TI_;9zIsos{60_9Gz~bYDRH1z+nQs?K zv*_-FAMzRyU`pL7jQYtaFbb+UfS3@GD+7W!+DvV0>Ex*mxvyu+R=6__#>hW5;G2gy zm}iETpKBdcUrW$yQKK^W2%ozAa=zXNX|c@UR(TcCesn+;iT-J%4uT$7yO2>ZK>M{8 z9nEJjv8BEx{n76G95m7G<#x5=+w^xPpA7H(X~i1_*tOjpl+)-m84Xj{Apm}96feicz=SLY05ohT-qNcAT~it!IsITKOX-2d}s0; zC=O)mA6d@>YcS<~(RsZD ztTXEC&#h=Fb~&^-!h2VWcc1W<$U}oK_8tFBtsSC@QO@E^Q=AiQwfxTRh4nu|!vtWQ zFboa+ZiY|;%W!Y#$nK6UPEkD=071w3HRr<-wBF(JZ~b3pE^mR%Boi+1(X5}rlWJg; zcnAFv?X?!AA|&7?%Q*?@lwZTheDNyDhh7iVU(4}6fg;nB4d<;XM`HKL@TM^hE+f8%xMN8dt?)ZBav2gtE zTXUR0kl$7cYZ+S?E1@8A1#}GRcjs&q9aDKNVBT}wlU+#IFBw8lAA6l%Y^A6sQ%Y8p z&cml1Vw>L@8%xKsha`X>yD|FLr*9nl(724$dKdUtEvuH`xanys z%Se_2D!ir-UO0)ICV<;|@(Gtr3deP@Sv1}VdK^}iY%Vx0FdgnN@V;$VQO%I4lt{UN zL}B8{7sxnH7l8EfaqpeBhSzQ?vuO>5;55xi?=5`lQ>`&`=nDiDw=`q|)v|B;P_yQl z6HULt{v-L#HgCwUFx?za|>N??% z_(pPNRZ-FiYGFFq5jhs9mJ_n$I&=NJza|AoRb22DOo7j!u`qdHf!>s*yQ6+<;|&37ZBN@hKDKaH`#mD^W)}dX@FvPJgnQUb7{z zz$SYGAd#O%YgH%8bz<*ghb9-e-Xblu-q@Su5OUiI-pHPA@4v?8ZY1q@vR=H|;Mqsb zEe~DcO!So;%<~jy>7z7?yJ9e-FQOJxavq(!uFPI|5K`}bv}uq zn~ho4Tl=5ln{BfbA0L<`WNvd$mahdC{A@~sA~&V=rVhMK8r)Z$GCJF&d1CWoQ*e44 z+Bsxj7mYcXhB2p%b@cIj80E(VxxN}u`5N4>=cFMsRb`b{pwJitt>Zl=6C<3Kd=;NL zs1peBthYzhnE!MP)C9*ns+ismB*oWrzMn;L+vtu@aCMnR%p%^*rmtO}KgI=atyJH@ z7nMjd-ec8xJEkQr{vZv<8Qv*PmDKQ6UM`_pWqZ!~@!W@61T^|&t{xc(C+ED0KEH)H z%$9BSc;6SUr&{UcVWeXn*XqyiX5{fqueOhp6JKuBNkCVBM?Phhq$HC-xv9+6Wjzu8 z1TUa%(N=&m9K%!Sh;jQUuzzECUFY0EiHwx({P5jN)p}hau6t7}3QhJzF{STyxDKa{ zp3!C*u_>`n(bBp>ZZ264eOww#(pyzjoJVSTAo*i+SBYnReV}CG z7<^8O;iYZ6K)6o5lccKE4_%L>VwKOKFmM`L!Nwy-Ii`3@rsQ4RfxE7zBX!pKCgSl% zoT`?)(KAObgE@P`UF92{EGX#ERn!N|RZfk}bJW25k-2Sd3KaB_@xJ@9Fy8gy781qZ zUGBtVr2+D&-YpAq)0^1^yy_PSXstOo@7!Wf`ouWL{o>11kc0k9#vzR+|56CE-`JI_ z=RL|KV;aM_59}=N3Q63%U5VRDqY9=zE);-Z#?Al6PM+x(ua4NlI9_Z6oI-) zqi-UR^e%A;np6gdR@RNo-`9wEU)oFzoz_Nh=d0;pOAD>fc@-7R%gG}A{eH3t%Ol-Vza|Vt()MM|0`;v0bcb!~$Em~#t zH1rom3?HbdHXmy65#qV8D2b_#t%==}wm+NPo*I=0`Yusc-go=ZF_oma5l=DgTtUie zj(Te9ZR^nHXp-v=S<#wEW54l0r;d3lwVUsoa_h$HUyUqkemGdQU`%8@(GeG`~28Ujn}}lH$^O!$sqS(Wc?SUc^p%0 ztg8s3lSI(4U+PB9ucSAJRKoeX7s8DvPh@c&dA;0ie}cWUE6ydM8dugPresb6#q=l{8Zn7C?`+(61> z9|sC1XvDa$NiKcWjc!Iba*P#ucsVYqxvw#~6=M@`Rz-bC;tkO;)}!#>tWIw}f6W?* zKzWKRHuClBG`&3AOM$EM&ypNd1SEv#bc}h#!(5DW7-#dk1N5^vSL=x`b$> zQ}AQUjDX_wqKotgm!0m?ti{;JE74RNjYHzGy1XKiux2$!K} zOJic9Jw=`JT3Jpzg7jCjU+4J5yl86mo#((5g5_8a#OjC2BxP3hM%F$T7L|(AI~&qk zZ|}B>yOP%SbcNXa(O0W!M=9d`A5x#FLy5pSeZtHa5g(U22%?zX%m{HaK60&JG#wT< zeBf!>!}Wc=xPSWv=?!{=kG&h)Hui-Vo(#pM{Wl3;)X-gfG~=|z`#jZZdQiN@zBJDR zu|cI;?zRiC_a5Wktuznhc~xs2zvaxsd4~_J zZ~G2N9;(l)uU<=MmU@31+_HIaF9o}k!6v_9Lmqzim37o?iA~6E!w25rJ$$$I*2fhn zg0xzH+er^%^`jv7B*pq?V3HGAvY<259IvE&V(z)*JSTn0tPNM_#riCbgm+or0@3XJ z@m7(aXF7o|Ynm+U#Svpj;83Z1{O}qn#`UisWXH!53M!pR5hElD@Z5o1-LuC@Cuh^^ z+3e@rnf)7W@Eduh+$8Gj4l&9a2m!?=8RfAOlmeloR~WqnQN8c8_!i?^zX1{!Ek(mA zJfAi{^c56W++eHRoQ%Aym;~1WhoVoomAU9X4}&5PK?gVJsl7}_mMET!!XxcQ{TtH5 z&Ae)^zYr^*zWtkwTQT(PS|9Ij%nP3ehK-q)`JkV1fkzdu(%R+)Xt_ESoptj}HY_J6 z6I!@$Ek84GAb2^NlS&{%|BUgXxoe8IX;l;0PZ zeBt|jN0?Rf7X13l)JNg9kip`)W4>BfwHTPOf!Q71ckZx$Stf+|1BpKr`lNn4a z&O8qh{5L;GEk`suDKpeEtNX+y2fHVGG`n@>vzSBk283$5a5lUVaAoVW>JFJ~tgV5vOJxL8^?h{LofGhlf>^)Qg0 zC6i#2=j~Qj=^~|J_y@YaK^qdAJlvloeiH%&uSYvS#tUvBIKhoJArmEC!441P7@w_# z$KkM;3sG`DK&}lSgT{vgAE-%*2oqT{+Wp^7z0ro`!HiY#aG?y9d6LsCd6M|2*znQz z7>n95;2{cV_SFc)AL;+r6FnNn@yGa9XBu}!@x$DveTwCafP6J3Gnf-e8z8mjDCk{>dtbX7J+l8!nO{n)=r+-kY2I6u7LDbo4h}*SULi1I zctItXR;!I5f2@n3dLkXVApUZQz?c0wt^RNzZe_<)2!JHWb!i3je-IrG(9uaf6Uf#Mc?AfD{P2P!vlRXIW~xh+)cSN z;`>^9slF=1e4BjmC_6!^QRXN2qWW(-es`lAndJ!SbQbJ8QQ9(C9#X9GZ?ae-{Vq64 z0m~tgP}~qqX$jZqbi)sh$NLU$Mw)PL=^=`eA`EY;^e=V`sw6yM&9}FDcH>5j4egN5 zS4$B+vR7#&!J`OW3On4^=%LRo!d#C;>7LR#L6Ij#35}*<0%@;O$;@+YrH6!=3VGE_ z-H$T+d1y9UNO2{K<$3O^v51ge2i1v~2>k`#?xlKeJXScz9={Tpw&vBiO5uAelIpe9`R0wHCG4?lv#rLwgRZ!;<(K{lbqIXLxQ^z~DFjhu%I-6Trt@ToPDY zaCrx5G{J>w1n4sSK3Tz0ZE>=2RH?P#?kF3;Agq#)=iGde%({NC*LUxio!I^xq%c>; zVUpg;ZWxj7$jbd~R8eanH0yg!pO5KCNvXTZV?`nP9%zeTSBM7Y!m?2u*?9r#E%3T9 z9gzmZPl_shDFrJoO`jW)miZfS&YPDkgyf$vXFjKezmBSt|=1OzuAjCHsxJ zDpz@LRg{#)&bxA=N7tu9SZ89%gQPjx$&V+N2`$2FPvq`_qg{zH<#Z zz2rf@%HgaKpIqS^qi|O88ip{%lYHQ4q^$XcNY=Qyn}o$;+-^#XNeDOl=t*-rFj;Fi z-C`@asW<+mh(*(xiqbQjRx!!MU`Fiy?;-(j?wx&pmwCT>>P=>w_st}Yo>cinmxhWC zpHol0yt)AOY14FOd#ufw>Q4}bC;7+@CpNE+tNwY$VHRv-IAJs`<5ngfcCnL)zx3~E za9&V?vZ6;ft3l$?TZyv1Z*z@=;Nm8Z`@}nuTs$4hUV|B`E!^L(lSq$Z3vWpGNPfEF za}!)HYZFRKdM~kNlTC3gxl6Yzi%i6g!|-?Ec$v70Vv?J9BnDPm&NfO~Mjv?3?+-h_ z77KaZrn$-Oa)ofm3nif3ZgT!moN%n}b()KtvO{xgrg0tslCj8t3HU405C*7ZUq2%q z!(brw-&Lqm|Mi9-YUCH84!`O0dxYca=XaO{8GM8yfu4b~!?agf67xJnY0al1Yv1bx zsZ?|nuib{t_WX<+T{Kv``s@`meZ;Rb4;;Cp-e%g^irj|!!z{9pvAX=5j&57`Us}@7 z0oaEX535Rx{?rA@OYVF}G4u(4*##XTPhk70RY>SlLsoh<<}>QaxX)+IT$a$Y*uyrY z!MCcuZ-J@U44_iSO2n7>7F3x8C+zy$xGT?ZDRMl^a8gRQiF|i83S)TfTe`9$QuENK zOuG3_eOUT91zEpn*KaedQK|JOx83k4)z|I6D869jyR*dNuX3vm062G|D4|X?tcq$9 z_6Y`ADjgVB=ZE1@bcz-Q8)ELktQyq`RqXUbM-=J36vUR20F9;22Iu$*e=T3V{&CbHGA|6nfMS?sP@Dca^ID~Iz793+t**m20mCTO zS!-KT?%`e1p?a@XGENDza$@nE(-;pUP}3{g*-%UiY@m#3+}gXPw#KZ!wdg%{>1_3_ z_dTI!jo8NgEHnQu+5_2NO*U;eQU>9_vtnN3N|(X6>GSHCEx)QE?NRLR&Sd6XAe508E zeYg0n+u?48#ChX+nSqte)$GGP{f?pH0&{k^)-s)cF00P3J)jv}umvZk?Vc|lM77Id znQ^xgw3^cXyt(9yB*hC2MUIkP@OQ0WI5F-Vcsq}Jd=ntdBehv$*JaqevoUe=`P~CN zJUl0jBx`Yx2@gV2#iU!jhXRXC&?bF}?K`T8tTo=!fkWJPUq4a;2V#0h@NC~dc963d zaNn|Q+9X#@>UO9+H`?xsk9cEN8uwA8>E^m4YUfN+#KQREo=_--VcpYTOkwppgUQm3 zR07;B*WFh(sG4KR*x|HNhRZYit{&gXzZ7x*Cak=d6Ha@XvGHS08K#XI|@Mq?GjNkWLKslwwTQEck@ zLVgFwpEd)RdrGLcq|V%)KKT>GW!>1BQ?)B}`=AuTuN1L^>c|f%G{M<5;^#OAl zMfs?gBC`&Jpd_h&dD~~A=e(UXx87Ja;1e%#DvFZohNe68?7!B}qA#X>&iYcBzIe++ zBP>tEe57et*Gs*$BTyiub!-lYfO$Zhew{c-|8bYkhVPPu=_2Vj5qeTR2q6)EsM>8U z#2teM9c+H;|(p2(~V<+0ZX>s64XD6P zHO#Pw&)+__|K$_|ZhL7HLl8@UaU%qCu(!`nXnbocJ+w6{&kSzYmd#dsRhbCbZPHRM zDP@||kcAKoDZy>iU-4ucG5FjCzLIIA=K`r5k{X2l1nyg#_=5~KH+?`ksd)>D**Dd@8D!;A7K-K?{TL^V)L*i83KO?yB&_ z;^_%C8Y7jq&cV+IJL`L<-IEFQ^z>Pzd1B))aPY1Pop5nHnpYwTiL+5C0NxQVC%Dv`{#kPAJ1kz2g4l-A(<@c5mf=-l$$8p3L` z+5|*=GJz#L5*P!=ugwrQ8L&CwEUf)B0qLi?-eDM3KGF9r`Gp$kYPYF{aWbOYR3XEh zhcLtrx?2)}+(d>i8AIMFzn`w(*5Yg%m`1vXTW|e54Nk2TLzS25@^tBuM39O})`%Yc z4*1^USP?hvOfRHWVf^;C&H2kw=H6Mb@1X7c97GFlzZ;|uLRwhOsqJpC~PCb9yN8 z!^$%(c~}72lm+cDsT$^NYm53I~h+ zX0PM)(#Jhwd6b;T%adMjQz5OXGt z`iX?|WfOft^o0TKUaWzOX5*f;3h#qYTotsWZ%r%HSnA!(B@KS$ncbQ736vF)#2k)1 zOWn@%YX_V6uv^Eh!Rd1xZi;1TLjK|-D|dJk34XJUOyAkI)VmpIouM;sLkQrnMdQ7S z+arSmf`RIRVW3bMuA~L*+cOHY$pVwN5KKzxzbGA>Ubtr{C=w=WR`8aLz{!-?b06CICFG}%#mcnb>hZ!+1Fg~-I z6HQ5WUPI{yYPQwC^|oelN}wCLcYW(;a1?3)#IvTR;Rm8pH|2GhvEb7!B_HiR9$)bl zd5}-khGTXh=B$V+DACF|<6bR&Na!fhq*^c`M+wbiAj)qBwS|IILM0M5TBE?7_2W1C zc@CX1516hJJ5=bryeoV*#`g3>y3P4s%5T@?_=oWCvX~-==gLEhS-7=*zkHi0v_`R$ zr{eL++U$S_LNE6s5VF}9%<9YKV{tY~ry5csrqj4M; zbCap!w14Qc(5XYaw_3NAm@DPE8_7LG5qCY#T z1h;$68=oaXUg@m!H_^B?-vZGy^H5x|En>HPaY-DH3LDC;b(0G@_7m|jP`gI0&}DOx zWph~p%j-v?putC(J*W^~wqVHEm#PWFi?TloooSaew@=Xuj7nL~Gl`CRCczB8AqniD z_Lr}C0;1_YK3)<)?($pEjd(_r1=p7bd*Uz?ANizB6hJnrIrA5e&-^Nx6YOo{Wh}K` zM5c0i)mM>SKbgIAd&h1!Z=L%P*8h!b{5qvr`Wo*lc_-JBN<2thNZzF6=;xwjLfuLr zy;mJqJjD!=&8z&1z?UmBWN3Xb90bj$xr|)M@DI1txmNm)&>M-q{GFlEkdW(9*ZvOz z;f1uZsmuiS(WcS8JnS>}?c`OQ@JF-<3})@bLCy+i)`7v7I)f6(QW@#hP^RH0W4 zdzSGagRe6O;t?->wzSm0_XyReA6VXp;Tywl&OlpsL9IwjdcJjicPd0Jh#>gK-Mi^h zpGE@aSK>Sh;n)&RU_*D;UV`>%4EFYm_-_~n;UC_msc#h69=}{PnETQ)+V?ByVEKcK zE`vFP=5HDNQ=1cPa8e; zT5J5wV4f!Is5oXiqZqm(Omo#E>;4gK_vF*}1RjKoPbA9|_4{9ZI$v7)l36b^s?;}b z8DmAdHRMKjax?d8XNXz~P9ZgBXV06D3cPkF^vA-_%~r3fsvJX$CCY-EDM;jadWCXJ z0#mEHxG)K`viR0SKF7{c=AKJq%BYaRQ{BFqCPmT_`|kgeK44NxwZIO7dVRQ%M0})X z5Cf1DezK44S81tHV|SD;QYZ9xs3K+Io7!TDZ%kOzFI{-Vw`SZ_JkoM~t|tnRN4_NQ zVx+Giz+i%@*4~8A%~QFCM>_Y^&n;aie};U`Xm_G*z;49OXzX}EkzURd6yRo~0yn7rlAl(Ee;6J&81LpgGSsD(F9eKaSH zrweLfyz#}6!Yyoi)2J*(c8WV_Uc6tq$hXPpnVb0%X-9p%?6_K-Bc$zF$TrE5oF~tu zqkfwWK{C#gO84*XE+spA6O`}&{>fD;i;$XbNAvHP(lANas{C6K}>19w( z68)fT`}NVAm@$#woZ$<*c7txl&n5zm7f|aFB-H3>RTR59roZh-gZ>xV-p!-@AEJp_ z?>djZ@eq3SaNUwsHo3@vBlAvQv%Z!1A6IW36;<2DjjAA_)PTa!FqDGC(49l6fP{f` zcT1Nb!i)?pB_#t$cS-kvq`=S(O2ddWBXG9Q`#j${-}wvHg0-yF8`E=|@ zoJ|E*tU3Q=lh!=W9Av{3^Q`eT(;)`em z4%pUR{tw!~(CHIjW3^H>y`Q7Kg)vU?JoZ%Y!#_Lr0jzfo4Gao&&w_uv&cho6j$ef0 z=h+4oo!Q+@0Cv#dVW>_j z)o*~U%>#T}eM`-f!bwyOv;Jq?hA#r=S|FE~D6`#i$q0S$sbC>*#1?R?yVwXy{@^w0 zeMtajfm(B_VpP6%!lOP%#!d2R5#i69yl{FBj7v&v>7m7==-FJVskbMUg1=HT;Ch^V zWkVlIiuo3?_4|no+iVh-Yx?lVQ5YQw)_j5t;1#4NtvFQ!}P=X_^ z?iXbvo^pT65S;@*u!^Y%iqg&!$9Q zv&(vTD^7KB4d@!+;+e~q-z!gv?3inm*1ijRAJEw?DUdKoJjZuM_Lm-=xeo{hLB6Vg zA(5e`Sa@PI{sQr+NBwP!0IgO*@H_Qh+vNk#NRY0@oJQlN^85a|Up_F?=1ev++Wqe5J67y^Bvbt3`}Ue-&VXUBD8}aqzk>8-m!XBeekUgg&eZ9S_wd9Qc>3G`^Q#YE(rVf+(cej zG%3J7I+6p}}Hne;yl%g^CXkiR%X^ z)P58vyuz5hwX7;wXf7^kdNm@;tL^{JSg6X{yv1B&%1wwFJuvHZ*k;$^97D(+PKk%O~uJb>vnh{rAEjo ztu~h$M&!>TyEd@w#^|bC>d!{qkuIY&O{-PF5j+kP!LPoH$KP4g5fgOv4iv*R_gdYI-je5-$05K24rd%I4 zS`V`oee>tNP!!h2`Cc`w zl(fSzG>2$J?X};jD3qB-q@lZ(@d)Jo)<^`0+ zOk4eQs1MpliDEN637XHJlhH=D%=Q18m*#g$A0#0vfLXJ#0OA28Bz$J-hY%70`!2^D zI#~{%MYCJjGyR?;^7=C6FoOp(`cHm@uXRjYU4DnVpdDY;odIsJj?tuDN(zPB7 z*6fMGf=qTX$7Uumjp*~AGBRj3;dtMN@dXS1eXvyAt9mXK3|jvK@1xz?a+)9>fuP`z zt+C~U1Y80hdwz1BcS}=?g%etb4n5KfoF)f$J%^fXN(X0C4mwH_TCQz|q|G}GX{nk| zHD5ch*&nvlrg|wiQv2v-R8L2k{+Mn!Q@;na>{7h zr2_i8EXZn_ziA}R@bM&#hcp?hI47q*X7aS>@)nt`qlf8OjBfDY!?b!Vd3su*&@7ol zC{3Jtf1Gf7!Jca~Y~G}Pk>602Ett7EKUBQwr2y(Y6T^Oqt4_2TgC=ouSHMe9%PYX#x6Mo1Sd(W-=i6IpZvoW zIyYqC{k*bY1D1{?Fh>OjgUzOcqZ-$-wkT0MZ|DV(nIS%k@&YVRJwAy#2b>iyq;nYWugW zcJ7MxUJDO4d1Kn9-7W93t%NsP3{C(Y?N!-C0Z85W@#{BQv4$6y?Ckay(iY^(nPO@C z5kQ>8#Gap4vxoCSE7#})+PivWj#9?a3{qUT7PBpEdY*yV?dRfViK@OKFhR7+P8ZUF zwQgy$l%tWK`xjf+Y0r~uK3V!c(8;bOGUu6eKAZ@l346MIkC56Wj7;$nNOO0~uAA=S zUR-1D+z)J&!D(ULLPU5kwCi{69LJvfaX918R1hA#pRFi!XBB_^%MQg1>V|~?fm`NA zakp*yiN-Me&9_sK%_t% z^3@`^e8oylZvXa11t2=ua?8%ckoFevRM9N^DEtUayx7YL1uNJa$vz2ooGwZpOlT$) zLXR${mQ&P%Vcf`xZ#y*! zva3Ak({UlxZhfRxZ$ire^Mw&AD@O|UcGTW09^_zucPCom#5*6quBTlh$+K9(>v)#& zTZKh=oYM)@uX?4)6kwQnoJ4f3rm%L}Aa`zo&7-Htg24UG=ZSfy_m^gqMXGlJCQu)H z05I-smuHFOLf<4#Hu{!Lg9&#m>ox>XqHzZR0FYctbl{0Mnu3 zSbP$bWvor_`g_e!oRExJOv?C0v|8-Soeg5CweW9ef2C0t%{;@m*S*$F7i--}<{LKP z;$-)VF|X<;&H@pep6Lbp$p`Z%Es{Dk|A=WJ`*kimf5o&0#f^SG$6I_p|E~S3so%er zxSdsga%s;R^q!5VTbZ(V$`1y`1BBAa@zH)|q;331nOX!>_h$E^6Zm%Xn;p3q$PuDD zfHsBKP((qS9yuKrcaydE?uhd2Yh;%f?O6e+L{j=S+!+SONPi@&$07KW$I zqq6w{SdIc5Rx78z{gK%ZDp8`^!{Eaf)9U1f4wVW{zecP4ka(upmS|P2On&Tbyc%Bnh~aWx|3!jYTKR%(4N$gS zGU7oI)&{^^TdQn_#-GYXcSL)M*!~dqAgABq5wB6t@qK>*HqZ#; zSUYa!aL9{_x2IKVLs*N(Lhf~hT>C5Up-cTEmqSM9BM~RogY^S%H-$X*vXWhNvbG)E z`N4TqZ1(gwWwTp^L)<`JQhQ@CgG1Ww7+{vGCJs)pH`2-{t)ZQU>tGG_2afS`28$^l zK^ykBVwB&*PoFfg>}|J$#wl+QM2qi_ zXG6VS)|wF_WMQvRQR60Rr)@UZ&~xd|-Lwm76agZa4A`&XHVjrvyJ{Z+A#^J_bh_0A zRJ+8%)8}q-=Vy|iAq=jh`$T;ixOfD^vEz<>7|)FSu1J-} zvl^aLKjWC==3e0Bn)6&vQJiF6uK{3dqNp9wy@S%gnGyQ9RGE>MUeJeg(rzsHWVKFC zwY%(+v94gqCsFpLgot(jEqy6LCT%(RkK8)zNMcCgw~J6V);YRql$WF9=AV(EN827{ z0>W4Ud9+L&Th#y{e0;Pv{aWk7ZTq|=lU#oa;F$bvcqrEIr?a>|vx<6qHt2FkHbNI) zQ?2%s7brqzmVNH#^b&Ei30h#5aqSEk!eTi<(H{zPS|8^1D@7^^MdQQN=dcUmvOR&T z?EuQ719Q5V+@SrS7I;H*0geGG5mA^I`79lf5ia`F-^%EHI}@+_LY$;4s;=uG{@3!R znfNRS=rjZTn@aw$Aa702OV1=!