Note:
diff --git a/problems/minimum-remove-to-make-valid-parentheses/README.md b/problems/minimum-remove-to-make-valid-parentheses/README.md
new file mode 100644
index 000000000..80f9dd68c
--- /dev/null
+++ b/problems/minimum-remove-to-make-valid-parentheses/README.md
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+[< Previous](https://github.com/openset/leetcode/tree/master/problems/count-number-of-nice-subarrays "Count Number of Nice Subarrays")
+
+[Next >](https://github.com/openset/leetcode/tree/master/problems/check-if-it-is-a-good-array "Check If It Is a Good Array")
+
+## [1249. Minimum Remove to Make Valid Parentheses (Medium)](https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses "移除无效的括号")
+
+Given a string s of '(' , ')' and lowercase English characters.
+
+Your task is to remove the minimum number of parentheses ( '(' or ')', in any positions ) so that the resulting parentheses string is valid and return any valid string.
+
+Formally, a parentheses string is valid if and only if:
+
+
+ - It is the empty string, contains only lowercase characters, or
+ - It can be written as
AB (A concatenated with B), where A and B are valid strings, or
+ - It can be written as
(A), where A is a valid string.
+
+
+
+Example 1:
+
+
+Input: s = "lee(t(c)o)de)"
+Output: "lee(t(c)o)de"
+Explanation: "lee(t(co)de)" , "lee(t(c)ode)" would also be accepted.
+
+
+
Example 2:
+
+
+Input: s = "a)b(c)d"
+Output: "ab(c)d"
+
+
+
Example 3:
+
+
+Input: s = "))(("
+Output: ""
+Explanation: An empty string is also valid.
+
+
+
Example 4:
+
+
+Input: s = "(a(b(c)d)"
+Output: "a(b(c)d)"
+
+
+
+
Constraints:
+
+
+ 1 <= s.length <= 10^5
+ s[i] is one of '(' , ')' and lowercase English letters.
+
+
+### Related Topics
+ [[Stack](https://github.com/openset/leetcode/tree/master/tag/stack/README.md)]
+ [[String](https://github.com/openset/leetcode/tree/master/tag/string/README.md)]
+
+### Hints
+
+Hint 1
+Each prefix of a balanced parentheses has a number of open parentheses greater or equal than closed parentheses, similar idea with each suffix.
+
+
+
+Hint 2
+Check the array from left to right, remove characters that do not meet the property mentioned above, same idea in backward way.
+
diff --git a/problems/minimum-swaps-to-make-strings-equal/README.md b/problems/minimum-swaps-to-make-strings-equal/README.md
new file mode 100644
index 000000000..faeae9bfa
--- /dev/null
+++ b/problems/minimum-swaps-to-make-strings-equal/README.md
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+[< Previous](https://github.com/openset/leetcode/tree/master/problems/palindrome-removal "Palindrome Removal")
+
+[Next >](https://github.com/openset/leetcode/tree/master/problems/count-number-of-nice-subarrays "Count Number of Nice Subarrays")
+
+## [1247. Minimum Swaps to Make Strings Equal (Easy)](https://leetcode.com/problems/minimum-swaps-to-make-strings-equal "交换字符使得字符串相同")
+
+
You are given two strings s1 and s2 of equal length consisting of letters "x" and "y" only. Your task is to make these two strings equal to each other. You can swap any two characters that belong to different strings, which means: swap s1[i] and s2[j].
+
+
Return the minimum number of swaps required to make s1 and s2 equal, or return -1 if it is impossible to do so.
+
+
+
Example 1:
+
+
+Input: s1 = "xx", s2 = "yy"
+Output: 1
+Explanation:
+Swap s1[0] and s2[1], s1 = "yx", s2 = "yx".
+
+
Example 2:
+
+
+Input: s1 = "xy", s2 = "yx"
+Output: 2
+Explanation:
+Swap s1[0] and s2[0], s1 = "yy", s2 = "xx".
+Swap s1[0] and s2[1], s1 = "xy", s2 = "xy".
+Note that you can't swap s1[0] and s1[1] to make s1 equal to "yx", cause we can only swap chars in different strings.
+
+
Example 3:
+
+
+Input: s1 = "xx", s2 = "xy"
+Output: -1
+
+
+
Example 4:
+
+
+Input: s1 = "xxyyxyxyxx", s2 = "xyyxyxxxyx"
+Output: 4
+
+
+
+
Constraints:
+
+
+ 1 <= s1.length, s2.length <= 1000
+ s1, s2 only contain 'x' or 'y'.
+
+
+### Related Topics
+ [[Greedy](https://github.com/openset/leetcode/tree/master/tag/greedy/README.md)]
+ [[String](https://github.com/openset/leetcode/tree/master/tag/string/README.md)]
+
+### Hints
+
+Hint 1
+First, ignore all the already matched positions, they don't affect the answer at all. For the unmatched positions, there are three basic cases (already given in the examples):
+
+
+
+Hint 2
+("xx", "yy") => 1 swap, ("xy", "yx") => 2 swaps
+
+
+
+Hint 3
+So the strategy is, apply case 1 as much as possible, then apply case 2 if the last two unmatched are in this case, or fall into impossible if only one pair of unmatched left. This can be done via a simple math.
+
diff --git a/problems/n-ary-tree-level-order-traversal/README.md b/problems/n-ary-tree-level-order-traversal/README.md
index 13101684d..79a3b4d21 100644
--- a/problems/n-ary-tree-level-order-traversal/README.md
+++ b/problems/n-ary-tree-level-order-traversal/README.md
@@ -9,7 +9,7 @@
[Next >](https://github.com/openset/leetcode/tree/master/problems/flatten-a-multilevel-doubly-linked-list "Flatten a Multilevel Doubly Linked List")
-## [429. N-ary Tree Level Order Traversal (Easy)](https://leetcode.com/problems/n-ary-tree-level-order-traversal "N叉树的层序遍历")
+## [429. N-ary Tree Level Order Traversal (Medium)](https://leetcode.com/problems/n-ary-tree-level-order-traversal "N叉树的层序遍历")
Given an n-ary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
diff --git a/problems/n-ary-tree-postorder-traversal/README.md b/problems/n-ary-tree-postorder-traversal/README.md
index 6a0db72eb..76132854f 100644
--- a/problems/n-ary-tree-postorder-traversal/README.md
+++ b/problems/n-ary-tree-postorder-traversal/README.md
@@ -33,5 +33,5 @@
### Similar Questions
1. [Binary Tree Postorder Traversal](https://github.com/openset/leetcode/tree/master/problems/binary-tree-postorder-traversal) (Hard)
- 1. [N-ary Tree Level Order Traversal](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) (Easy)
+ 1. [N-ary Tree Level Order Traversal](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) (Medium)
1. [N-ary Tree Preorder Traversal](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-preorder-traversal) (Easy)
diff --git a/problems/n-ary-tree-preorder-traversal/README.md b/problems/n-ary-tree-preorder-traversal/README.md
index 995bc3fb7..0d536fbac 100644
--- a/problems/n-ary-tree-preorder-traversal/README.md
+++ b/problems/n-ary-tree-preorder-traversal/README.md
@@ -34,5 +34,5 @@
### Similar Questions
1. [Binary Tree Preorder Traversal](https://github.com/openset/leetcode/tree/master/problems/binary-tree-preorder-traversal) (Medium)
- 1. [N-ary Tree Level Order Traversal](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) (Easy)
+ 1. [N-ary Tree Level Order Traversal](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) (Medium)
1. [N-ary Tree Postorder Traversal](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-postorder-traversal) (Easy)
diff --git a/problems/number-of-comments-per-post/README.md b/problems/number-of-comments-per-post/README.md
new file mode 100644
index 000000000..34defe75d
--- /dev/null
+++ b/problems/number-of-comments-per-post/README.md
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+[< Previous](https://github.com/openset/leetcode/tree/master/problems/tiling-a-rectangle-with-the-fewest-squares "Tiling a Rectangle with the Fewest Squares")
+
+[Next >](https://github.com/openset/leetcode/tree/master/problems/web-crawler-multithreaded "Web Crawler Multithreaded")
+
+## [1241. Number of Comments per Post (Easy)](https://leetcode.com/problems/number-of-comments-per-post "每个帖子的评论数")
+
+
diff --git a/problems/number-of-comments-per-post/mysql_schemas.sql b/problems/number-of-comments-per-post/mysql_schemas.sql
new file mode 100644
index 000000000..cf53a553f
--- /dev/null
+++ b/problems/number-of-comments-per-post/mysql_schemas.sql
@@ -0,0 +1,13 @@
+Create table If Not Exists Submissions (sub_id int, parent_id int);
+Truncate table Submissions;
+insert into Submissions (sub_id, parent_id) values ('1', 'None');
+insert into Submissions (sub_id, parent_id) values ('2', 'None');
+insert into Submissions (sub_id, parent_id) values ('1', 'None');
+insert into Submissions (sub_id, parent_id) values ('12', 'None');
+insert into Submissions (sub_id, parent_id) values ('3', '1');
+insert into Submissions (sub_id, parent_id) values ('5', '2');
+insert into Submissions (sub_id, parent_id) values ('3', '1');
+insert into Submissions (sub_id, parent_id) values ('4', '1');
+insert into Submissions (sub_id, parent_id) values ('9', '1');
+insert into Submissions (sub_id, parent_id) values ('10', '2');
+insert into Submissions (sub_id, parent_id) values ('6', '7');
diff --git a/problems/palindrome-removal/README.md b/problems/palindrome-removal/README.md
new file mode 100644
index 000000000..d929cfa5c
--- /dev/null
+++ b/problems/palindrome-removal/README.md
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+[< Previous](https://github.com/openset/leetcode/tree/master/problems/tree-diameter "Tree Diameter")
+
+[Next >](https://github.com/openset/leetcode/tree/master/problems/minimum-swaps-to-make-strings-equal "Minimum Swaps to Make Strings Equal")
+
+## [1246. Palindrome Removal (Hard)](https://leetcode.com/problems/palindrome-removal "删除回文子数组")
+
+
+
+### Related Topics
+ [[Dynamic Programming](https://github.com/openset/leetcode/tree/master/tag/dynamic-programming/README.md)]
+
+### Hints
+
+Hint 1
+Use dynamic programming.
+
+
+
+Hint 2
+Let dp[i][j] be the solution for the sub-array from index i to index j.
+
+
+
+Hint 3
+Notice that if we have S[i] == S[j] one transition could be just dp(i + 1, j + 1) because in the last turn we would have a palindrome and we can extend this palindrome from both sides, the other transitions are not too difficult to deduce.
+
diff --git a/problems/reverse-bits/README.md b/problems/reverse-bits/README.md
index 9197d30aa..3bc7fcb93 100644
--- a/problems/reverse-bits/README.md
+++ b/problems/reverse-bits/README.md
@@ -28,7 +28,7 @@
Input: 11111111111111111111111111111101
Output: 10111111111111111111111111111111
-Explanation: The input binary string 11111111111111111111111111111101 represents the unsigned integer 4294967293, so return 3221225471 which its binary representation is 10101111110010110010011101101001.
+
Explanation: The input binary string
11111111111111111111111111111101 represents the unsigned integer 4294967293, so return 3221225471 which its binary representation is
10111111111111111111111111111111.
diff --git a/problems/rotate-array/README.md b/problems/rotate-array/README.md
index c56e711c5..72994b14e 100644
--- a/problems/rotate-array/README.md
+++ b/problems/rotate-array/README.md
@@ -47,3 +47,24 @@ rotate 2 steps to the right: [3,99,-1,-100]
### Similar Questions
1. [Rotate List](https://github.com/openset/leetcode/tree/master/problems/rotate-list) (Medium)
1. [Reverse Words in a String II](https://github.com/openset/leetcode/tree/master/problems/reverse-words-in-a-string-ii) (Medium)
+
+### Hints
+
+Hint 1
+The easiest solution would use additional memory and that is perfectly fine.
+
+
+
+Hint 2
+The actual trick comes when trying to solve this problem without using any additional memory. This means you need to use the original array somehow to move the elements around. Now, we can place each element in its original location and shift all the elements around it to adjust as that would be too costly and most likely will time out on larger input arrays.
+
+
+
+Hint 3
+One line of thought is based on reversing the array (or parts of it) to obtain the desired result. Think about how reversal might potentially help us out by using an example.
+
+
+
+Hint 4
+The other line of thought is a tad bit complicated but essentially it builds on the idea of placing each element in its original position while keeping track of the element originally in that position. Basically, at every step, we place an element in its rightful position and keep track of the element already there or the one being overwritten in an additional variable. We can't do this in one linear pass and the idea here is based on cyclic-dependencies between elements.
+
diff --git a/problems/tiling-a-rectangle-with-the-fewest-squares/README.md b/problems/tiling-a-rectangle-with-the-fewest-squares/README.md
index bfa89d44f..bd4b0ae3b 100644
--- a/problems/tiling-a-rectangle-with-the-fewest-squares/README.md
+++ b/problems/tiling-a-rectangle-with-the-fewest-squares/README.md
@@ -7,7 +7,7 @@
[< Previous](https://github.com/openset/leetcode/tree/master/problems/maximum-length-of-a-concatenated-string-with-unique-characters "Maximum Length of a Concatenated String with Unique Characters")
-Next >
+[Next >](https://github.com/openset/leetcode/tree/master/problems/number-of-comments-per-post "Number of Comments per Post")
## [1240. Tiling a Rectangle with the Fewest Squares (Hard)](https://leetcode.com/problems/tiling-a-rectangle-with-the-fewest-squares "铺瓷砖")
diff --git a/problems/tree-diameter/README.md b/problems/tree-diameter/README.md
new file mode 100644
index 000000000..56bce4a8c
--- /dev/null
+++ b/problems/tree-diameter/README.md
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+[< Previous](https://github.com/openset/leetcode/tree/master/problems/design-a-leaderboard "Design A Leaderboard")
+
+[Next >](https://github.com/openset/leetcode/tree/master/problems/palindrome-removal "Palindrome Removal")
+
+## [1245. Tree Diameter (Medium)](https://leetcode.com/problems/tree-diameter "树的直径")
+
+
+
+### Related Topics
+ [[Tree](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)]
+ [[Depth-first Search](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)]
+ [[Breadth-first Search](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)]
+
+### Hints
+
+Hint 1
+Start at any node A and traverse the tree to find the furthest node from it, let's call it B.
+
+
+
+Hint 2
+Having found the furthest node B, traverse the tree from B to find the furthest node from it, lets call it C.
+
+
+
+Hint 3
+The distance between B and C is the tree diameter.
+
diff --git a/problems/web-crawler-multithreaded/README.md b/problems/web-crawler-multithreaded/README.md
new file mode 100644
index 000000000..95f7807b4
--- /dev/null
+++ b/problems/web-crawler-multithreaded/README.md
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+[< Previous](https://github.com/openset/leetcode/tree/master/problems/number-of-comments-per-post "Number of Comments per Post")
+
+[Next >](https://github.com/openset/leetcode/tree/master/problems/array-transformation "Array Transformation")
+
+## [1242. Web Crawler Multithreaded (Medium)](https://leetcode.com/problems/web-crawler-multithreaded "")
+
+
+
+### Related Topics
+ [[Depth-first Search](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)]
+ [[Breadth-first Search](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)]
diff --git a/problems/web-crawler/README.md b/problems/web-crawler/README.md
index a1c24ca8e..ea574545c 100644
--- a/problems/web-crawler/README.md
+++ b/problems/web-crawler/README.md
@@ -12,3 +12,13 @@
## [1236. Web Crawler (Medium)](https://leetcode.com/problems/web-crawler "")
+
+### Related Topics
+ [[Depth-first Search](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)]
+ [[Breadth-first Search](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)]
+
+### Hints
+
+Hint 1
+Use DFS/BFS to search start from the startURL. Remember to get rid of duplicate URLs.
+
diff --git a/readme/301-600.md b/readme/301-600.md
index 951a9b01b..d36701d90 100644
--- a/readme/301-600.md
+++ b/readme/301-600.md
@@ -190,7 +190,7 @@ LeetCode Problems' Solutions
|
426 | [Convert Binary Search Tree to Sorted Doubly Linked List](https://leetcode.com/problems/convert-binary-search-tree-to-sorted-doubly-linked-list "将二叉搜索树转化为排序的双向链表") 🔒 | [Go](https://github.com/openset/leetcode/tree/master/problems/convert-binary-search-tree-to-sorted-doubly-linked-list) | Medium |
|
427 | [Construct Quad Tree](https://leetcode.com/problems/construct-quad-tree "建立四叉树") | [Go](https://github.com/openset/leetcode/tree/master/problems/construct-quad-tree) | Medium |
|
428 | [Serialize and Deserialize N-ary Tree](https://leetcode.com/problems/serialize-and-deserialize-n-ary-tree "序列化和反序列化 N 叉树") 🔒 | [Go](https://github.com/openset/leetcode/tree/master/problems/serialize-and-deserialize-n-ary-tree) | Hard |
-|
429 | [N-ary Tree Level Order Traversal](https://leetcode.com/problems/n-ary-tree-level-order-traversal "N叉树的层序遍历") | [Go](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) | Easy |
+|
429 | [N-ary Tree Level Order Traversal](https://leetcode.com/problems/n-ary-tree-level-order-traversal "N叉树的层序遍历") | [Go](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) | Medium |
|
430 | [Flatten a Multilevel Doubly Linked List](https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list "扁平化多级双向链表") | [Go](https://github.com/openset/leetcode/tree/master/problems/flatten-a-multilevel-doubly-linked-list) | Medium |
|
431 | [Encode N-ary Tree to Binary Tree](https://leetcode.com/problems/encode-n-ary-tree-to-binary-tree "将 N 叉树编码为二叉树") 🔒 | [Go](https://github.com/openset/leetcode/tree/master/problems/encode-n-ary-tree-to-binary-tree) | Hard |
|
432 | [All O`one Data Structure](https://leetcode.com/problems/all-oone-data-structure "全 O(1) 的数据结构") | [Go](https://github.com/openset/leetcode/tree/master/problems/all-oone-data-structure) | Hard |
diff --git a/tag/array/README.md b/tag/array/README.md
index 30a5c4281..7e5917f2d 100644
--- a/tag/array/README.md
+++ b/tag/array/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1243 | [数组变换](https://github.com/openset/leetcode/tree/master/problems/array-transformation) 🔒 | [[数组](https://github.com/openset/leetcode/tree/master/tag/array/README.md)] | Easy |
| 1233 | [删除子文件夹](https://github.com/openset/leetcode/tree/master/problems/remove-sub-folders-from-the-filesystem) | [[数组](https://github.com/openset/leetcode/tree/master/tag/array/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Medium |
| 1232 | [缀点成线](https://github.com/openset/leetcode/tree/master/problems/check-if-it-is-a-straight-line) | [[几何](https://github.com/openset/leetcode/tree/master/tag/geometry/README.md)] [[数组](https://github.com/openset/leetcode/tree/master/tag/array/README.md)] [[数学](https://github.com/openset/leetcode/tree/master/tag/math/README.md)] | Easy |
| 1222 | [可以攻击国王的皇后](https://github.com/openset/leetcode/tree/master/problems/queens-that-can-attack-the-king) | [[数组](https://github.com/openset/leetcode/tree/master/tag/array/README.md)] | Medium |
diff --git a/tag/breadth-first-search/README.md b/tag/breadth-first-search/README.md
index 1ebc2d45f..20672de35 100644
--- a/tag/breadth-first-search/README.md
+++ b/tag/breadth-first-search/README.md
@@ -9,6 +9,9 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1245 | [树的直径](https://github.com/openset/leetcode/tree/master/problems/tree-diameter) 🔒 | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
+| 1242 | [Web Crawler Multithreaded](https://github.com/openset/leetcode/tree/master/problems/web-crawler-multithreaded) 🔒 | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
+| 1236 | [Web Crawler](https://github.com/openset/leetcode/tree/master/problems/web-crawler) 🔒 | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
| 1210 | [穿过迷宫的最少移动次数](https://github.com/openset/leetcode/tree/master/problems/minimum-moves-to-reach-target-with-rotations) | [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Hard |
| 1197 | [进击的骑士](https://github.com/openset/leetcode/tree/master/problems/minimum-knight-moves) 🔒 | [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
| 1162 | [地图分析](https://github.com/openset/leetcode/tree/master/problems/as-far-from-land-as-possible) | [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] [[图](https://github.com/openset/leetcode/tree/master/tag/graph/README.md)] | Medium |
@@ -40,7 +43,7 @@
| 505 | [迷宫 II](https://github.com/openset/leetcode/tree/master/problems/the-maze-ii) 🔒 | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
| 499 | [迷宫 III](https://github.com/openset/leetcode/tree/master/problems/the-maze-iii) 🔒 | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Hard |
| 490 | [迷宫](https://github.com/openset/leetcode/tree/master/problems/the-maze) 🔒 | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
-| 429 | [N叉树的层序遍历](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Easy |
+| 429 | [N叉树的层序遍历](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
| 417 | [太平洋大西洋水流问题](https://github.com/openset/leetcode/tree/master/problems/pacific-atlantic-water-flow) | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
| 407 | [接雨水 II](https://github.com/openset/leetcode/tree/master/problems/trapping-rain-water-ii) | [[堆](https://github.com/openset/leetcode/tree/master/tag/heap/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Hard |
| 323 | [无向图中连通分量的数目](https://github.com/openset/leetcode/tree/master/problems/number-of-connected-components-in-an-undirected-graph) 🔒 | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] [[并查集](https://github.com/openset/leetcode/tree/master/tag/union-find/README.md)] [[图](https://github.com/openset/leetcode/tree/master/tag/graph/README.md)] | Medium |
diff --git a/tag/depth-first-search/README.md b/tag/depth-first-search/README.md
index 4d4112482..81009345e 100644
--- a/tag/depth-first-search/README.md
+++ b/tag/depth-first-search/README.md
@@ -9,6 +9,9 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1245 | [树的直径](https://github.com/openset/leetcode/tree/master/problems/tree-diameter) 🔒 | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
+| 1242 | [Web Crawler Multithreaded](https://github.com/openset/leetcode/tree/master/problems/web-crawler-multithreaded) 🔒 | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
+| 1236 | [Web Crawler](https://github.com/openset/leetcode/tree/master/problems/web-crawler) 🔒 | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
| 1203 | [项目管理](https://github.com/openset/leetcode/tree/master/problems/sort-items-by-groups-respecting-dependencies) | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[图](https://github.com/openset/leetcode/tree/master/tag/graph/README.md)] [[拓扑排序](https://github.com/openset/leetcode/tree/master/tag/topological-sort/README.md)] | Hard |
| 1192 | [查找集群内的「关键连接」](https://github.com/openset/leetcode/tree/master/problems/critical-connections-in-a-network) | [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] | Hard |
| 1145 | [二叉树着色游戏](https://github.com/openset/leetcode/tree/master/problems/binary-tree-coloring-game) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] | Medium |
diff --git a/tag/design/README.md b/tag/design/README.md
index dde4b2aef..3f1e6c40e 100644
--- a/tag/design/README.md
+++ b/tag/design/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1244 | [力扣排行榜](https://github.com/openset/leetcode/tree/master/problems/design-a-leaderboard) 🔒 | [[排序](https://github.com/openset/leetcode/tree/master/tag/sort/README.md)] [[设计](https://github.com/openset/leetcode/tree/master/tag/design/README.md)] [[哈希表](https://github.com/openset/leetcode/tree/master/tag/hash-table/README.md)] | Medium |
| 1206 | [设计跳表](https://github.com/openset/leetcode/tree/master/problems/design-skiplist) | [[设计](https://github.com/openset/leetcode/tree/master/tag/design/README.md)] | Hard |
| 1172 | [餐盘栈](https://github.com/openset/leetcode/tree/master/problems/dinner-plate-stacks) | [[设计](https://github.com/openset/leetcode/tree/master/tag/design/README.md)] | Hard |
| 1166 | [设计文件系统](https://github.com/openset/leetcode/tree/master/problems/design-file-system) 🔒 | [[设计](https://github.com/openset/leetcode/tree/master/tag/design/README.md)] [[哈希表](https://github.com/openset/leetcode/tree/master/tag/hash-table/README.md)] | Medium |
diff --git a/tag/dynamic-programming/README.md b/tag/dynamic-programming/README.md
index d72af00af..70e69f428 100644
--- a/tag/dynamic-programming/README.md
+++ b/tag/dynamic-programming/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1246 | [删除回文子数组](https://github.com/openset/leetcode/tree/master/problems/palindrome-removal) 🔒 | [[动态规划](https://github.com/openset/leetcode/tree/master/tag/dynamic-programming/README.md)] | Hard |
| 1240 | [铺瓷砖](https://github.com/openset/leetcode/tree/master/problems/tiling-a-rectangle-with-the-fewest-squares) | [[动态规划](https://github.com/openset/leetcode/tree/master/tag/dynamic-programming/README.md)] [[回溯算法](https://github.com/openset/leetcode/tree/master/tag/backtracking/README.md)] | Hard |
| 1235 | [规划兼职工作](https://github.com/openset/leetcode/tree/master/problems/maximum-profit-in-job-scheduling) | [[排序](https://github.com/openset/leetcode/tree/master/tag/sort/README.md)] [[二分查找](https://github.com/openset/leetcode/tree/master/tag/binary-search/README.md)] [[动态规划](https://github.com/openset/leetcode/tree/master/tag/dynamic-programming/README.md)] | Hard |
| 1230 | [抛掷硬币](https://github.com/openset/leetcode/tree/master/problems/toss-strange-coins) 🔒 | [[数学](https://github.com/openset/leetcode/tree/master/tag/math/README.md)] [[动态规划](https://github.com/openset/leetcode/tree/master/tag/dynamic-programming/README.md)] | Medium |
diff --git a/tag/greedy/README.md b/tag/greedy/README.md
index fe6069743..abc994f8c 100644
--- a/tag/greedy/README.md
+++ b/tag/greedy/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1247 | [交换字符使得字符串相同](https://github.com/openset/leetcode/tree/master/problems/minimum-swaps-to-make-strings-equal) | [[贪心算法](https://github.com/openset/leetcode/tree/master/tag/greedy/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Easy |
| 1231 | [分享巧克力](https://github.com/openset/leetcode/tree/master/problems/divide-chocolate) 🔒 | [[贪心算法](https://github.com/openset/leetcode/tree/master/tag/greedy/README.md)] [[二分查找](https://github.com/openset/leetcode/tree/master/tag/binary-search/README.md)] | Hard |
| 1221 | [分割平衡字符串](https://github.com/openset/leetcode/tree/master/problems/split-a-string-in-balanced-strings) | [[贪心算法](https://github.com/openset/leetcode/tree/master/tag/greedy/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Easy |
| 1217 | [玩筹码](https://github.com/openset/leetcode/tree/master/problems/play-with-chips) | [[贪心算法](https://github.com/openset/leetcode/tree/master/tag/greedy/README.md)] [[数组](https://github.com/openset/leetcode/tree/master/tag/array/README.md)] [[数学](https://github.com/openset/leetcode/tree/master/tag/math/README.md)] | Easy |
diff --git a/tag/hash-table/README.md b/tag/hash-table/README.md
index d35e05865..33201a197 100644
--- a/tag/hash-table/README.md
+++ b/tag/hash-table/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1244 | [力扣排行榜](https://github.com/openset/leetcode/tree/master/problems/design-a-leaderboard) 🔒 | [[排序](https://github.com/openset/leetcode/tree/master/tag/sort/README.md)] [[设计](https://github.com/openset/leetcode/tree/master/tag/design/README.md)] [[哈希表](https://github.com/openset/leetcode/tree/master/tag/hash-table/README.md)] | Medium |
| 1224 | [最大相等频率](https://github.com/openset/leetcode/tree/master/problems/maximum-equal-frequency) | [[哈希表](https://github.com/openset/leetcode/tree/master/tag/hash-table/README.md)] | Hard |
| 1213 | [三个有序数组的交集](https://github.com/openset/leetcode/tree/master/problems/intersection-of-three-sorted-arrays) 🔒 | [[哈希表](https://github.com/openset/leetcode/tree/master/tag/hash-table/README.md)] [[双指针](https://github.com/openset/leetcode/tree/master/tag/two-pointers/README.md)] | Easy |
| 1207 | [独一无二的出现次数](https://github.com/openset/leetcode/tree/master/problems/unique-number-of-occurrences) | [[哈希表](https://github.com/openset/leetcode/tree/master/tag/hash-table/README.md)] | Easy |
diff --git a/tag/math/README.md b/tag/math/README.md
index a16e31ff0..6c8cc012c 100644
--- a/tag/math/README.md
+++ b/tag/math/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1250 | [检查「好数组」](https://github.com/openset/leetcode/tree/master/problems/check-if-it-is-a-good-array) | [[数学](https://github.com/openset/leetcode/tree/master/tag/math/README.md)] | Hard |
| 1238 | [循环码排列](https://github.com/openset/leetcode/tree/master/problems/circular-permutation-in-binary-representation) | [[数学](https://github.com/openset/leetcode/tree/master/tag/math/README.md)] | Medium |
| 1237 | [找出给定方程的正整数解](https://github.com/openset/leetcode/tree/master/problems/find-positive-integer-solution-for-a-given-equation) | [[数学](https://github.com/openset/leetcode/tree/master/tag/math/README.md)] [[二分查找](https://github.com/openset/leetcode/tree/master/tag/binary-search/README.md)] | Easy |
| 1232 | [缀点成线](https://github.com/openset/leetcode/tree/master/problems/check-if-it-is-a-straight-line) | [[几何](https://github.com/openset/leetcode/tree/master/tag/geometry/README.md)] [[数组](https://github.com/openset/leetcode/tree/master/tag/array/README.md)] [[数学](https://github.com/openset/leetcode/tree/master/tag/math/README.md)] | Easy |
diff --git a/tag/sort/README.md b/tag/sort/README.md
index 805537ab9..25022b6c9 100644
--- a/tag/sort/README.md
+++ b/tag/sort/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1244 | [力扣排行榜](https://github.com/openset/leetcode/tree/master/problems/design-a-leaderboard) 🔒 | [[排序](https://github.com/openset/leetcode/tree/master/tag/sort/README.md)] [[设计](https://github.com/openset/leetcode/tree/master/tag/design/README.md)] [[哈希表](https://github.com/openset/leetcode/tree/master/tag/hash-table/README.md)] | Medium |
| 1235 | [规划兼职工作](https://github.com/openset/leetcode/tree/master/problems/maximum-profit-in-job-scheduling) | [[排序](https://github.com/openset/leetcode/tree/master/tag/sort/README.md)] [[二分查找](https://github.com/openset/leetcode/tree/master/tag/binary-search/README.md)] [[动态规划](https://github.com/openset/leetcode/tree/master/tag/dynamic-programming/README.md)] | Hard |
| 1183 | [矩阵中 1 的最大数量](https://github.com/openset/leetcode/tree/master/problems/maximum-number-of-ones) 🔒 | [[排序](https://github.com/openset/leetcode/tree/master/tag/sort/README.md)] [[数学](https://github.com/openset/leetcode/tree/master/tag/math/README.md)] | Hard |
| 1152 | [用户网站访问行为分析](https://github.com/openset/leetcode/tree/master/problems/analyze-user-website-visit-pattern) 🔒 | [[排序](https://github.com/openset/leetcode/tree/master/tag/sort/README.md)] [[数组](https://github.com/openset/leetcode/tree/master/tag/array/README.md)] [[哈希表](https://github.com/openset/leetcode/tree/master/tag/hash-table/README.md)] | Medium |
diff --git a/tag/stack/README.md b/tag/stack/README.md
index 2cdbf8e34..d280a120e 100644
--- a/tag/stack/README.md
+++ b/tag/stack/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1249 | [移除无效的括号](https://github.com/openset/leetcode/tree/master/problems/minimum-remove-to-make-valid-parentheses) | [[栈](https://github.com/openset/leetcode/tree/master/tag/stack/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Medium |
| 1209 | [删除字符串中的所有相邻重复项 II](https://github.com/openset/leetcode/tree/master/problems/remove-all-adjacent-duplicates-in-string-ii) | [[栈](https://github.com/openset/leetcode/tree/master/tag/stack/README.md)] | Medium |
| 1190 | [反转每对括号间的子串](https://github.com/openset/leetcode/tree/master/problems/reverse-substrings-between-each-pair-of-parentheses) | [[栈](https://github.com/openset/leetcode/tree/master/tag/stack/README.md)] | Medium |
| 1130 | [叶值的最小代价生成树](https://github.com/openset/leetcode/tree/master/problems/minimum-cost-tree-from-leaf-values) | [[栈](https://github.com/openset/leetcode/tree/master/tag/stack/README.md)] [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[动态规划](https://github.com/openset/leetcode/tree/master/tag/dynamic-programming/README.md)] | Medium |
diff --git a/tag/string/README.md b/tag/string/README.md
index f9a1d2fa8..abce48204 100644
--- a/tag/string/README.md
+++ b/tag/string/README.md
@@ -9,6 +9,8 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1249 | [移除无效的括号](https://github.com/openset/leetcode/tree/master/problems/minimum-remove-to-make-valid-parentheses) | [[栈](https://github.com/openset/leetcode/tree/master/tag/stack/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Medium |
+| 1247 | [交换字符使得字符串相同](https://github.com/openset/leetcode/tree/master/problems/minimum-swaps-to-make-strings-equal) | [[贪心算法](https://github.com/openset/leetcode/tree/master/tag/greedy/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Easy |
| 1234 | [替换子串得到平衡字符串](https://github.com/openset/leetcode/tree/master/problems/replace-the-substring-for-balanced-string) | [[双指针](https://github.com/openset/leetcode/tree/master/tag/two-pointers/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Medium |
| 1233 | [删除子文件夹](https://github.com/openset/leetcode/tree/master/problems/remove-sub-folders-from-the-filesystem) | [[数组](https://github.com/openset/leetcode/tree/master/tag/array/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Medium |
| 1221 | [分割平衡字符串](https://github.com/openset/leetcode/tree/master/problems/split-a-string-in-balanced-strings) | [[贪心算法](https://github.com/openset/leetcode/tree/master/tag/greedy/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Easy |
diff --git a/tag/tree/README.md b/tag/tree/README.md
index 41094de26..6f005c36d 100644
--- a/tag/tree/README.md
+++ b/tag/tree/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1245 | [树的直径](https://github.com/openset/leetcode/tree/master/problems/tree-diameter) 🔒 | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
| 1145 | [二叉树着色游戏](https://github.com/openset/leetcode/tree/master/problems/binary-tree-coloring-game) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] | Medium |
| 1130 | [叶值的最小代价生成树](https://github.com/openset/leetcode/tree/master/problems/minimum-cost-tree-from-leaf-values) | [[栈](https://github.com/openset/leetcode/tree/master/tag/stack/README.md)] [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[动态规划](https://github.com/openset/leetcode/tree/master/tag/dynamic-programming/README.md)] | Medium |
| 1123 | [最深叶节点的最近公共祖先](https://github.com/openset/leetcode/tree/master/problems/lowest-common-ancestor-of-deepest-leaves) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[深度优先搜索](https://github.com/openset/leetcode/tree/master/tag/depth-first-search/README.md)] | Medium |
@@ -81,7 +82,7 @@
| 449 | [序列化和反序列化二叉搜索树](https://github.com/openset/leetcode/tree/master/problems/serialize-and-deserialize-bst) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] | Medium |
| 437 | [路径总和 III](https://github.com/openset/leetcode/tree/master/problems/path-sum-iii) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] | Easy |
| 431 | [将 N 叉树编码为二叉树](https://github.com/openset/leetcode/tree/master/problems/encode-n-ary-tree-to-binary-tree) 🔒 | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] | Hard |
-| 429 | [N叉树的层序遍历](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Easy |
+| 429 | [N叉树的层序遍历](https://github.com/openset/leetcode/tree/master/problems/n-ary-tree-level-order-traversal) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[广度优先搜索](https://github.com/openset/leetcode/tree/master/tag/breadth-first-search/README.md)] | Medium |
| 428 | [序列化和反序列化 N 叉树](https://github.com/openset/leetcode/tree/master/problems/serialize-and-deserialize-n-ary-tree) 🔒 | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] | Hard |
| 426 | [将二叉搜索树转化为排序的双向链表](https://github.com/openset/leetcode/tree/master/problems/convert-binary-search-tree-to-sorted-doubly-linked-list) 🔒 | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] [[链表](https://github.com/openset/leetcode/tree/master/tag/linked-list/README.md)] [[分治算法](https://github.com/openset/leetcode/tree/master/tag/divide-and-conquer/README.md)] | Medium |
| 404 | [左叶子之和](https://github.com/openset/leetcode/tree/master/problems/sum-of-left-leaves) | [[树](https://github.com/openset/leetcode/tree/master/tag/tree/README.md)] | Easy |
diff --git a/tag/two-pointers/README.md b/tag/two-pointers/README.md
index d85a6ccd7..2bc681822 100644
--- a/tag/two-pointers/README.md
+++ b/tag/two-pointers/README.md
@@ -9,6 +9,7 @@
| # | 题名 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1248 | [统计「优美子数组」](https://github.com/openset/leetcode/tree/master/problems/count-number-of-nice-subarrays) | [[双指针](https://github.com/openset/leetcode/tree/master/tag/two-pointers/README.md)] | Medium |
| 1234 | [替换子串得到平衡字符串](https://github.com/openset/leetcode/tree/master/problems/replace-the-substring-for-balanced-string) | [[双指针](https://github.com/openset/leetcode/tree/master/tag/two-pointers/README.md)] [[字符串](https://github.com/openset/leetcode/tree/master/tag/string/README.md)] | Medium |
| 1213 | [三个有序数组的交集](https://github.com/openset/leetcode/tree/master/problems/intersection-of-three-sorted-arrays) 🔒 | [[哈希表](https://github.com/openset/leetcode/tree/master/tag/hash-table/README.md)] [[双指针](https://github.com/openset/leetcode/tree/master/tag/two-pointers/README.md)] | Easy |
| 1093 | [大样本统计](https://github.com/openset/leetcode/tree/master/problems/statistics-from-a-large-sample) | [[数学](https://github.com/openset/leetcode/tree/master/tag/math/README.md)] [[双指针](https://github.com/openset/leetcode/tree/master/tag/two-pointers/README.md)] | Medium |