From ee7ddb904280bb224dee2531d857e060caefe34a Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Sun, 19 May 2024 16:31:45 +0800 Subject: [PATCH 01/31] feat: add solutions to lc problems: No.3151~3153 (#2838) * No.3151.Special Array I * No.3152.Special Array II * No.3153.Sum of Digit Differences of All Pairs --- .../3100-3199/3151.Special Array I/README.md | 53 ++++++++- .../3151.Special Array I/README_EN.md | 53 ++++++++- .../3151.Special Array I/Solution.cpp | 11 ++ .../3151.Special Array I/Solution.go | 8 ++ .../3151.Special Array I/Solution.java | 10 ++ .../3151.Special Array I/Solution.py | 3 + .../3151.Special Array I/Solution.ts | 8 ++ .../3100-3199/3152.Special Array II/README.md | 86 ++++++++++++++- .../3152.Special Array II/README_EN.md | 86 ++++++++++++++- .../3152.Special Array II/Solution.cpp | 18 +++ .../3152.Special Array II/Solution.go | 16 +++ .../3152.Special Array II/Solution.java | 19 ++++ .../3152.Special Array II/Solution.py | 8 ++ .../3152.Special Array II/Solution.ts | 10 ++ .../README.md | 103 +++++++++++++++++- .../README_EN.md | 103 +++++++++++++++++- .../Solution.cpp | 20 ++++ .../Solution.go | 16 +++ .../Solution.java | 19 ++++ .../Solution.py | 12 ++ .../Solution.ts | 17 +++ 21 files changed, 655 insertions(+), 24 deletions(-) create mode 100644 solution/3100-3199/3151.Special Array I/Solution.cpp create mode 100644 solution/3100-3199/3151.Special Array I/Solution.go create mode 100644 solution/3100-3199/3151.Special Array I/Solution.java create mode 100644 solution/3100-3199/3151.Special Array I/Solution.py create mode 100644 solution/3100-3199/3151.Special Array I/Solution.ts create mode 100644 solution/3100-3199/3152.Special Array II/Solution.cpp create mode 100644 solution/3100-3199/3152.Special Array II/Solution.go create mode 100644 solution/3100-3199/3152.Special Array II/Solution.java create mode 100644 solution/3100-3199/3152.Special Array II/Solution.py create mode 100644 solution/3100-3199/3152.Special Array II/Solution.ts create mode 100644 solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.cpp create mode 100644 solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.go create mode 100644 solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.java create mode 100644 solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.py create mode 100644 solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.ts diff --git a/solution/3100-3199/3151.Special Array I/README.md b/solution/3100-3199/3151.Special Array I/README.md index 72b84c3d34e8c..a9753ce3d623c 100644 --- a/solution/3100-3199/3151.Special Array I/README.md +++ b/solution/3100-3199/3151.Special Array I/README.md @@ -71,32 +71,77 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3151.Sp -### 方法一 +### 方法一:一次遍历 + +我们从左到右遍历数组,对于每一对相邻元素,如果它们的奇偶性相同,那么数组就不是特殊数组,返回 `false`;否则,数组是特殊数组,返回 `true`。 + +时间复杂度 $O(n)$,其中 $n$ 是数组的长度。空间复杂度 $O(1)$。 #### Python3 ```python - +class Solution: + def isArraySpecial(self, nums: List[int]) -> bool: + return all(a % 2 != b % 2 for a, b in pairwise(nums)) ``` #### Java ```java - +class Solution { + public boolean isArraySpecial(int[] nums) { + for (int i = 1; i < nums.length; ++i) { + if (nums[i] % 2 == nums[i - 1] % 2) { + return false; + } + } + return true; + } +} ``` #### C++ ```cpp - +class Solution { +public: + bool isArraySpecial(vector& nums) { + for (int i = 1; i < nums.size(); ++i) { + if (nums[i] % 2 == nums[i - 1] % 2) { + return false; + } + } + return true; + } +}; ``` #### Go ```go +func isArraySpecial(nums []int) bool { + for i, x := range nums[1:] { + if x%2 == nums[i]%2 { + return false + } + } + return true +} +``` +#### TypeScript + +```ts +function isArraySpecial(nums: number[]): boolean { + for (let i = 1; i < nums.length; ++i) { + if (nums[i] % 2 === nums[i - 1] % 2) { + return false; + } + } + return true; +} ``` diff --git a/solution/3100-3199/3151.Special Array I/README_EN.md b/solution/3100-3199/3151.Special Array I/README_EN.md index 4c873dadff325..5ec489891826e 100644 --- a/solution/3100-3199/3151.Special Array I/README_EN.md +++ b/solution/3100-3199/3151.Special Array I/README_EN.md @@ -69,32 +69,77 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3151.Sp -### Solution 1 +### Solution 1: Single Pass + +We traverse the array from left to right. For each pair of adjacent elements, if their parity is the same, then the array is not a special array, return `false`; otherwise, the array is a special array, return `true`. + +The time complexity is $O(n)$, where $n$ is the length of the array. The space complexity is $O(1)`. #### Python3 ```python - +class Solution: + def isArraySpecial(self, nums: List[int]) -> bool: + return all(a % 2 != b % 2 for a, b in pairwise(nums)) ``` #### Java ```java - +class Solution { + public boolean isArraySpecial(int[] nums) { + for (int i = 1; i < nums.length; ++i) { + if (nums[i] % 2 == nums[i - 1] % 2) { + return false; + } + } + return true; + } +} ``` #### C++ ```cpp - +class Solution { +public: + bool isArraySpecial(vector& nums) { + for (int i = 1; i < nums.size(); ++i) { + if (nums[i] % 2 == nums[i - 1] % 2) { + return false; + } + } + return true; + } +}; ``` #### Go ```go +func isArraySpecial(nums []int) bool { + for i, x := range nums[1:] { + if x%2 == nums[i]%2 { + return false + } + } + return true +} +``` +#### TypeScript + +```ts +function isArraySpecial(nums: number[]): boolean { + for (let i = 1; i < nums.length; ++i) { + if (nums[i] % 2 === nums[i - 1] % 2) { + return false; + } + } + return true; +} ``` diff --git a/solution/3100-3199/3151.Special Array I/Solution.cpp b/solution/3100-3199/3151.Special Array I/Solution.cpp new file mode 100644 index 0000000000000..7f04526dac8ae --- /dev/null +++ b/solution/3100-3199/3151.Special Array I/Solution.cpp @@ -0,0 +1,11 @@ +class Solution { +public: + bool isArraySpecial(vector& nums) { + for (int i = 1; i < nums.size(); ++i) { + if (nums[i] % 2 == nums[i - 1] % 2) { + return false; + } + } + return true; + } +}; \ No newline at end of file diff --git a/solution/3100-3199/3151.Special Array I/Solution.go b/solution/3100-3199/3151.Special Array I/Solution.go new file mode 100644 index 0000000000000..f4ff6300f1688 --- /dev/null +++ b/solution/3100-3199/3151.Special Array I/Solution.go @@ -0,0 +1,8 @@ +func isArraySpecial(nums []int) bool { + for i, x := range nums[1:] { + if x%2 == nums[i]%2 { + return false + } + } + return true +} \ No newline at end of file diff --git a/solution/3100-3199/3151.Special Array I/Solution.java b/solution/3100-3199/3151.Special Array I/Solution.java new file mode 100644 index 0000000000000..13d032b9a002a --- /dev/null +++ b/solution/3100-3199/3151.Special Array I/Solution.java @@ -0,0 +1,10 @@ +class Solution { + public boolean isArraySpecial(int[] nums) { + for (int i = 1; i < nums.length; ++i) { + if (nums[i] % 2 == nums[i - 1] % 2) { + return false; + } + } + return true; + } +} \ No newline at end of file diff --git a/solution/3100-3199/3151.Special Array I/Solution.py b/solution/3100-3199/3151.Special Array I/Solution.py new file mode 100644 index 0000000000000..511bdc5bcfbe3 --- /dev/null +++ b/solution/3100-3199/3151.Special Array I/Solution.py @@ -0,0 +1,3 @@ +class Solution: + def isArraySpecial(self, nums: List[int]) -> bool: + return all(a % 2 != b % 2 for a, b in pairwise(nums)) diff --git a/solution/3100-3199/3151.Special Array I/Solution.ts b/solution/3100-3199/3151.Special Array I/Solution.ts new file mode 100644 index 0000000000000..4725e488df767 --- /dev/null +++ b/solution/3100-3199/3151.Special Array I/Solution.ts @@ -0,0 +1,8 @@ +function isArraySpecial(nums: number[]): boolean { + for (let i = 1; i < nums.length; ++i) { + if (nums[i] % 2 === nums[i - 1] % 2) { + return false; + } + } + return true; +} diff --git a/solution/3100-3199/3152.Special Array II/README.md b/solution/3100-3199/3152.Special Array II/README.md index 59bcee0b3c74d..bb1eae10ea121 100644 --- a/solution/3100-3199/3152.Special Array II/README.md +++ b/solution/3100-3199/3152.Special Array II/README.md @@ -67,32 +67,110 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3152.Sp -### 方法一 +### 方法一:记录每个位置的最左特殊数组位置 + +我们可以定义一个数组 $d$ 来记录每个位置的最左特殊数组位置,初始时 $d[i] = i$。然后我们从左到右遍历数组 $nums$,如果 $nums[i]$ 和 $nums[i - 1]$ 的奇偶性不同,那么 $d[i] = d[i - 1]$。 + +最后我们遍历每个查询,判断 $d[to] <= from$ 是否成立即可。 + +时间复杂度 $O(n)$,空间复杂度 $O(n)$。其中 $n$ 是数组的长度。 #### Python3 ```python - +class Solution: + def isArraySpecial(self, nums: List[int], queries: List[List[int]]) -> List[bool]: + n = len(nums) + d = list(range(n)) + for i in range(1, n): + if nums[i] % 2 != nums[i - 1] % 2: + d[i] = d[i - 1] + return [d[t] <= f for f, t in queries] ``` #### Java ```java - +class Solution { + public boolean[] isArraySpecial(int[] nums, int[][] queries) { + int n = nums.length; + int[] d = new int[n]; + for (int i = 1; i < n; ++i) { + if (nums[i] % 2 != nums[i - 1] % 2) { + d[i] = d[i - 1]; + } else { + d[i] = i; + } + } + int m = queries.length; + boolean[] ans = new boolean[m]; + for (int i = 0; i < m; ++i) { + ans[i] = d[queries[i][1]] <= queries[i][0]; + } + return ans; + } +} ``` #### C++ ```cpp - +class Solution { +public: + vector isArraySpecial(vector& nums, vector>& queries) { + int n = nums.size(); + vector d(n); + iota(d.begin(), d.end(), 0); + for (int i = 1; i < n; ++i) { + if (nums[i] % 2 != nums[i - 1] % 2) { + d[i] = d[i - 1]; + } + } + vector ans; + for (auto& q : queries) { + ans.push_back(d[q[1]] <= q[0]); + } + return ans; + } +}; ``` #### Go ```go +func isArraySpecial(nums []int, queries [][]int) (ans []bool) { + n := len(nums) + d := make([]int, n) + for i := range d { + d[i] = i + } + for i := 1; i < len(nums); i++ { + if nums[i]%2 != nums[i-1]%2 { + d[i] = d[i-1] + } + } + for _, q := range queries { + ans = append(ans, d[q[1]] <= q[0]) + } + return +} +``` +#### TypeScript + +```ts +function isArraySpecial(nums: number[], queries: number[][]): boolean[] { + const n = nums.length; + const d: number[] = Array.from({ length: n }, (_, i) => i); + for (let i = 1; i < n; ++i) { + if (nums[i] % 2 !== nums[i - 1] % 2) { + d[i] = d[i - 1]; + } + } + return queries.map(([from, to]) => d[to] <= from); +} ``` diff --git a/solution/3100-3199/3152.Special Array II/README_EN.md b/solution/3100-3199/3152.Special Array II/README_EN.md index d9f984d978ab4..96f22fb8c1ff6 100644 --- a/solution/3100-3199/3152.Special Array II/README_EN.md +++ b/solution/3100-3199/3152.Special Array II/README_EN.md @@ -61,7 +61,13 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3152.Sp -## Solutions +### Solution 1: Record the Leftmost Special Array Position for Each Position + +We can define an array $d$ to record the leftmost special array position for each position, initially $d[i] = i$. Then we traverse the array $nums$ from left to right. If $nums[i]$ and $nums[i - 1]$ have different parities, then $d[i] = d[i - 1]$. + +Finally, we traverse each query and check whether $d[to] <= from$ holds. + +The time complexity is $O(n)$ and the space complexity is $O(n)$, where $n$ is the length of the array. @@ -72,25 +78,97 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3152.Sp #### Python3 ```python - +class Solution: + def isArraySpecial(self, nums: List[int], queries: List[List[int]]) -> List[bool]: + n = len(nums) + d = list(range(n)) + for i in range(1, n): + if nums[i] % 2 != nums[i - 1] % 2: + d[i] = d[i - 1] + return [d[t] <= f for f, t in queries] ``` #### Java ```java - +class Solution { + public boolean[] isArraySpecial(int[] nums, int[][] queries) { + int n = nums.length; + int[] d = new int[n]; + for (int i = 1; i < n; ++i) { + if (nums[i] % 2 != nums[i - 1] % 2) { + d[i] = d[i - 1]; + } else { + d[i] = i; + } + } + int m = queries.length; + boolean[] ans = new boolean[m]; + for (int i = 0; i < m; ++i) { + ans[i] = d[queries[i][1]] <= queries[i][0]; + } + return ans; + } +} ``` #### C++ ```cpp - +class Solution { +public: + vector isArraySpecial(vector& nums, vector>& queries) { + int n = nums.size(); + vector d(n); + iota(d.begin(), d.end(), 0); + for (int i = 1; i < n; ++i) { + if (nums[i] % 2 != nums[i - 1] % 2) { + d[i] = d[i - 1]; + } + } + vector ans; + for (auto& q : queries) { + ans.push_back(d[q[1]] <= q[0]); + } + return ans; + } +}; ``` #### Go ```go +func isArraySpecial(nums []int, queries [][]int) (ans []bool) { + n := len(nums) + d := make([]int, n) + for i := range d { + d[i] = i + } + for i := 1; i < len(nums); i++ { + if nums[i]%2 != nums[i-1]%2 { + d[i] = d[i-1] + } + } + for _, q := range queries { + ans = append(ans, d[q[1]] <= q[0]) + } + return +} +``` +#### TypeScript + +```ts +function isArraySpecial(nums: number[], queries: number[][]): boolean[] { + const n = nums.length; + const d: number[] = Array.from({ length: n }, (_, i) => i); + for (let i = 1; i < n; ++i) { + if (nums[i] % 2 !== nums[i - 1] % 2) { + d[i] = d[i - 1]; + } + } + return queries.map(([from, to]) => d[to] <= from); +} ``` diff --git a/solution/3100-3199/3152.Special Array II/Solution.cpp b/solution/3100-3199/3152.Special Array II/Solution.cpp new file mode 100644 index 0000000000000..4633cd66469a0 --- /dev/null +++ b/solution/3100-3199/3152.Special Array II/Solution.cpp @@ -0,0 +1,18 @@ +class Solution { +public: + vector isArraySpecial(vector& nums, vector>& queries) { + int n = nums.size(); + vector d(n); + iota(d.begin(), d.end(), 0); + for (int i = 1; i < n; ++i) { + if (nums[i] % 2 != nums[i - 1] % 2) { + d[i] = d[i - 1]; + } + } + vector ans; + for (auto& q : queries) { + ans.push_back(d[q[1]] <= q[0]); + } + return ans; + } +}; \ No newline at end of file diff --git a/solution/3100-3199/3152.Special Array II/Solution.go b/solution/3100-3199/3152.Special Array II/Solution.go new file mode 100644 index 0000000000000..9414f602cc70d --- /dev/null +++ b/solution/3100-3199/3152.Special Array II/Solution.go @@ -0,0 +1,16 @@ +func isArraySpecial(nums []int, queries [][]int) (ans []bool) { + n := len(nums) + d := make([]int, n) + for i := range d { + d[i] = i + } + for i := 1; i < len(nums); i++ { + if nums[i]%2 != nums[i-1]%2 { + d[i] = d[i-1] + } + } + for _, q := range queries { + ans = append(ans, d[q[1]] <= q[0]) + } + return +} \ No newline at end of file diff --git a/solution/3100-3199/3152.Special Array II/Solution.java b/solution/3100-3199/3152.Special Array II/Solution.java new file mode 100644 index 0000000000000..b18166ae80ffd --- /dev/null +++ b/solution/3100-3199/3152.Special Array II/Solution.java @@ -0,0 +1,19 @@ +class Solution { + public boolean[] isArraySpecial(int[] nums, int[][] queries) { + int n = nums.length; + int[] d = new int[n]; + for (int i = 1; i < n; ++i) { + if (nums[i] % 2 != nums[i - 1] % 2) { + d[i] = d[i - 1]; + } else { + d[i] = i; + } + } + int m = queries.length; + boolean[] ans = new boolean[m]; + for (int i = 0; i < m; ++i) { + ans[i] = d[queries[i][1]] <= queries[i][0]; + } + return ans; + } +} \ No newline at end of file diff --git a/solution/3100-3199/3152.Special Array II/Solution.py b/solution/3100-3199/3152.Special Array II/Solution.py new file mode 100644 index 0000000000000..81d6b1cd29167 --- /dev/null +++ b/solution/3100-3199/3152.Special Array II/Solution.py @@ -0,0 +1,8 @@ +class Solution: + def isArraySpecial(self, nums: List[int], queries: List[List[int]]) -> List[bool]: + n = len(nums) + d = list(range(n)) + for i in range(1, n): + if nums[i] % 2 != nums[i - 1] % 2: + d[i] = d[i - 1] + return [d[t] <= f for f, t in queries] diff --git a/solution/3100-3199/3152.Special Array II/Solution.ts b/solution/3100-3199/3152.Special Array II/Solution.ts new file mode 100644 index 0000000000000..ac1f9be456ffd --- /dev/null +++ b/solution/3100-3199/3152.Special Array II/Solution.ts @@ -0,0 +1,10 @@ +function isArraySpecial(nums: number[], queries: number[][]): boolean[] { + const n = nums.length; + const d: number[] = Array.from({ length: n }, (_, i) => i); + for (let i = 1; i < n; ++i) { + if (nums[i] % 2 !== nums[i - 1] % 2) { + d[i] = d[i - 1]; + } + } + return queries.map(([from, to]) => d[to] <= from); +} diff --git a/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/README.md b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/README.md index 8b633d0211150..51060d8586028 100644 --- a/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/README.md +++ b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/README.md @@ -64,32 +64,127 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3153.Su -### 方法一 +### 方法一:计数 + +我们先获取数组中数字的位数 $m$,然后对于每一位,我们统计数组 $\textit{nums}$ 中每个数字在该位上的出现次数,记为 $\textit{cnt}$。那么在该位上,所有数对的数位不同之和为: + +$$ +\sum_{v \in \textit{cnt}} v \times (n - v) +$$ + +其中 $n$ 是数组的长度。我们将所有位的数位不同之和相加,再除以 $2$ 即可得到答案。 + +时间复杂度 $O(n \times m)$,空间复杂度 $O(C)$,其中 $n$ 和 $m$ 分别是数组的长度和数字的位数;而 $C$ 是常数,本题中 $C = 10$。 #### Python3 ```python - +class Solution: + def sumDigitDifferences(self, nums: List[int]) -> int: + n = len(nums) + m = int(log10(nums[0])) + 1 + ans = 0 + for _ in range(m): + cnt = Counter() + for i, x in enumerate(nums): + nums[i], y = divmod(x, 10) + cnt[y] += 1 + ans += sum(v * (n - v) for v in cnt.values()) // 2 + return ans ``` #### Java ```java - +class Solution { + public long sumDigitDifferences(int[] nums) { + int n = nums.length; + int m = (int) Math.floor(Math.log10(nums[0])) + 1; + int[] cnt = new int[10]; + long ans = 0; + for (int k = 0; k < m; ++k) { + Arrays.fill(cnt, 0); + for (int i = 0; i < n; ++i) { + ++cnt[nums[i] % 10]; + nums[i] /= 10; + } + for (int i = 0; i < 10; ++i) { + ans += 1L * cnt[i] * (n - cnt[i]); + } + } + return ans / 2; + } +} ``` #### C++ ```cpp - +class Solution { +public: + long long sumDigitDifferences(vector& nums) { + int n = nums.size(); + int m = floor(log10(nums[0])) + 1; + int cnt[10]; + long long ans = 0; + for (int k = 0; k < m; ++k) { + memset(cnt, 0, sizeof(cnt)); + for (int i = 0; i < n; ++i) { + ++cnt[nums[i] % 10]; + nums[i] /= 10; + } + for (int i = 0; i < 10; ++i) { + ans += 1LL * (cnt[i] * (n - cnt[i])); + } + } + return ans / 2; + } +}; ``` #### Go ```go +func sumDigitDifferences(nums []int) (ans int64) { + n := len(nums) + m := int(math.Floor(math.Log10(float64(nums[0])))) + 1 + for k := 0; k < m; k++ { + cnt := [10]int{} + for i, x := range nums { + cnt[x%10]++ + nums[i] /= 10 + } + for _, v := range cnt { + ans += int64(v) * int64(n-v) + } + } + ans /= 2 + return +} +``` +#### TypeScript + +```ts +function sumDigitDifferences(nums: number[]): number { + const n = nums.length; + const m = Math.floor(Math.log10(nums[0])) + 1; + let ans: bigint = BigInt(0); + for (let k = 0; k < m; ++k) { + const cnt: number[] = Array(10).fill(0); + for (let i = 0; i < n; ++i) { + ++cnt[nums[i] % 10]; + nums[i] = Math.floor(nums[i] / 10); + } + for (let i = 0; i < 10; ++i) { + ans += BigInt(cnt[i]) * BigInt(n - cnt[i]); + } + } + ans /= BigInt(2); + return Number(ans); +} ``` diff --git a/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/README_EN.md b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/README_EN.md index f058f2579e1c7..b003762b4014a 100644 --- a/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/README_EN.md +++ b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/README_EN.md @@ -62,32 +62,127 @@ All the integers in the array are the same. So the total sum of digit difference -### Solution 1 +### Solution 1: Counting + +First, we get the number of digits $m$ in the array. Then for each digit, we count the occurrence of each number at this digit in the array `nums`, denoted as `cnt`. Therefore, the sum of the digit differences of all number pairs at this digit is: + +$$ +\sum_{v \in \textit{cnt}} v \times (n - v) +$$ + +where $n$ is the length of the array. We add up the digit differences of all digits and divide by $2$ to get the answer. + +The time complexity is $O(n \times m)$, and the space complexity is $O(C)$, where $n$ and $m$ are the length of the array and the number of digits in the numbers, respectively; and $C$ is a constant, in this problem $C = 10$. #### Python3 ```python - +class Solution: + def sumDigitDifferences(self, nums: List[int]) -> int: + n = len(nums) + m = int(log10(nums[0])) + 1 + ans = 0 + for _ in range(m): + cnt = Counter() + for i, x in enumerate(nums): + nums[i], y = divmod(x, 10) + cnt[y] += 1 + ans += sum(v * (n - v) for v in cnt.values()) // 2 + return ans ``` #### Java ```java - +class Solution { + public long sumDigitDifferences(int[] nums) { + int n = nums.length; + int m = (int) Math.floor(Math.log10(nums[0])) + 1; + int[] cnt = new int[10]; + long ans = 0; + for (int k = 0; k < m; ++k) { + Arrays.fill(cnt, 0); + for (int i = 0; i < n; ++i) { + ++cnt[nums[i] % 10]; + nums[i] /= 10; + } + for (int i = 0; i < 10; ++i) { + ans += 1L * cnt[i] * (n - cnt[i]); + } + } + return ans / 2; + } +} ``` #### C++ ```cpp - +class Solution { +public: + long long sumDigitDifferences(vector& nums) { + int n = nums.size(); + int m = floor(log10(nums[0])) + 1; + int cnt[10]; + long long ans = 0; + for (int k = 0; k < m; ++k) { + memset(cnt, 0, sizeof(cnt)); + for (int i = 0; i < n; ++i) { + ++cnt[nums[i] % 10]; + nums[i] /= 10; + } + for (int i = 0; i < 10; ++i) { + ans += 1LL * (cnt[i] * (n - cnt[i])); + } + } + return ans / 2; + } +}; ``` #### Go ```go +func sumDigitDifferences(nums []int) (ans int64) { + n := len(nums) + m := int(math.Floor(math.Log10(float64(nums[0])))) + 1 + for k := 0; k < m; k++ { + cnt := [10]int{} + for i, x := range nums { + cnt[x%10]++ + nums[i] /= 10 + } + for _, v := range cnt { + ans += int64(v) * int64(n-v) + } + } + ans /= 2 + return +} +``` +#### TypeScript + +```ts +function sumDigitDifferences(nums: number[]): number { + const n = nums.length; + const m = Math.floor(Math.log10(nums[0])) + 1; + let ans: bigint = BigInt(0); + for (let k = 0; k < m; ++k) { + const cnt: number[] = Array(10).fill(0); + for (let i = 0; i < n; ++i) { + ++cnt[nums[i] % 10]; + nums[i] = Math.floor(nums[i] / 10); + } + for (let i = 0; i < 10; ++i) { + ans += BigInt(cnt[i]) * BigInt(n - cnt[i]); + } + } + ans /= BigInt(2); + return Number(ans); +} ``` diff --git a/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.cpp b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.cpp new file mode 100644 index 0000000000000..99bb7c4a65a61 --- /dev/null +++ b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + long long sumDigitDifferences(vector& nums) { + int n = nums.size(); + int m = floor(log10(nums[0])) + 1; + int cnt[10]; + long long ans = 0; + for (int k = 0; k < m; ++k) { + memset(cnt, 0, sizeof(cnt)); + for (int i = 0; i < n; ++i) { + ++cnt[nums[i] % 10]; + nums[i] /= 10; + } + for (int i = 0; i < 10; ++i) { + ans += 1LL * (cnt[i] * (n - cnt[i])); + } + } + return ans / 2; + } +}; \ No newline at end of file diff --git a/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.go b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.go new file mode 100644 index 0000000000000..b1ea9f6c2f40d --- /dev/null +++ b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.go @@ -0,0 +1,16 @@ +func sumDigitDifferences(nums []int) (ans int64) { + n := len(nums) + m := int(math.Floor(math.Log10(float64(nums[0])))) + 1 + for k := 0; k < m; k++ { + cnt := [10]int{} + for i, x := range nums { + cnt[x%10]++ + nums[i] /= 10 + } + for _, v := range cnt { + ans += int64(v) * int64(n-v) + } + } + ans /= 2 + return +} \ No newline at end of file diff --git a/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.java b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.java new file mode 100644 index 0000000000000..6e4e473147446 --- /dev/null +++ b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.java @@ -0,0 +1,19 @@ +class Solution { + public long sumDigitDifferences(int[] nums) { + int n = nums.length; + int m = (int) Math.floor(Math.log10(nums[0])) + 1; + int[] cnt = new int[10]; + long ans = 0; + for (int k = 0; k < m; ++k) { + Arrays.fill(cnt, 0); + for (int i = 0; i < n; ++i) { + ++cnt[nums[i] % 10]; + nums[i] /= 10; + } + for (int i = 0; i < 10; ++i) { + ans += 1L * cnt[i] * (n - cnt[i]); + } + } + return ans / 2; + } +} \ No newline at end of file diff --git a/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.py b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.py new file mode 100644 index 0000000000000..e1c23e20bbc34 --- /dev/null +++ b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.py @@ -0,0 +1,12 @@ +class Solution: + def sumDigitDifferences(self, nums: List[int]) -> int: + n = len(nums) + m = int(log10(nums[0])) + 1 + ans = 0 + for _ in range(m): + cnt = Counter() + for i, x in enumerate(nums): + nums[i], y = divmod(x, 10) + cnt[y] += 1 + ans += sum(v * (n - v) for v in cnt.values()) // 2 + return ans diff --git a/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.ts b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.ts new file mode 100644 index 0000000000000..20311cc7d50bb --- /dev/null +++ b/solution/3100-3199/3153.Sum of Digit Differences of All Pairs/Solution.ts @@ -0,0 +1,17 @@ +function sumDigitDifferences(nums: number[]): number { + const n = nums.length; + const m = Math.floor(Math.log10(nums[0])) + 1; + let ans: bigint = BigInt(0); + for (let k = 0; k < m; ++k) { + const cnt: number[] = Array(10).fill(0); + for (let i = 0; i < n; ++i) { + ++cnt[nums[i] % 10]; + nums[i] = Math.floor(nums[i] / 10); + } + for (let i = 0; i < 10; ++i) { + ans += BigInt(cnt[i]) * BigInt(n - cnt[i]); + } + } + ans /= BigInt(2); + return Number(ans); +} From 3f6a34fd7f44b298dfdb4b4f09bd6b856d64748d Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Sun, 19 May 2024 17:13:01 +0800 Subject: [PATCH 02/31] feat: add solutions to lc problem: No.3154 (#2842) No.3154.Find Number of Ways to Reach the K-th Stair --- .../README.md | 142 +++++++++++++++++- .../README_EN.md | 142 +++++++++++++++++- .../Solution.cpp | 28 ++++ .../Solution.go | 24 +++ .../Solution.java | 26 ++++ .../Solution.py | 13 ++ .../Solution.ts | 29 ++++ 7 files changed, 396 insertions(+), 8 deletions(-) create mode 100644 solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.cpp create mode 100644 solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.go create mode 100644 solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.java create mode 100644 solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.py create mode 100644 solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.ts diff --git a/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/README.md b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/README.md index 822e7c9fcfa41..53472c7d665c0 100644 --- a/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/README.md +++ b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/README.md @@ -107,32 +107,166 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3154.Fi -### 方法一 +### 方法一:记忆化搜索 + +我们设计一个函数 $\text{dfs}(i, j, \text{jump})$,表示当前位于第 $i$ 级台阶,且进行了 $j$ 次操作 $1$ 和 $\text{jump}$ 次操作 $2$,到达第 $k$ 级台阶的方案数。那么答案就是 $\text{dfs}(1, 0, 0)$。 + +函数 $\text{dfs}(i, j, \text{jump})$ 的计算过程如下: + +- 如果 $i > k + 1$,由于无法连续两次向下走,所以无法再到达第 $k$ 级台阶,返回 $0$; +- 如果 $i = k$,表示已经到达第 $k$ 级台阶,答案初始化为 $1$,然后继续计算; +- 如果 $i > 0$ 且 $j = 0$,表示可以向下走,递归计算 $\text{dfs}(i - 1, 1, \text{jump})$; +- 递归计算 $\text{dfs}(i + 2^{\text{jump}}, 0, \text{jump} + 1)$,累加到答案中。 + +为了避免重复计算,我们使用记忆化搜索,将已经计算过的状态保存起来。 + +时间复杂度 $(\log ^2 k)$,空间复杂度 $(\log ^2 k)$。 #### Python3 ```python - +class Solution: + def waysToReachStair(self, k: int) -> int: + @cache + def dfs(i: int, j: int, jump: int) -> int: + if i > k + 1: + return 0 + ans = int(i == k) + if i > 0 and j == 0: + ans += dfs(i - 1, 1, jump) + ans += dfs(i + (1 << jump), 0, jump + 1) + return ans + + return dfs(1, 0, 0) ``` #### Java ```java - +class Solution { + private Map f = new HashMap<>(); + private int k; + + public int waysToReachStair(int k) { + this.k = k; + return dfs(1, 0, 0); + } + + private int dfs(int i, int j, int jump) { + if (i > k + 1) { + return 0; + } + long key = ((long) i << 32) | jump << 1 | j; + if (f.containsKey(key)) { + return f.get(key); + } + int ans = i == k ? 1 : 0; + if (i > 0 && j == 0) { + ans += dfs(i - 1, 1, jump); + } + ans += dfs(i + (1 << jump), 0, jump + 1); + f.put(key, ans); + return ans; + } +} ``` #### C++ ```cpp - +class Solution { +public: + int waysToReachStair(int k) { + this->k = k; + return dfs(1, 0, 0); + } + +private: + unordered_map f; + int k; + + int dfs(int i, int j, int jump) { + if (i > k + 1) { + return 0; + } + long long key = ((long long) i << 32) | jump << 1 | j; + if (f.contains(key)) { + return f[key]; + } + int ans = i == k ? 1 : 0; + if (i > 0 && j == 0) { + ans += dfs(i - 1, 1, jump); + } + ans += dfs(i + (1 << jump), 0, jump + 1); + f[key] = ans; + return ans; + } +}; ``` #### Go ```go +func waysToReachStair(k int) int { + f := map[int]int{} + var dfs func(i, j, jump int) int + dfs = func(i, j, jump int) int { + if i > k+1 { + return 0 + } + key := (i << 32) | jump<<1 | j + if v, has := f[key]; has { + return v + } + ans := 0 + if i == k { + ans++ + } + if i > 0 && j == 0 { + ans += dfs(i-1, 1, jump) + } + ans += dfs(i+(1< = new Map(); + + const dfs = (i: number, j: number, jump: number): number => { + if (i > k + 1) { + return 0; + } + + const key: bigint = (BigInt(i) << BigInt(32)) | BigInt(jump << 1) | BigInt(j); + if (f.has(key)) { + return f.get(key)!; + } + + let ans: number = 0; + if (i === k) { + ans++; + } + + if (i > 0 && j === 0) { + ans += dfs(i - 1, 1, jump); + } + + ans += dfs(i + (1 << jump), 0, jump + 1); + f.set(key, ans); + return ans; + }; + return dfs(1, 0, 0); +} ``` diff --git a/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/README_EN.md b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/README_EN.md index bf37c952a8b6e..de0402782f111 100644 --- a/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/README_EN.md +++ b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/README_EN.md @@ -105,32 +105,166 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3154.Fi -### Solution 1 +### Solution 1: Memoization Search + +We design a function `dfs(i, j, jump)`, which represents the number of ways to reach the $k$th step when currently at the $i$th step, having performed $j$ operation 1's and `jump` operation 2's. The answer is `dfs(1, 0, 0)`. + +The calculation process of the function `dfs(i, j, jump)` is as follows: + +- If $i > k + 1$, since we cannot go down twice in a row, we cannot reach the $k$th step again, so return $0$; +- If $i = k$, it means that we have reached the $k$th step. The answer is initialized to $1$, and then continue to calculate; +- If $i > 0$ and $j = 0$, it means that we can go down, recursively calculate `dfs(i - 1, 1, jump)`; +- Recursively calculate `dfs(i + 2^{jump}, 0, jump + 1)`, and add it to the answer. + +To avoid repeated calculations, we use memoization search to save the calculated states. + +The time complexity is $O(\log^2 k)$, and the space complexity is $O(\log^2 k)$. #### Python3 ```python - +class Solution: + def waysToReachStair(self, k: int) -> int: + @cache + def dfs(i: int, j: int, jump: int) -> int: + if i > k + 1: + return 0 + ans = int(i == k) + if i > 0 and j == 0: + ans += dfs(i - 1, 1, jump) + ans += dfs(i + (1 << jump), 0, jump + 1) + return ans + + return dfs(1, 0, 0) ``` #### Java ```java - +class Solution { + private Map f = new HashMap<>(); + private int k; + + public int waysToReachStair(int k) { + this.k = k; + return dfs(1, 0, 0); + } + + private int dfs(int i, int j, int jump) { + if (i > k + 1) { + return 0; + } + long key = ((long) i << 32) | jump << 1 | j; + if (f.containsKey(key)) { + return f.get(key); + } + int ans = i == k ? 1 : 0; + if (i > 0 && j == 0) { + ans += dfs(i - 1, 1, jump); + } + ans += dfs(i + (1 << jump), 0, jump + 1); + f.put(key, ans); + return ans; + } +} ``` #### C++ ```cpp - +class Solution { +public: + int waysToReachStair(int k) { + this->k = k; + return dfs(1, 0, 0); + } + +private: + unordered_map f; + int k; + + int dfs(int i, int j, int jump) { + if (i > k + 1) { + return 0; + } + long long key = ((long long) i << 32) | jump << 1 | j; + if (f.contains(key)) { + return f[key]; + } + int ans = i == k ? 1 : 0; + if (i > 0 && j == 0) { + ans += dfs(i - 1, 1, jump); + } + ans += dfs(i + (1 << jump), 0, jump + 1); + f[key] = ans; + return ans; + } +}; ``` #### Go ```go +func waysToReachStair(k int) int { + f := map[int]int{} + var dfs func(i, j, jump int) int + dfs = func(i, j, jump int) int { + if i > k+1 { + return 0 + } + key := (i << 32) | jump<<1 | j + if v, has := f[key]; has { + return v + } + ans := 0 + if i == k { + ans++ + } + if i > 0 && j == 0 { + ans += dfs(i-1, 1, jump) + } + ans += dfs(i+(1< = new Map(); + + const dfs = (i: number, j: number, jump: number): number => { + if (i > k + 1) { + return 0; + } + + const key: bigint = (BigInt(i) << BigInt(32)) | BigInt(jump << 1) | BigInt(j); + if (f.has(key)) { + return f.get(key)!; + } + + let ans: number = 0; + if (i === k) { + ans++; + } + + if (i > 0 && j === 0) { + ans += dfs(i - 1, 1, jump); + } + + ans += dfs(i + (1 << jump), 0, jump + 1); + f.set(key, ans); + return ans; + }; + return dfs(1, 0, 0); +} ``` diff --git a/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.cpp b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.cpp new file mode 100644 index 0000000000000..bac94a2f6d756 --- /dev/null +++ b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.cpp @@ -0,0 +1,28 @@ +class Solution { +public: + int waysToReachStair(int k) { + this->k = k; + return dfs(1, 0, 0); + } + +private: + unordered_map f; + int k; + + int dfs(int i, int j, int jump) { + if (i > k + 1) { + return 0; + } + long long key = ((long long) i << 32) | jump << 1 | j; + if (f.contains(key)) { + return f[key]; + } + int ans = i == k ? 1 : 0; + if (i > 0 && j == 0) { + ans += dfs(i - 1, 1, jump); + } + ans += dfs(i + (1 << jump), 0, jump + 1); + f[key] = ans; + return ans; + } +}; \ No newline at end of file diff --git a/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.go b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.go new file mode 100644 index 0000000000000..96254401b51e8 --- /dev/null +++ b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.go @@ -0,0 +1,24 @@ +func waysToReachStair(k int) int { + f := map[int]int{} + var dfs func(i, j, jump int) int + dfs = func(i, j, jump int) int { + if i > k+1 { + return 0 + } + key := (i << 32) | jump<<1 | j + if v, has := f[key]; has { + return v + } + ans := 0 + if i == k { + ans++ + } + if i > 0 && j == 0 { + ans += dfs(i-1, 1, jump) + } + ans += dfs(i+(1< f = new HashMap<>(); + private int k; + + public int waysToReachStair(int k) { + this.k = k; + return dfs(1, 0, 0); + } + + private int dfs(int i, int j, int jump) { + if (i > k + 1) { + return 0; + } + long key = ((long) i << 32) | jump << 1 | j; + if (f.containsKey(key)) { + return f.get(key); + } + int ans = i == k ? 1 : 0; + if (i > 0 && j == 0) { + ans += dfs(i - 1, 1, jump); + } + ans += dfs(i + (1 << jump), 0, jump + 1); + f.put(key, ans); + return ans; + } +} \ No newline at end of file diff --git a/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.py b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.py new file mode 100644 index 0000000000000..67459c5a5e000 --- /dev/null +++ b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.py @@ -0,0 +1,13 @@ +class Solution: + def waysToReachStair(self, k: int) -> int: + @cache + def dfs(i: int, j: int, jump: int) -> int: + if i > k + 1: + return 0 + ans = int(i == k) + if i > 0 and j == 0: + ans += dfs(i - 1, 1, jump) + ans += dfs(i + (1 << jump), 0, jump + 1) + return ans + + return dfs(1, 0, 0) diff --git a/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.ts b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.ts new file mode 100644 index 0000000000000..33b17b9d49560 --- /dev/null +++ b/solution/3100-3199/3154.Find Number of Ways to Reach the K-th Stair/Solution.ts @@ -0,0 +1,29 @@ +function waysToReachStair(k: number): number { + const f: Map = new Map(); + + const dfs = (i: number, j: number, jump: number): number => { + if (i > k + 1) { + return 0; + } + + const key: bigint = (BigInt(i) << BigInt(32)) | BigInt(jump << 1) | BigInt(j); + if (f.has(key)) { + return f.get(key)!; + } + + let ans: number = 0; + if (i === k) { + ans++; + } + + if (i > 0 && j === 0) { + ans += dfs(i - 1, 1, jump); + } + + ans += dfs(i + (1 << jump), 0, jump + 1); + f.set(key, ans); + return ans; + }; + + return dfs(1, 0, 0); +} From 51b984f1c4f780b42428a982fdba8b0986040ea0 Mon Sep 17 00:00:00 2001 From: Ali Nawaz <110383490+AliPythonDev@users.noreply.github.com> Date: Sun, 19 May 2024 17:59:30 +0500 Subject: [PATCH 03/31] feat: add cpp solution to lc problem: No.3068 (#2839) --- .../Solution.cpp | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 solution/3000-3099/3068.Find the Maximum Sum of Node Values/Solution.cpp diff --git a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/Solution.cpp b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/Solution.cpp new file mode 100644 index 0000000000000..3b048350a7666 --- /dev/null +++ b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/Solution.cpp @@ -0,0 +1,29 @@ +class Solution { +public: + long long maximumValueSum(vector& nums, int k, + vector>& edges) { + long long totalSum = 0; + int count = 0; + int positiveMin = INT_MAX; + int negativeMax = INT_MIN; + + for (int nodeValue : nums) { + int nodeValAfterOperation = nodeValue ^ k; + totalSum += nodeValue; + int netChange = nodeValAfterOperation - nodeValue; + + if (netChange > 0) { + positiveMin = min(positiveMin, netChange); + totalSum += netChange; + count += 1; + } else { + negativeMax = max(negativeMax, netChange); + } + } + + if (count % 2 == 0) { + return totalSum; + } + return max(totalSum - positiveMin, totalSum + negativeMax); + } +}; From f55b0d7a29024f636eaad4401a028a4bd221551e Mon Sep 17 00:00:00 2001 From: Ali Nawaz <110383490+AliPythonDev@users.noreply.github.com> Date: Sun, 19 May 2024 17:59:46 +0500 Subject: [PATCH 04/31] feat: add cpp solution to lc problem: No.3068 (#2840) --- .../README_EN.md | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README_EN.md b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README_EN.md index 9e04d8750514d..0ba1ae79c8814 100644 --- a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README_EN.md +++ b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README_EN.md @@ -109,7 +109,35 @@ It can be shown that 9 is the maximum achievable sum of values. #### C++ ```cpp - +class Solution { +public: + long long maximumValueSum(vector& nums, int k, + vector>& edges) { + long long totalSum = 0; + int count = 0; + int positiveMin = INT_MAX; + int negativeMax = INT_MIN; + + for (int nodeValue : nums) { + int nodeValAfterOperation = nodeValue ^ k; + totalSum += nodeValue; + int netChange = nodeValAfterOperation - nodeValue; + + if (netChange > 0) { + positiveMin = min(positiveMin, netChange); + totalSum += netChange; + count += 1; + } else { + negativeMax = max(negativeMax, netChange); + } + } + + if (count % 2 == 0) { + return totalSum; + } + return max(totalSum - positiveMin, totalSum + negativeMax); + } +}; ``` #### Go From ac3102d3172bf7ccce22e747726afb2dd10879f8 Mon Sep 17 00:00:00 2001 From: Ali Nawaz <110383490+AliPythonDev@users.noreply.github.com> Date: Sun, 19 May 2024 17:59:59 +0500 Subject: [PATCH 05/31] feat: add cpp solution to lc problem: No.3068 (#2841) --- .../README.md | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README.md b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README.md index d4276dd9abe95..f3a353daa7e49 100644 --- a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README.md +++ b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README.md @@ -117,7 +117,35 @@ tags: #### C++ ```cpp - +class Solution { +public: + long long maximumValueSum(vector& nums, int k, + vector>& edges) { + long long totalSum = 0; + int count = 0; + int positiveMin = INT_MAX; + int negativeMax = INT_MIN; + + for (int nodeValue : nums) { + int nodeValAfterOperation = nodeValue ^ k; + totalSum += nodeValue; + int netChange = nodeValAfterOperation - nodeValue; + + if (netChange > 0) { + positiveMin = min(positiveMin, netChange); + totalSum += netChange; + count += 1; + } else { + negativeMax = max(negativeMax, netChange); + } + } + + if (count % 2 == 0) { + return totalSum; + } + return max(totalSum - positiveMin, totalSum + negativeMax); + } +}; ``` #### Go From 818daa9528842664ee049d47dc2bd0a16a9e2082 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Sun, 19 May 2024 21:00:29 +0800 Subject: [PATCH 06/31] feat: add solutions to lc problem: No.3155 (#2843) No.3155.Maximum Number of Upgradable Servers --- .../3152.Special Array II/README_EN.md | 8 +- .../README.md | 158 ++++++++++++++++++ .../README_EN.md | 158 ++++++++++++++++++ .../Solution.cpp | 11 ++ .../Solution.go | 6 + .../Solution.java | 11 ++ .../Solution.py | 8 + .../Solution.ts | 14 ++ solution/README.md | 1 + solution/README_EN.md | 1 + 10 files changed, 372 insertions(+), 4 deletions(-) create mode 100644 solution/3100-3199/3155.Maximum Number of Upgradable Servers/README.md create mode 100644 solution/3100-3199/3155.Maximum Number of Upgradable Servers/README_EN.md create mode 100644 solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.cpp create mode 100644 solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.go create mode 100644 solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.java create mode 100644 solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.py create mode 100644 solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.ts diff --git a/solution/3100-3199/3152.Special Array II/README_EN.md b/solution/3100-3199/3152.Special Array II/README_EN.md index 96f22fb8c1ff6..f01a74821d386 100644 --- a/solution/3100-3199/3152.Special Array II/README_EN.md +++ b/solution/3100-3199/3152.Special Array II/README_EN.md @@ -61,6 +61,10 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3152.Sp +## Solutions + + + ### Solution 1: Record the Leftmost Special Array Position for Each Position We can define an array $d$ to record the leftmost special array position for each position, initially $d[i] = i$. Then we traverse the array $nums$ from left to right. If $nums[i]$ and $nums[i - 1]$ have different parities, then $d[i] = d[i - 1]$. @@ -69,10 +73,6 @@ Finally, we traverse each query and check whether $d[to] <= from$ holds. The time complexity is $O(n)$ and the space complexity is $O(n)$, where $n$ is the length of the array. - - -### Solution 1 - #### Python3 diff --git a/solution/3100-3199/3155.Maximum Number of Upgradable Servers/README.md b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/README.md new file mode 100644 index 0000000000000..1109df6cae9a8 --- /dev/null +++ b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/README.md @@ -0,0 +1,158 @@ +--- +comments: true +difficulty: 中等 +edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3155.Maximum%20Number%20of%20Upgradable%20Servers/README.md +--- + + + +# [3155. Maximum Number of Upgradable Servers 🔒](https://leetcode.cn/problems/maximum-number-of-upgradable-servers) + +[English Version](/solution/3100-3199/3155.Maximum%20Number%20of%20Upgradable%20Servers/README_EN.md) + +## 题目描述 + + + +

You have n data centers and need to upgrade their servers.

+ +

You are given four arrays count, upgrade, sell, and money of length n, which show:

+ +
    +
  • The number of servers
  • +
  • The cost of upgrading a single server
  • +
  • The money you get by selling a server
  • +
  • The money you initially have
  • +
+ +

for each data center respectively.

+ +

Return an array answer, where for each data center, the corresponding element in answer represents the maximum number of servers that can be upgraded.

+ +

Note that the money from one data center cannot be used for another data center.

+ +

 

+

Example 1:

+ +
+

Input: count = [4,3], upgrade = [3,5], sell = [4,2], money = [8,9]

+ +

Output: [3,2]

+ +

Explanation:

+ +

For the first data center, if we sell one server, we'll have 8 + 4 = 12 units of money and we can upgrade the remaining 3 servers.

+ +

For the second data center, if we sell one server, we'll have 9 + 2 = 11 units of money and we can upgrade the remaining 2 servers.

+
+ +

Example 2:

+ +
+

Input: count = [1], upgrade = [2], sell = [1], money = [1]

+ +

Output: [0]

+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= count.length == upgrade.length == sell.length == money.length <= 105
  • +
  • 1 <= count[i], upgrade[i], sell[i], money[i] <= 105
  • +
+ + + +## 解法 + + + +### 方法一:数学 + +对于每个数据中心,我们假设可以升级 $\text{x}$ 台服务器,那么 $\text{x} \times \text{upgrade[i]} \leq \text{count[i]} \times \text{sell[i]} + \text{money[i]}$。即 $\text{x} \leq \frac{\text{count[i]} \times \text{sell[i]} + \text{money[i]}}{\text{upgrade[i]} + \text{sell[i]}}$。又因为 $\text{x} \leq \text{count[i]}$,所以我们取两者的最小值即可。 + +时间复杂度 $O(n)$,其中 $n$ 为数组的长度。忽略答案数组的空间消耗,空间复杂度 $O(1)$。 + + + +#### Python3 + +```python +class Solution: + def maxUpgrades( + self, count: List[int], upgrade: List[int], sell: List[int], money: List[int] + ) -> List[int]: + ans = [] + for cnt, cost, income, cash in zip(count, upgrade, sell, money): + ans.append(min(cnt, (cnt * income + cash) // (cost + income))) + return ans +``` + +#### Java + +```java +class Solution { + public int[] maxUpgrades(int[] count, int[] upgrade, int[] sell, int[] money) { + int n = count.length; + int[] ans = new int[n]; + for (int i = 0; i < n; ++i) { + ans[i] = Math.min( + count[i], (int) ((1L * count[i] * sell[i] + money[i]) / (upgrade[i] + sell[i]))); + } + return ans; + } +} +``` + +#### C++ + +```cpp +class Solution { +public: + vector maxUpgrades(vector& count, vector& upgrade, vector& sell, vector& money) { + int n = count.size(); + vector ans; + for (int i = 0; i < n; ++i) { + ans.push_back(min(count[i], (int) ((1LL * count[i] * sell[i] + money[i]) / (upgrade[i] + sell[i])))); + } + return ans; + } +}; +``` + +#### Go + +```go +func maxUpgrades(count []int, upgrade []int, sell []int, money []int) (ans []int) { + for i, cnt := range count { + ans = append(ans, min(cnt, (cnt*sell[i]+money[i])/(upgrade[i]+sell[i]))) + } + return +} +``` + +#### TypeScript + +```ts +function maxUpgrades( + count: number[], + upgrade: number[], + sell: number[], + money: number[], +): number[] { + const n = count.length; + const ans: number[] = []; + for (let i = 0; i < n; ++i) { + const x = ((count[i] * sell[i] + money[i]) / (upgrade[i] + sell[i])) | 0; + ans.push(Math.min(x, count[i])); + } + return ans; +} +``` + + + + + + diff --git a/solution/3100-3199/3155.Maximum Number of Upgradable Servers/README_EN.md b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/README_EN.md new file mode 100644 index 0000000000000..8673c75d55792 --- /dev/null +++ b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/README_EN.md @@ -0,0 +1,158 @@ +--- +comments: true +difficulty: Medium +edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3155.Maximum%20Number%20of%20Upgradable%20Servers/README_EN.md +--- + + + +# [3155. Maximum Number of Upgradable Servers 🔒](https://leetcode.com/problems/maximum-number-of-upgradable-servers) + +[中文文档](/solution/3100-3199/3155.Maximum%20Number%20of%20Upgradable%20Servers/README.md) + +## Description + + + +

You have n data centers and need to upgrade their servers.

+ +

You are given four arrays count, upgrade, sell, and money of length n, which show:

+ +
    +
  • The number of servers
  • +
  • The cost of upgrading a single server
  • +
  • The money you get by selling a server
  • +
  • The money you initially have
  • +
+ +

for each data center respectively.

+ +

Return an array answer, where for each data center, the corresponding element in answer represents the maximum number of servers that can be upgraded.

+ +

Note that the money from one data center cannot be used for another data center.

+ +

 

+

Example 1:

+ +
+

Input: count = [4,3], upgrade = [3,5], sell = [4,2], money = [8,9]

+ +

Output: [3,2]

+ +

Explanation:

+ +

For the first data center, if we sell one server, we'll have 8 + 4 = 12 units of money and we can upgrade the remaining 3 servers.

+ +

For the second data center, if we sell one server, we'll have 9 + 2 = 11 units of money and we can upgrade the remaining 2 servers.

+
+ +

Example 2:

+ +
+

Input: count = [1], upgrade = [2], sell = [1], money = [1]

+ +

Output: [0]

+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= count.length == upgrade.length == sell.length == money.length <= 105
  • +
  • 1 <= count[i], upgrade[i], sell[i], money[i] <= 105
  • +
+ + + +## Solutions + + + +### Solution 1: Mathematics + +For each data center, we assume that we can upgrade $x$ servers, then $x \times \text{upgrade[i]} \leq \text{count[i]} \times \text{sell[i]} + \text{money[i]}$. That is, $x \leq \frac{\text{count[i]} \times \text{sell[i]} + \text{money[i]}}{\text{upgrade[i]} + \text{sell[i]}}$. Also, $x \leq \text{count[i]}$, so we can take the minimum of the two. + +The time complexity is $O(n)$, where $n$ is the length of the array. Ignoring the space consumption of the answer array, the space complexity is $O(1)$. + + + +#### Python3 + +```python +class Solution: + def maxUpgrades( + self, count: List[int], upgrade: List[int], sell: List[int], money: List[int] + ) -> List[int]: + ans = [] + for cnt, cost, income, cash in zip(count, upgrade, sell, money): + ans.append(min(cnt, (cnt * income + cash) // (cost + income))) + return ans +``` + +#### Java + +```java +class Solution { + public int[] maxUpgrades(int[] count, int[] upgrade, int[] sell, int[] money) { + int n = count.length; + int[] ans = new int[n]; + for (int i = 0; i < n; ++i) { + ans[i] = Math.min( + count[i], (int) ((1L * count[i] * sell[i] + money[i]) / (upgrade[i] + sell[i]))); + } + return ans; + } +} +``` + +#### C++ + +```cpp +class Solution { +public: + vector maxUpgrades(vector& count, vector& upgrade, vector& sell, vector& money) { + int n = count.size(); + vector ans; + for (int i = 0; i < n; ++i) { + ans.push_back(min(count[i], (int) ((1LL * count[i] * sell[i] + money[i]) / (upgrade[i] + sell[i])))); + } + return ans; + } +}; +``` + +#### Go + +```go +func maxUpgrades(count []int, upgrade []int, sell []int, money []int) (ans []int) { + for i, cnt := range count { + ans = append(ans, min(cnt, (cnt*sell[i]+money[i])/(upgrade[i]+sell[i]))) + } + return +} +``` + +#### TypeScript + +```ts +function maxUpgrades( + count: number[], + upgrade: number[], + sell: number[], + money: number[], +): number[] { + const n = count.length; + const ans: number[] = []; + for (let i = 0; i < n; ++i) { + const x = ((count[i] * sell[i] + money[i]) / (upgrade[i] + sell[i])) | 0; + ans.push(Math.min(x, count[i])); + } + return ans; +} +``` + + + + + + diff --git a/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.cpp b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.cpp new file mode 100644 index 0000000000000..c8b90c097709e --- /dev/null +++ b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.cpp @@ -0,0 +1,11 @@ +class Solution { +public: + vector maxUpgrades(vector& count, vector& upgrade, vector& sell, vector& money) { + int n = count.size(); + vector ans; + for (int i = 0; i < n; ++i) { + ans.push_back(min(count[i], (int) ((1LL * count[i] * sell[i] + money[i]) / (upgrade[i] + sell[i])))); + } + return ans; + } +}; \ No newline at end of file diff --git a/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.go b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.go new file mode 100644 index 0000000000000..e0753de1010f1 --- /dev/null +++ b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.go @@ -0,0 +1,6 @@ +func maxUpgrades(count []int, upgrade []int, sell []int, money []int) (ans []int) { + for i, cnt := range count { + ans = append(ans, min(cnt, (cnt*sell[i]+money[i])/(upgrade[i]+sell[i]))) + } + return +} \ No newline at end of file diff --git a/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.java b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.java new file mode 100644 index 0000000000000..28650a7422372 --- /dev/null +++ b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.java @@ -0,0 +1,11 @@ +class Solution { + public int[] maxUpgrades(int[] count, int[] upgrade, int[] sell, int[] money) { + int n = count.length; + int[] ans = new int[n]; + for (int i = 0; i < n; ++i) { + ans[i] = Math.min( + count[i], (int) ((1L * count[i] * sell[i] + money[i]) / (upgrade[i] + sell[i]))); + } + return ans; + } +} \ No newline at end of file diff --git a/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.py b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.py new file mode 100644 index 0000000000000..4a16031fc0406 --- /dev/null +++ b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.py @@ -0,0 +1,8 @@ +class Solution: + def maxUpgrades( + self, count: List[int], upgrade: List[int], sell: List[int], money: List[int] + ) -> List[int]: + ans = [] + for cnt, cost, income, cash in zip(count, upgrade, sell, money): + ans.append(min(cnt, (cnt * income + cash) // (cost + income))) + return ans diff --git a/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.ts b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.ts new file mode 100644 index 0000000000000..566f496fc1516 --- /dev/null +++ b/solution/3100-3199/3155.Maximum Number of Upgradable Servers/Solution.ts @@ -0,0 +1,14 @@ +function maxUpgrades( + count: number[], + upgrade: number[], + sell: number[], + money: number[], +): number[] { + const n = count.length; + const ans: number[] = []; + for (let i = 0; i < n; ++i) { + const x = ((count[i] * sell[i] + money[i]) / (upgrade[i] + sell[i])) | 0; + ans.push(Math.min(x, count[i])); + } + return ans; +} diff --git a/solution/README.md b/solution/README.md index 4d5022069bf07..86297bb930075 100644 --- a/solution/README.md +++ b/solution/README.md @@ -3165,6 +3165,7 @@ | 3152 | [特殊数组 II](/solution/3100-3199/3152.Special%20Array%20II/README.md) | | 中等 | 第 398 场周赛 | | 3153 | [所有数对中数位不同之和](/solution/3100-3199/3153.Sum%20of%20Digit%20Differences%20of%20All%20Pairs/README.md) | | 中等 | 第 398 场周赛 | | 3154 | [到达第 K 级台阶的方案数](/solution/3100-3199/3154.Find%20Number%20of%20Ways%20to%20Reach%20the%20K-th%20Stair/README.md) | | 困难 | 第 398 场周赛 | +| 3155 | [Maximum Number of Upgradable Servers](/solution/3100-3199/3155.Maximum%20Number%20of%20Upgradable%20Servers/README.md) | | 中等 | 🔒 | ## 版权 diff --git a/solution/README_EN.md b/solution/README_EN.md index 5368441dc3d71..b9f7cf205c6e6 100644 --- a/solution/README_EN.md +++ b/solution/README_EN.md @@ -3163,6 +3163,7 @@ Press Control + F(or Command + F on | 3152 | [Special Array II](/solution/3100-3199/3152.Special%20Array%20II/README_EN.md) | | Medium | Weekly Contest 398 | | 3153 | [Sum of Digit Differences of All Pairs](/solution/3100-3199/3153.Sum%20of%20Digit%20Differences%20of%20All%20Pairs/README_EN.md) | | Medium | Weekly Contest 398 | | 3154 | [Find Number of Ways to Reach the K-th Stair](/solution/3100-3199/3154.Find%20Number%20of%20Ways%20to%20Reach%20the%20K-th%20Stair/README_EN.md) | | Hard | Weekly Contest 398 | +| 3155 | [Maximum Number of Upgradable Servers](/solution/3100-3199/3155.Maximum%20Number%20of%20Upgradable%20Servers/README_EN.md) | | Medium | 🔒 | ## Copyright From 06533ad9ae3b79b240d3782c037f289e53cdaed0 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Sun, 19 May 2024 22:21:12 +0800 Subject: [PATCH 07/31] feat: add solutions to lc problem: No.1317 (#2844) --- .../README.md | 44 ++++++++++++++++-- .../README_EN.md | 46 ++++++++++++++++++- .../Solution.ts | 8 ++++ .../Solution2.ts | 16 +++++++ .../README.md | 3 +- .../README_EN.md | 3 +- .../Solution.cpp | 3 +- 7 files changed, 112 insertions(+), 11 deletions(-) create mode 100644 solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/Solution.ts create mode 100644 solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/Solution2.ts diff --git a/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/README.md b/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/README.md index 95a71c37bca2d..df2390fb2d575 100644 --- a/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/README.md +++ b/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/README.md @@ -80,9 +80,9 @@ tags: ### 方法一:直接枚举 -从 $1$ 开始枚举 $a$,判断 $a$ 和 $n - a$ 是否满足条件,如果满足则返回。 +从 $1$ 开始枚举 $a$,那么 $b = n - a$。对于每个 $a$ 和 $b$,我们将它们转换为字符串并且连接起来,然后判断是否包含字符 `'0'`,如果不包含,那么就找到了答案,返回 $[a, b]$。 -时间复杂度 $O(n\times \log n)$,空间复杂度 $O(1)$。其中 $n$ 为题目给定的整数。 +时间复杂度 $O(n \times \log n)$,其中 $n$ 为题目给定的整数。空间复杂度 $O(\log n)$。 @@ -141,13 +141,30 @@ func getNoZeroIntegers(n int) []int { } ``` +#### TypeScript + +```ts +function getNoZeroIntegers(n: number): number[] { + for (let a = 1; ; ++a) { + const b = n - a; + if (!`${a}${b}`.includes('0')) { + return [a, b]; + } + } +} +``` + -### 方法二 +### 方法二:直接枚举(另一种写法) + +在方法一中,我们将 $a$ 和 $b$ 转换为字符串并且连接起来,然后判断是否包含字符 `'0'`。这里我们可以通过一个函数 $f(x)$ 来判断 $x$ 是否包含字符 `'0'`,然后直接枚举 $a$,判断 $a$ 和 $b = n - a$ 是否都不包含字符 `'0'`,如果是,则找到了答案,返回 $[a, b]$。 + +时间复杂度 $O(n \times \log n)$,其中 $n$ 为题目给定的整数。空间复杂度 $O(1)$。 @@ -238,6 +255,27 @@ func getNoZeroIntegers(n int) []int { } ``` +#### TypeScript + +```ts +function getNoZeroIntegers(n: number): number[] { + const f = (x: number): boolean => { + for (; x; x = (x / 10) | 0) { + if (x % 10 === 0) { + return false; + } + } + return true; + }; + for (let a = 1; ; ++a) { + const b = n - a; + if (f(a) && f(b)) { + return [a, b]; + } + } +} +``` + diff --git a/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/README_EN.md b/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/README_EN.md index 440f2650d8888..d377b891d9ab4 100644 --- a/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/README_EN.md +++ b/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/README_EN.md @@ -62,7 +62,11 @@ Note that there are other valid answers as [8, 3] that can be accepted. -### Solution 1 +### Solution 1: Direct Enumeration + +Starting from $1$, we enumerate $a$, then $b = n - a$. For each $a$ and $b$, we convert them to strings and concatenate them, then check if they contain the character '0'. If they do not contain '0', we have found the answer and return $[a, b]$. + +The time complexity is $O(n \times \log n)$, where $n$ is the integer given in the problem. The space complexity is $O(\log n)$. @@ -121,13 +125,30 @@ func getNoZeroIntegers(n int) []int { } ``` +#### TypeScript + +```ts +function getNoZeroIntegers(n: number): number[] { + for (let a = 1; ; ++a) { + const b = n - a; + if (!`${a}${b}`.includes('0')) { + return [a, b]; + } + } +} +``` + -### Solution 2 +### Solution 2: Direct Enumeration (Alternative Approach) + +In Solution 1, we converted $a$ and $b$ into strings and concatenated them, then checked if they contained the character '0'. Here, we can use a function $f(x)$ to check whether $x$ contains the character '0', and then directly enumerate $a$, checking whether both $a$ and $b = n - a$ do not contain the character '0'. If they do not, we have found the answer and return $[a, b]$. + +The time complexity is $O(n \times \log n)$, where $n$ is the integer given in the problem. The space complexity is $O(1)$. @@ -218,6 +239,27 @@ func getNoZeroIntegers(n int) []int { } ``` +#### TypeScript + +```ts +function getNoZeroIntegers(n: number): number[] { + const f = (x: number): boolean => { + for (; x; x = (x / 10) | 0) { + if (x % 10 === 0) { + return false; + } + } + return true; + }; + for (let a = 1; ; ++a) { + const b = n - a; + if (f(a) && f(b)) { + return [a, b]; + } + } +} +``` + diff --git a/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/Solution.ts b/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/Solution.ts new file mode 100644 index 0000000000000..0089abb4afd98 --- /dev/null +++ b/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/Solution.ts @@ -0,0 +1,8 @@ +function getNoZeroIntegers(n: number): number[] { + for (let a = 1; ; ++a) { + const b = n - a; + if (!`${a}${b}`.includes('0')) { + return [a, b]; + } + } +} diff --git a/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/Solution2.ts b/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/Solution2.ts new file mode 100644 index 0000000000000..80d2915e9b2f8 --- /dev/null +++ b/solution/1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers/Solution2.ts @@ -0,0 +1,16 @@ +function getNoZeroIntegers(n: number): number[] { + const f = (x: number): boolean => { + for (; x; x = (x / 10) | 0) { + if (x % 10 === 0) { + return false; + } + } + return true; + }; + for (let a = 1; ; ++a) { + const b = n - a; + if (f(a) && f(b)) { + return [a, b]; + } + } +} diff --git a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README.md b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README.md index f3a353daa7e49..83e99e58f23d9 100644 --- a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README.md +++ b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README.md @@ -119,8 +119,7 @@ tags: ```cpp class Solution { public: - long long maximumValueSum(vector& nums, int k, - vector>& edges) { + long long maximumValueSum(vector& nums, int k, vector>& edges) { long long totalSum = 0; int count = 0; int positiveMin = INT_MAX; diff --git a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README_EN.md b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README_EN.md index 0ba1ae79c8814..02f7391356a66 100644 --- a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README_EN.md +++ b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/README_EN.md @@ -111,8 +111,7 @@ It can be shown that 9 is the maximum achievable sum of values. ```cpp class Solution { public: - long long maximumValueSum(vector& nums, int k, - vector>& edges) { + long long maximumValueSum(vector& nums, int k, vector>& edges) { long long totalSum = 0; int count = 0; int positiveMin = INT_MAX; diff --git a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/Solution.cpp b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/Solution.cpp index 3b048350a7666..76da2b6d44889 100644 --- a/solution/3000-3099/3068.Find the Maximum Sum of Node Values/Solution.cpp +++ b/solution/3000-3099/3068.Find the Maximum Sum of Node Values/Solution.cpp @@ -1,7 +1,6 @@ class Solution { public: - long long maximumValueSum(vector& nums, int k, - vector>& edges) { + long long maximumValueSum(vector& nums, int k, vector>& edges) { long long totalSum = 0; int count = 0; int positiveMin = INT_MAX; From 41ebef41f99b762736e625513abec41e4c39a8fb Mon Sep 17 00:00:00 2001 From: rain84 Date: Mon, 20 May 2024 04:04:50 +0300 Subject: [PATCH 08/31] refactor: update solution with sorting via object to lc problem: No.2722 (#2847) --- .../2722.Join Two Arrays by ID/README.md | 19 +++++++++++++------ .../2722.Join Two Arrays by ID/README_EN.md | 19 +++++++++++++------ .../2722.Join Two Arrays by ID/Solution.ts | 19 +++++++++++++------ 3 files changed, 39 insertions(+), 18 deletions(-) diff --git a/solution/2700-2799/2722.Join Two Arrays by ID/README.md b/solution/2700-2799/2722.Join Two Arrays by ID/README.md index ba69bc67defa3..c4495ab866e74 100644 --- a/solution/2700-2799/2722.Join Two Arrays by ID/README.md +++ b/solution/2700-2799/2722.Join Two Arrays by ID/README.md @@ -109,17 +109,24 @@ arr2 = [ #### TypeScript ```ts -function join(arr1: any[], arr2: any[]): any[] { - const d = new Map(arr1.map(x => [x.id, x])); +function join(arr1: ArrayType[], arr2: ArrayType[]): ArrayType[] { + const r = (acc: Obj, x: ArrayType): Obj => ((acc[x.id] = x), acc); + const d = arr1.reduce(r, {}); + arr2.forEach(x => { - if (d.has(x.id)) { - d.set(x.id, { ...d.get(x.id), ...x }); + if (d[x.id]) { + Object.assign(d[x.id], x); } else { - d.set(x.id, x); + d[x.id] = x; } }); - return [...d.values()].sort((a, b) => a.id - b.id); + return Object.values(d); } + +type JSONValue = null | boolean | number | string | JSONValue[] | { [key: string]: JSONValue }; +type ArrayType = { id: number } & Record; + +type Obj = Record; ``` diff --git a/solution/2700-2799/2722.Join Two Arrays by ID/README_EN.md b/solution/2700-2799/2722.Join Two Arrays by ID/README_EN.md index 60780b24b5db6..7bb80d8d6435f 100644 --- a/solution/2700-2799/2722.Join Two Arrays by ID/README_EN.md +++ b/solution/2700-2799/2722.Join Two Arrays by ID/README_EN.md @@ -107,17 +107,24 @@ arr2 = [ #### TypeScript ```ts -function join(arr1: any[], arr2: any[]): any[] { - const d = new Map(arr1.map(x => [x.id, x])); +function join(arr1: ArrayType[], arr2: ArrayType[]): ArrayType[] { + const r = (acc: Obj, x: ArrayType): Obj => ((acc[x.id] = x), acc); + const d = arr1.reduce(r, {}); + arr2.forEach(x => { - if (d.has(x.id)) { - d.set(x.id, { ...d.get(x.id), ...x }); + if (d[x.id]) { + Object.assign(d[x.id], x); } else { - d.set(x.id, x); + d[x.id] = x; } }); - return [...d.values()].sort((a, b) => a.id - b.id); + return Object.values(d); } + +type JSONValue = null | boolean | number | string | JSONValue[] | { [key: string]: JSONValue }; +type ArrayType = { id: number } & Record; + +type Obj = Record; ``` diff --git a/solution/2700-2799/2722.Join Two Arrays by ID/Solution.ts b/solution/2700-2799/2722.Join Two Arrays by ID/Solution.ts index 94c034e2bd5b6..d185deaa20b23 100644 --- a/solution/2700-2799/2722.Join Two Arrays by ID/Solution.ts +++ b/solution/2700-2799/2722.Join Two Arrays by ID/Solution.ts @@ -1,11 +1,18 @@ -function join(arr1: any[], arr2: any[]): any[] { - const d = new Map(arr1.map(x => [x.id, x])); +function join(arr1: ArrayType[], arr2: ArrayType[]): ArrayType[] { + const r = (acc: Obj, x: ArrayType): Obj => ((acc[x.id] = x), acc); + const d = arr1.reduce(r, {}); + arr2.forEach(x => { - if (d.has(x.id)) { - d.set(x.id, { ...d.get(x.id), ...x }); + if (d[x.id]) { + Object.assign(d[x.id], x); } else { - d.set(x.id, x); + d[x.id] = x; } }); - return [...d.values()].sort((a, b) => a.id - b.id); + return Object.values(d); } + +type JSONValue = null | boolean | number | string | JSONValue[] | { [key: string]: JSONValue }; +type ArrayType = { id: number } & Record; + +type Obj = Record; From aa8ed865cf19a1b4cad6c1268e7085a0dcc2a42d Mon Sep 17 00:00:00 2001 From: rain84 Date: Mon, 20 May 2024 04:05:02 +0300 Subject: [PATCH 09/31] refactor: update solution to lc problem: No.2625 (#2848) --- .../2600-2699/2625.Flatten Deeply Nested Array/README.md | 6 +++--- .../2600-2699/2625.Flatten Deeply Nested Array/README_EN.md | 4 ++-- .../2600-2699/2625.Flatten Deeply Nested Array/Solution.ts | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/solution/2600-2699/2625.Flatten Deeply Nested Array/README.md b/solution/2600-2699/2625.Flatten Deeply Nested Array/README.md index 74f1fa245dcac..58614620dda1b 100644 --- a/solution/2600-2699/2625.Flatten Deeply Nested Array/README.md +++ b/solution/2600-2699/2625.Flatten Deeply Nested Array/README.md @@ -83,7 +83,7 @@ n = 2 我们可以使用递归的方法,将多维数组扁平化。 -在函数中,我们首先判断 $n$ 是否小于等于 $0$,如果是,直接返回原数组。否则,我们遍历数组的每个元素 $x$,如果 $x$ 是数组,我们递归调用函数,将 $x$ 作为参数,$n - 1$ 作为深度,将返回值添加到结果数组中;否则,将 $x$ 添加到结果数组中。最后返回结果数组。 +在函数中,我们首先判断 $n$ 是否小于等于 $0$,如果是,直接返回原数组。否则,我们遍历数组的每个元素 $x$,如果 $x$ 是数组,我们递归调用函数,参数为 $(x, n - 1)$,将返回值添加到结果数组中;否则,将 $x$ 添加到结果数组中。最后返回结果数组。 时间复杂度 $O(n)$,空间复杂度 $O(n)$。其中 $n$ 是数组的元素个数。 @@ -95,12 +95,12 @@ n = 2 type MultiDimensionalArray = (number | MultiDimensionalArray)[]; var flat = function (arr: MultiDimensionalArray, n: number): MultiDimensionalArray { - if (n <= 0) { + if (!n) { return arr; } const ans: MultiDimensionalArray = []; for (const x of arr) { - if (Array.isArray(x)) { + if (Array.isArray(x) && n) { ans.push(...flat(x, n - 1)); } else { ans.push(x); diff --git a/solution/2600-2699/2625.Flatten Deeply Nested Array/README_EN.md b/solution/2600-2699/2625.Flatten Deeply Nested Array/README_EN.md index c5beff0b8b0d9..fb0fee5f4726b 100644 --- a/solution/2600-2699/2625.Flatten Deeply Nested Array/README_EN.md +++ b/solution/2600-2699/2625.Flatten Deeply Nested Array/README_EN.md @@ -86,12 +86,12 @@ The maximum depth of any subarray is 1. Thus, all of them are flattened. type MultiDimensionalArray = (number | MultiDimensionalArray)[]; var flat = function (arr: MultiDimensionalArray, n: number): MultiDimensionalArray { - if (n <= 0) { + if (!n) { return arr; } const ans: MultiDimensionalArray = []; for (const x of arr) { - if (Array.isArray(x)) { + if (Array.isArray(x) && n) { ans.push(...flat(x, n - 1)); } else { ans.push(x); diff --git a/solution/2600-2699/2625.Flatten Deeply Nested Array/Solution.ts b/solution/2600-2699/2625.Flatten Deeply Nested Array/Solution.ts index b5be1c52304d9..c0031cc50cfb2 100644 --- a/solution/2600-2699/2625.Flatten Deeply Nested Array/Solution.ts +++ b/solution/2600-2699/2625.Flatten Deeply Nested Array/Solution.ts @@ -1,12 +1,12 @@ type MultiDimensionalArray = (number | MultiDimensionalArray)[]; var flat = function (arr: MultiDimensionalArray, n: number): MultiDimensionalArray { - if (n <= 0) { + if (!n) { return arr; } const ans: MultiDimensionalArray = []; for (const x of arr) { - if (Array.isArray(x)) { + if (Array.isArray(x) && n) { ans.push(...flat(x, n - 1)); } else { ans.push(x); From dfb029750fb31639fede5fb2a3bd66306ab47fb2 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Mon, 20 May 2024 11:32:00 +0800 Subject: [PATCH 10/31] feat: add ts solution to lc problem: No.1542 (#2850) No.1542.Find Longest Awesome Substring --- .../README.md | 31 ++++++++++++- .../README_EN.md | 43 ++++++++++++++++++- .../Solution.ts | 24 +++++++++++ 3 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 solution/1500-1599/1542.Find Longest Awesome Substring/Solution.ts diff --git a/solution/1500-1599/1542.Find Longest Awesome Substring/README.md b/solution/1500-1599/1542.Find Longest Awesome Substring/README.md index ca26c962d4ffb..fd64bedaaa98a 100644 --- a/solution/1500-1599/1542.Find Longest Awesome Substring/README.md +++ b/solution/1500-1599/1542.Find Longest Awesome Substring/README.md @@ -80,7 +80,7 @@ tags: 而如果子字符串 $s[j,..i]$ 是“超赞字符串”,那么前缀字符串 $s[0,..i]$ 的状态 $st$ 与前缀字符串 $s[0,..j-1]$ 的状态 $st'$ 的二进制位中,最多只有一位不同。这是因为,二进制位不同,表示奇偶性不同,而奇偶性不同,就意味着子字符串 $s[j,..i]$ 中该数字出现的次数为奇数次。 -所以,我们可以用哈希表或数组记录所有状态 $st$ 第一次出现的位置。若当前前缀字符串的状态 $st$ 在哈希表中已经存在,那么说明当前前缀字符串的状态 $st$ 与前缀字符串 $s[0,..j-1]$ 的状态 $st'$ 的二进制位中,所有位都相同,即子字符串 $s[j,..i]$ 是“超赞字符串”,更新答案的最大值。或者,我们可以枚举每一位,将当前前缀字符串的状态 $st$ 的第 $i$ 位取反,即 $st \oplus (1 << i)$,然后判断 $st \oplus (1 << i)$ 是否在哈希表中,若在,那么说明当前前缀字符串的状态 $st$ 与前缀字符串 $s[0,..j-1]$ 的状态 $st' \oplus (1 << i)$ 的二进制位中,只有第 $i$ 位不同,即子字符串 $s[j,..i]$ 是“超赞字符串”,更新答案的最大值。 +所以,我们可以用哈希表或数组记录所有状态 $st$ 第一次出现的位置。若当前前缀字符串的状态 $st$ 在哈希表中已经存在,那么说明当前前缀字符串的状态 $st$ 与前缀字符串 $s[0,..j-1]$ 的状态 $st'$ 的二进制位中,所有位都相同,即子字符串 $s[j,..i]$ 是“超赞字符串”,更新答案的最大值。或者,我们可以枚举每一位,将当前前缀字符串的状态 $st$ 的第 $i$ 位取反,即 $st \oplus 2^i$,然后判断 $st \oplus 2^i$ 是否在哈希表中,若在,那么说明当前前缀字符串的状态 $st$ 与前缀字符串 $s[0,..j-1]$ 的状态 $st' \oplus 2^i$ 的二进制位中,只有第 $i$ 位不同,即子字符串 $s[j,..i]$ 是“超赞字符串”,更新答案的最大值。 最后,返回答案即可。 @@ -190,6 +190,35 @@ func longestAwesome(s string) int { } ``` +#### TypeScript + +```ts +function longestAwesome(s: string): number { + const d: number[] = Array(1024).fill(-1); + let [st, ans] = [0, 1]; + d[0] = 0; + + for (let i = 1; i <= s.length; ++i) { + const v = s.charCodeAt(i - 1) - '0'.charCodeAt(0); + st ^= 1 << v; + + if (d[st] >= 0) { + ans = Math.max(ans, i - d[st]); + } else { + d[st] = i; + } + + for (let v = 0; v < 10; ++v) { + if (d[st ^ (1 << v)] >= 0) { + ans = Math.max(ans, i - d[st ^ (1 << v)]); + } + } + } + + return ans; +} +``` + diff --git a/solution/1500-1599/1542.Find Longest Awesome Substring/README_EN.md b/solution/1500-1599/1542.Find Longest Awesome Substring/README_EN.md index 07d7b0c0e5f7b..aadd0ced4552f 100644 --- a/solution/1500-1599/1542.Find Longest Awesome Substring/README_EN.md +++ b/solution/1500-1599/1542.Find Longest Awesome Substring/README_EN.md @@ -62,7 +62,19 @@ tags: -### Solution 1 +### Solution 1: State Compression + Prefix Sum + +According to the problem description, the characters in the "super awesome substring" can be swapped to obtain a palindrome string. Therefore, there is at most one digit character in the "super awesome substring" that appears an odd number of times, and the rest of the digit characters appear an even number of times. + +We can use an integer $st$ to represent the parity of the digit characters in the current prefix string, where the $i$-th bit of $st$ represents the parity of the digit character $i$, i.e., the $i$-th bit of $st$ is $1$ means that the digit character $i$ appears an odd number of times, and $0$ means that the digit character $i$ appears an even number of times. + +If the substring $s[j,..i]$ is a "super awesome string", then the state $st$ of the prefix string $s[0,..i]$ and the state $st'$ of the prefix string $s[0,..j-1]$ differ by at most one bit in binary. This is because, if the binary bits are different, it means that the parity is different, and if the parity is different, it means that the number of times the digit appears in the substring $s[j,..i]$ is odd. + +So, we can use a hash table or array to record the first occurrence of all states $st$. If the state $st$ of the current prefix string already exists in the hash table, it means that all bits in the binary of the state $st$ of the current prefix string and the state $st'$ of the prefix string $s[0,..j-1]$ are the same, i.e., the substring $s[j,..i]$ is a "super awesome string", and we update the maximum value of the answer. Or, we can enumerate each bit, flip the $i$-th bit of the state $st$ of the current prefix string, i.e., $st \oplus 2^i$, and then check whether $st \oplus 2^i$ is in the hash table. If it is, it means that only the $i$-th bit in the binary of the state $st$ of the current prefix string and the state $st' \oplus 2^i$ of the prefix string $s[0,..j-1]$ is different, i.e., the substring $s[j,..i]$ is a "super awesome string", and we update the maximum value of the answer. + +Finally, return the answer. + +The time complexity is $O(n \times C)$, and the space complexity is $O(2^C)$. Where $n$ and $C$ are the length of the string $s$ and the number of types of digit characters, respectively. @@ -168,6 +180,35 @@ func longestAwesome(s string) int { } ``` +#### TypeScript + +```ts +function longestAwesome(s: string): number { + const d: number[] = Array(1024).fill(-1); + let [st, ans] = [0, 1]; + d[0] = 0; + + for (let i = 1; i <= s.length; ++i) { + const v = s.charCodeAt(i - 1) - '0'.charCodeAt(0); + st ^= 1 << v; + + if (d[st] >= 0) { + ans = Math.max(ans, i - d[st]); + } else { + d[st] = i; + } + + for (let v = 0; v < 10; ++v) { + if (d[st ^ (1 << v)] >= 0) { + ans = Math.max(ans, i - d[st ^ (1 << v)]); + } + } + } + + return ans; +} +``` + diff --git a/solution/1500-1599/1542.Find Longest Awesome Substring/Solution.ts b/solution/1500-1599/1542.Find Longest Awesome Substring/Solution.ts new file mode 100644 index 0000000000000..8cf1091362d14 --- /dev/null +++ b/solution/1500-1599/1542.Find Longest Awesome Substring/Solution.ts @@ -0,0 +1,24 @@ +function longestAwesome(s: string): number { + const d: number[] = Array(1024).fill(-1); + let [st, ans] = [0, 1]; + d[0] = 0; + + for (let i = 1; i <= s.length; ++i) { + const v = s.charCodeAt(i - 1) - '0'.charCodeAt(0); + st ^= 1 << v; + + if (d[st] >= 0) { + ans = Math.max(ans, i - d[st]); + } else { + d[st] = i; + } + + for (let v = 0; v < 10; ++v) { + if (d[st ^ (1 << v)] >= 0) { + ans = Math.max(ans, i - d[st ^ (1 << v)]); + } + } + } + + return ans; +} From 5e67f9f0c13d7cdf1bb431edcad4a7a4a4653bdb Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Mon, 20 May 2024 11:32:07 +0800 Subject: [PATCH 11/31] feat: update solutions to lc problem: No.2705 (#2851) No.2705.Compact Object --- .../2700-2799/2705.Compact Object/README.md | 47 ++++++++------- .../2705.Compact Object/README_EN.md | 57 +++++++++++-------- .../2700-2799/2705.Compact Object/Solution.js | 23 ++++---- .../2700-2799/2705.Compact Object/Solution.ts | 24 ++++---- 4 files changed, 78 insertions(+), 73 deletions(-) diff --git a/solution/2700-2799/2705.Compact Object/README.md b/solution/2700-2799/2705.Compact Object/README.md index 85eedb03cd868..a28d199df66a7 100644 --- a/solution/2700-2799/2705.Compact Object/README.md +++ b/solution/2700-2799/2705.Compact Object/README.md @@ -78,44 +78,43 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/2700-2799/2705.Co type Obj = Record; function compactObject(obj: Obj): Obj { - if (Array.isArray(obj)) { - const temp = []; - for (const item of obj) { - if (item) { - if (typeof item === 'object') temp.push(compactObject(item)); - else temp.push(item); - } - } - return temp; + if (!obj || typeof obj !== 'object') { + return obj; } - for (const [key, value] of Object.entries(obj)) { - if (!value) delete obj[key]; - else if (typeof value === 'object') obj[key] = compactObject(value); + if (Array.isArray(obj)) { + return obj.map(compactObject).filter(Boolean); } - return obj; + return Object.entries(obj).reduce((acc, [key, value]) => { + const compactedValue = compactObject(value); + if (compactedValue) { + acc[key] = compactedValue; + } + return acc; + }, {} as Obj); } ``` #### JavaScript ```js +/** + * @param {Object|Array} obj + * @return {Object|Array} + */ var compactObject = function (obj) { - if (obj === null || typeof obj !== 'object') { + if (!obj || typeof obj !== 'object') { return obj; } - if (Array.isArray(obj)) { - return obj.filter(Boolean).map(compactObject); + return obj.map(compactObject).filter(Boolean); } - - const result = {}; - for (const key in obj) { - const value = compactObject(obj[key]); - if (Boolean(value)) { - result[key] = value; + return Object.entries(obj).reduce((acc, [key, value]) => { + const compactedValue = compactObject(value); + if (compactedValue) { + acc[key] = compactedValue; } - } - return result; + return acc; + }, {}); }; ``` diff --git a/solution/2700-2799/2705.Compact Object/README_EN.md b/solution/2700-2799/2705.Compact Object/README_EN.md index 8f0388abce004..440aaf1d0006a 100644 --- a/solution/2700-2799/2705.Compact Object/README_EN.md +++ b/solution/2700-2799/2705.Compact Object/README_EN.md @@ -58,7 +58,15 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/2700-2799/2705.Co -### Solution 1 +### Solution 1: Recursion + +If `obj` is not an object or is null, the function will return it as is, because there's no need to check for keys in non-object values. + +If `obj` is an array, it will use `obj.filter(Boolean)` to filter out falsy values (like `null`, `undefined`, `false`, 0, ""), then use `map(compactObject)` to recursively call `compactObject` on each element. This ensures that nested arrays are also compacted. + +If `obj` is an object, it will create a new empty object `compactedObj`. It will iterate over all keys of `obj`, and for each key, it will recursively call `compactObject` on the corresponding value, then store the result in the value variable. If the value is truthy (i.e., not falsy), it will assign it to the compacted object with the corresponding key. + +The time complexity is $O(n)$, and the space complexity is $O(n)$. @@ -68,44 +76,43 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/2700-2799/2705.Co type Obj = Record; function compactObject(obj: Obj): Obj { - if (Array.isArray(obj)) { - const temp = []; - for (const item of obj) { - if (item) { - if (typeof item === 'object') temp.push(compactObject(item)); - else temp.push(item); - } - } - return temp; + if (!obj || typeof obj !== 'object') { + return obj; } - for (const [key, value] of Object.entries(obj)) { - if (!value) delete obj[key]; - else if (typeof value === 'object') obj[key] = compactObject(value); + if (Array.isArray(obj)) { + return obj.map(compactObject).filter(Boolean); } - return obj; + return Object.entries(obj).reduce((acc, [key, value]) => { + const compactedValue = compactObject(value); + if (compactedValue) { + acc[key] = compactedValue; + } + return acc; + }, {} as Obj); } ``` #### JavaScript ```js +/** + * @param {Object|Array} obj + * @return {Object|Array} + */ var compactObject = function (obj) { - if (obj === null || typeof obj !== 'object') { + if (!obj || typeof obj !== 'object') { return obj; } - if (Array.isArray(obj)) { - return obj.filter(Boolean).map(compactObject); + return obj.map(compactObject).filter(Boolean); } - - const result = {}; - for (const key in obj) { - const value = compactObject(obj[key]); - if (Boolean(value)) { - result[key] = value; + return Object.entries(obj).reduce((acc, [key, value]) => { + const compactedValue = compactObject(value); + if (compactedValue) { + acc[key] = compactedValue; } - } - return result; + return acc; + }, {}); }; ``` diff --git a/solution/2700-2799/2705.Compact Object/Solution.js b/solution/2700-2799/2705.Compact Object/Solution.js index 0edd2bc69fa8a..dfec608b4d8d8 100644 --- a/solution/2700-2799/2705.Compact Object/Solution.js +++ b/solution/2700-2799/2705.Compact Object/Solution.js @@ -1,18 +1,19 @@ +/** + * @param {Object|Array} obj + * @return {Object|Array} + */ var compactObject = function (obj) { - if (obj === null || typeof obj !== 'object') { + if (!obj || typeof obj !== 'object') { return obj; } - if (Array.isArray(obj)) { - return obj.filter(Boolean).map(compactObject); + return obj.map(compactObject).filter(Boolean); } - - const result = {}; - for (const key in obj) { - const value = compactObject(obj[key]); - if (Boolean(value)) { - result[key] = value; + return Object.entries(obj).reduce((acc, [key, value]) => { + const compactedValue = compactObject(value); + if (compactedValue) { + acc[key] = compactedValue; } - } - return result; + return acc; + }, {}); }; diff --git a/solution/2700-2799/2705.Compact Object/Solution.ts b/solution/2700-2799/2705.Compact Object/Solution.ts index 654391a62055d..847db1c486bc7 100644 --- a/solution/2700-2799/2705.Compact Object/Solution.ts +++ b/solution/2700-2799/2705.Compact Object/Solution.ts @@ -1,19 +1,17 @@ type Obj = Record; function compactObject(obj: Obj): Obj { - if (Array.isArray(obj)) { - const temp = []; - for (const item of obj) { - if (item) { - if (typeof item === 'object') temp.push(compactObject(item)); - else temp.push(item); - } - } - return temp; + if (!obj || typeof obj !== 'object') { + return obj; } - for (const [key, value] of Object.entries(obj)) { - if (!value) delete obj[key]; - else if (typeof value === 'object') obj[key] = compactObject(value); + if (Array.isArray(obj)) { + return obj.map(compactObject).filter(Boolean); } - return obj; + return Object.entries(obj).reduce((acc, [key, value]) => { + const compactedValue = compactObject(value); + if (compactedValue) { + acc[key] = compactedValue; + } + return acc; + }, {} as Obj); } From 5301c760022c1b84870ce22ae4c3b937d5f84cd0 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Mon, 20 May 2024 11:32:14 +0800 Subject: [PATCH 12/31] feat: update lc problems (#2852) --- .../0278.First Bad Version/README.md | 18 +++--- .../README.md | 4 +- .../0685.Redundant Connection II/README.md | 14 ++--- .../README.md | 4 +- .../0777.Swap Adjacent in LR String/README.md | 24 +++++--- .../2502.Design Memory Allocator/README.md | 2 +- .../2502.Design Memory Allocator/README_EN.md | 22 ++++++- .../README.md | 47 --------------- .../README_EN.md | 59 ++++--------------- .../Solution2.py | 32 ---------- solution/CONTEST_README.md | 2 +- solution/contest.json | 2 +- 12 files changed, 70 insertions(+), 160 deletions(-) delete mode 100644 solution/2500-2599/2503.Maximum Number of Points From Grid Queries/Solution2.py diff --git a/solution/0200-0299/0278.First Bad Version/README.md b/solution/0200-0299/0278.First Bad Version/README.md index 31757964b01fc..19c1f9bc17397 100644 --- a/solution/0200-0299/0278.First Bad Version/README.md +++ b/solution/0200-0299/0278.First Bad Version/README.md @@ -21,34 +21,34 @@ tags:

假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。

-

你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。

-  +

你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。

+  -

示例 1:

+

示例 1:

 输入:n = 5, bad = 4
 输出:4
 解释:
-调用 isBadVersion(3) -> false 
-调用 isBadVersion(5) -> true 
-调用 isBadVersion(4) -> true
+调用 isBadVersion(3) -> false 
+调用 isBadVersion(5) -> true 
+调用 isBadVersion(4) -> true
 所以,4 是第一个错误的版本。
 
-

示例 2:

+

示例 2:

 输入:n = 1, bad = 1
 输出:1
 
-

 

+

 

提示:

    -
  • 1 <= bad <= n <= 231 - 1
  • +
  • 1 <= bad <= n <= 231 - 1
diff --git a/solution/0300-0399/0378.Kth Smallest Element in a Sorted Matrix/README.md b/solution/0300-0399/0378.Kth Smallest Element in a Sorted Matrix/README.md index b1c3f40a96ffc..4bd76e16714fb 100644 --- a/solution/0300-0399/0378.Kth Smallest Element in a Sorted Matrix/README.md +++ b/solution/0300-0399/0378.Kth Smallest Element in a Sorted Matrix/README.md @@ -27,7 +27,7 @@ tags:

 

-

示例 1:

+

示例 1:

 输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8
@@ -35,7 +35,7 @@ tags:
 解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13
 
-

示例 2:

+

示例 2:

 输入:matrix = [[-5]], k = 1
diff --git a/solution/0600-0699/0685.Redundant Connection II/README.md b/solution/0600-0699/0685.Redundant Connection II/README.md
index 3de822d55dfba..74922f18f6423 100644
--- a/solution/0600-0699/0685.Redundant Connection II/README.md	
+++ b/solution/0600-0699/0685.Redundant Connection II/README.md	
@@ -23,35 +23,35 @@ tags:
 
 

输入一个有向图,该图由一个有着 n 个节点(节点值不重复,从 1n)的树及一条附加的有向边构成。附加的边包含在 1n 中的两个不同顶点间,这条附加的边不属于树中已存在的边。

-

结果图是一个以边组成的二维数组 edges 。 每个元素是一对 [ui, vi],用以表示 有向 图中连接顶点 ui 和顶点 vi 的边,其中 uivi 的一个父节点。

+

结果图是一个以边组成的二维数组 edges 。 每个元素是一对 [ui, vi],用以表示 有向 图中连接顶点 ui 和顶点 vi 的边,其中 uivi 的一个父节点。

返回一条能删除的边,使得剩下的图是有 n 个节点的有根树。若有多个答案,返回最后出现在给定二维数组的答案。

-

 

+

 

-

示例 1:

+

示例 1:

 输入:edges = [[1,2],[1,3],[2,3]]
 输出:[2,3]
 
-

示例 2:

+

示例 2:

 输入:edges = [[1,2],[2,3],[3,4],[4,1],[1,5]]
 输出:[4,1]
 
-

 

+

 

提示:

  • n == edges.length
  • -
  • 3 <= n <= 1000
  • +
  • 3 <= n <= 1000
  • edges[i].length == 2
  • -
  • 1 <= ui, vi <= n
  • +
  • 1 <= ui, vi <= n
diff --git a/solution/0700-0799/0702.Search in a Sorted Array of Unknown Size/README.md b/solution/0700-0799/0702.Search in a Sorted Array of Unknown Size/README.md index 517ed49c129b5..0d6ca0f6ab57a 100644 --- a/solution/0700-0799/0702.Search in a Sorted Array of Unknown Size/README.md +++ b/solution/0700-0799/0702.Search in a Sorted Array of Unknown Size/README.md @@ -20,11 +20,11 @@ tags:

这是一个交互问题

-

您有一个升序整数数组,其长度未知。您没有访问数组的权限,但是可以使用 ArrayReader 接口访问它。你可以调用 ArrayReader.get(i):

+

您有一个升序整数数组,其长度未知。您没有访问数组的权限,但是可以使用 ArrayReader 接口访问它。你可以调用 ArrayReader.get(i):

  • -

    返回数组第ith个索引(0-indexed)处的值(即secret[i]),或者

    +

    返回数组第ith个索引(0-indexed)处的值(即 secret[i]),或者

  • 如果 i  超出了数组的边界,则返回 231 - 1

    diff --git a/solution/0700-0799/0777.Swap Adjacent in LR String/README.md b/solution/0700-0799/0777.Swap Adjacent in LR String/README.md index 27981084c818c..97520c1c93886 100644 --- a/solution/0700-0799/0777.Swap Adjacent in LR String/README.md +++ b/solution/0700-0799/0777.Swap Adjacent in LR String/README.md @@ -17,16 +17,16 @@ tags: -

    在一个由 'L' , 'R''X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作。一次移动操作指用一个"LX"替换一个"XL",或者用一个"XR"替换一个"RX"。现给定起始字符串start和结束字符串end,请编写代码,当且仅当存在一系列移动操作使得start可以转换成end时, 返回True

    +

    在一个由 'L' , 'R''X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作。一次移动操作指用一个 "LX" 替换一个 "XL",或者用一个 "XR" 替换一个 "RX"。现给定起始字符串 start 和结束字符串 end,请编写代码,当且仅当存在一系列移动操作使得 start 可以转换成 end 时, 返回 True

     

    -

    示例 :

    +

    示例 1:

    -
    输入: start = "RXXLRXRXL", end = "XRLXXRRLX"
    -输出: True
    -解释:
    -我们可以通过以下几步将start转换成end:
    +
    +输入:start = "RXXLRXRXL", end = "XRLXXRRLX"
    +输出:true
    +解释:通过以下步骤我们可以将 start 转化为 end:
     RXXLRXRXL ->
     XRXLRXRXL ->
     XRLXRXRXL ->
    @@ -34,13 +34,21 @@ XRLXXRRXL ->
     XRLXXRRLX
     
    +

    示例 2:

    + +
    +输入:start = "X", end = "L"
    +输出:false
    +
    +

     

    提示:

      -
    • 1 <= len(start) = len(end) <= 10000
    • -
    • startend中的字符串仅限于'L', 'R''X'
    • +
    • 1 <= start.length <= 104
    • +
    • start.length == end.length
    • +
    • start 和 end 都只包含 'L', 'R' 或 'X'
    diff --git a/solution/2500-2599/2502.Design Memory Allocator/README.md b/solution/2500-2599/2502.Design Memory Allocator/README.md index 9c0c5822c6848..c305de98775d2 100644 --- a/solution/2500-2599/2502.Design Memory Allocator/README.md +++ b/solution/2500-2599/2502.Design Memory Allocator/README.md @@ -88,7 +88,7 @@ loc.free(7); // 释放 mID 为 7 的所有内存单元。内存数组保持原 题目数据范围不大,可以直接用数组模拟内存空间。 -初始化时,将数组中的每个元素置为 0,表示空闲。 +初始化时,将数组中的每个元素置为 $0$,表示空闲。 当调用 `allocate` 方法时,遍历数组,找到连续的 `size` 个空闲内存单元,将其置为 `mID`,并返回第一个下标。 diff --git a/solution/2500-2599/2502.Design Memory Allocator/README_EN.md b/solution/2500-2599/2502.Design Memory Allocator/README_EN.md index 223bc84a35fc5..bec8432abf948 100644 --- a/solution/2500-2599/2502.Design Memory Allocator/README_EN.md +++ b/solution/2500-2599/2502.Design Memory Allocator/README_EN.md @@ -83,7 +83,17 @@ loc.free(7); // Free all memory units with mID 7. The memory array remains the s -### Solution 1 +### Solution 1: Brute Force Simulation + +The data range of the problem is not large, so we can directly use an array to simulate the memory space. + +During initialization, set each element in the array to $0$, indicating it's free. + +When the `allocate` method is called, traverse the array, find `size` consecutive free memory units, set them to `mID`, and return the first index. + +When the `free` method is called, traverse the array, set all memory units equal to `mID` to $0$, indicating they are free. + +The time complexity is $O(n \times q)$, and the space complexity is $O(n)$, where $n$ and $q$ are the size of the memory space and the number of method calls, respectively. @@ -268,7 +278,15 @@ func (this *Allocator) Free(mID int) (ans int) { -### Solution 2 +### Solution 2: Hash Table + Ordered Set + +We can use an ordered set to maintain the start and end indices of all allocated memory units, where the start index is the key and the end index is the value. Additionally, we use a hash table to maintain the `mID` and its corresponding start index of the memory unit. + +When the `allocate` method is called, we traverse the ordered set, find the first free interval with a length greater than or equal to `size`, allocate it to `mID`, and update the ordered set. Then we add the `mID` and its corresponding start index of the memory unit to the hash table. + +When the `free` method is called, we find the start index of the memory unit corresponding to `mID` from the hash table, then delete it from the ordered set, and then delete `mID` from the hash table. + +The time complexity is $O(q \log n)$, and the space complexity is $O(n)$, where $n$ and $q$ are the size of the memory space and the number of method calls, respectively. diff --git a/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/README.md b/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/README.md index 7fd2bd79fb9d4..d35bbe3ccbab9 100644 --- a/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/README.md +++ b/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/README.md @@ -248,51 +248,4 @@ func (h *hp) Pop() any { a := *h; v := a[len(a)-1]; *h = a[:len(a)-1]; - - -### 方法二 - - - -#### Python3 - -```python -class Solution: - def maxPoints(self, grid: List[List[int]], queries: List[int]) -> List[int]: - def find(x): - if p[x] != x: - p[x] = find(p[x]) - return p[x] - - def union(a, b): - pa, pb = find(a), find(b) - if pa == pb: - return - p[pa] = pb - size[pb] += size[pa] - - m, n = len(grid), len(grid[0]) - arr = sorted((grid[i][j], i, j) for i in range(m) for j in range(n)) - k = len(queries) - ans = [0] * k - p = list(range(m * n)) - size = [1] * len(p) - j = 0 - for i, v in sorted(enumerate(queries), key=lambda x: x[1]): - while j < len(arr) and arr[j][0] < v: - _, a, b = arr[j] - for x, y in pairwise((-1, 0, 1, 0, -1)): - c, d = a + x, b + y - if 0 <= c < m and 0 <= d < n and grid[c][d] < v: - union(a * n + b, c * n + d) - j += 1 - if grid[0][0] < v: - ans[i] = size[find(0)] - return ans -``` - - - - - diff --git a/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/README_EN.md b/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/README_EN.md index b1999e6334603..278482693c5d5 100644 --- a/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/README_EN.md +++ b/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/README_EN.md @@ -72,7 +72,17 @@ tags: -### Solution 1 +### Solution 1: Offline Query + BFS + Priority Queue (Min Heap) + +According to the problem description, each query is independent, the order of the queries does not affect the result, and we are required to start from the top left corner each time, counting the number of cells that can be accessed and whose value is less than the current query value. + +Therefore, we can first sort the `queries` array, and then process each query in ascending order. + +We use a priority queue (min heap) to maintain the smallest cell value that we have currently accessed, and use an array or hash table `vis` to record whether the current cell has been visited. Initially, we add the data $(grid[0][0], 0, 0)$ of the top left cell as a tuple to the priority queue, and set `vis[0][0]` to `True`. + +For each query `queries[i]`, we judge whether the minimum value of the current priority queue is less than `queries[i]`. If it is, we pop the current minimum value, increment the counter `cnt`, and add the four cells above, below, left, and right of the current cell to the priority queue, noting to check whether they have been visited. Repeat the above operation until the minimum value of the current priority queue is greater than or equal to `queries[i]`, at which point `cnt` is the answer to the current query. + +The time complexity is $O(k \times \log k + m \times n \log(m \times n))$, and the space complexity is $O(m \times n)$. Where $m$ and $n$ are the number of rows and columns of the grid, and $k$ is the number of queries. We need to sort the `queries` array, which has a time complexity of $O(k \times \log k)$. Each cell in the matrix will be visited at most once, and the time complexity of each enqueue and dequeue operation is $O(\log(m \times n))$. Therefore, the total time complexity is $O(k \times \log k + m \times n \log(m \times n))$. @@ -236,51 +246,4 @@ func (h *hp) Pop() any { a := *h; v := a[len(a)-1]; *h = a[:len(a)-1]; - - -### Solution 2 - - - -#### Python3 - -```python -class Solution: - def maxPoints(self, grid: List[List[int]], queries: List[int]) -> List[int]: - def find(x): - if p[x] != x: - p[x] = find(p[x]) - return p[x] - - def union(a, b): - pa, pb = find(a), find(b) - if pa == pb: - return - p[pa] = pb - size[pb] += size[pa] - - m, n = len(grid), len(grid[0]) - arr = sorted((grid[i][j], i, j) for i in range(m) for j in range(n)) - k = len(queries) - ans = [0] * k - p = list(range(m * n)) - size = [1] * len(p) - j = 0 - for i, v in sorted(enumerate(queries), key=lambda x: x[1]): - while j < len(arr) and arr[j][0] < v: - _, a, b = arr[j] - for x, y in pairwise((-1, 0, 1, 0, -1)): - c, d = a + x, b + y - if 0 <= c < m and 0 <= d < n and grid[c][d] < v: - union(a * n + b, c * n + d) - j += 1 - if grid[0][0] < v: - ans[i] = size[find(0)] - return ans -``` - - - - - diff --git a/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/Solution2.py b/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/Solution2.py deleted file mode 100644 index bdc55851df917..0000000000000 --- a/solution/2500-2599/2503.Maximum Number of Points From Grid Queries/Solution2.py +++ /dev/null @@ -1,32 +0,0 @@ -class Solution: - def maxPoints(self, grid: List[List[int]], queries: List[int]) -> List[int]: - def find(x): - if p[x] != x: - p[x] = find(p[x]) - return p[x] - - def union(a, b): - pa, pb = find(a), find(b) - if pa == pb: - return - p[pa] = pb - size[pb] += size[pa] - - m, n = len(grid), len(grid[0]) - arr = sorted((grid[i][j], i, j) for i in range(m) for j in range(n)) - k = len(queries) - ans = [0] * k - p = list(range(m * n)) - size = [1] * len(p) - j = 0 - for i, v in sorted(enumerate(queries), key=lambda x: x[1]): - while j < len(arr) and arr[j][0] < v: - _, a, b = arr[j] - for x, y in pairwise((-1, 0, 1, 0, -1)): - c, d = a + x, b + y - if 0 <= c < m and 0 <= d < n and grid[c][d] < v: - union(a * n + b, c * n + d) - j += 1 - if grid[0][0] < v: - ans[i] = size[find(0)] - return ans diff --git a/solution/CONTEST_README.md b/solution/CONTEST_README.md index 60696b46c2c7e..560e824a4373f 100644 --- a/solution/CONTEST_README.md +++ b/solution/CONTEST_README.md @@ -26,7 +26,7 @@ comments: true ## 往期竞赛 -#### 第 398 场周赛(2024-05-19 10:30, 90 分钟) 参赛人数 3605 +#### 第 398 场周赛(2024-05-19 10:30, 90 分钟) 参赛人数 3606 - [3151. 特殊数组 I](/solution/3100-3199/3151.Special%20Array%20I/README.md) - [3152. 特殊数组 II](/solution/3100-3199/3152.Special%20Array%20II/README.md) diff --git a/solution/contest.json b/solution/contest.json index 2d592f604265a..33c5880a947dc 100644 --- a/solution/contest.json +++ b/solution/contest.json @@ -1 +1 @@ -[{"contest_title": "\u7b2c 83 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 83", "contest_title_slug": "weekly-contest-83", "contest_id": 5, "contest_start_time": 1525570200, "contest_duration": 5400, "user_num": 58, "question_slugs": ["positions-of-large-groups", "masking-personal-information", "consecutive-numbers-sum", "count-unique-characters-of-all-substrings-of-a-given-string"]}, {"contest_title": "\u7b2c 84 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 84", "contest_title_slug": "weekly-contest-84", "contest_id": 6, "contest_start_time": 1526175000, "contest_duration": 5400, "user_num": 656, "question_slugs": ["flipping-an-image", "find-and-replace-in-string", "image-overlap", "sum-of-distances-in-tree"]}, {"contest_title": "\u7b2c 85 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 85", "contest_title_slug": "weekly-contest-85", "contest_id": 7, "contest_start_time": 1526779800, "contest_duration": 5400, "user_num": 467, "question_slugs": ["rectangle-overlap", "push-dominoes", "new-21-game", "similar-string-groups"]}, {"contest_title": "\u7b2c 86 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 86", "contest_title_slug": "weekly-contest-86", "contest_id": 8, "contest_start_time": 1527384600, "contest_duration": 5400, "user_num": 377, "question_slugs": ["magic-squares-in-grid", "keys-and-rooms", "split-array-into-fibonacci-sequence", "guess-the-word"]}, {"contest_title": "\u7b2c 87 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 87", "contest_title_slug": "weekly-contest-87", "contest_id": 9, "contest_start_time": 1527989400, "contest_duration": 5400, "user_num": 343, "question_slugs": ["backspace-string-compare", "longest-mountain-in-array", "hand-of-straights", "shortest-path-visiting-all-nodes"]}, {"contest_title": "\u7b2c 88 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 88", "contest_title_slug": "weekly-contest-88", "contest_id": 11, "contest_start_time": 1528594200, "contest_duration": 5400, "user_num": 404, "question_slugs": ["shifting-letters", "maximize-distance-to-closest-person", "loud-and-rich", "rectangle-area-ii"]}, {"contest_title": "\u7b2c 89 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 89", "contest_title_slug": "weekly-contest-89", "contest_id": 12, "contest_start_time": 1529199000, "contest_duration": 5400, "user_num": 491, "question_slugs": ["peak-index-in-a-mountain-array", "car-fleet", "exam-room", "k-similar-strings"]}, {"contest_title": "\u7b2c 90 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 90", "contest_title_slug": "weekly-contest-90", "contest_id": 13, "contest_start_time": 1529803800, "contest_duration": 5400, "user_num": 573, "question_slugs": ["buddy-strings", "score-of-parentheses", "mirror-reflection", "minimum-cost-to-hire-k-workers"]}, {"contest_title": "\u7b2c 91 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 91", "contest_title_slug": "weekly-contest-91", "contest_id": 14, "contest_start_time": 1530408600, "contest_duration": 5400, "user_num": 578, "question_slugs": ["lemonade-change", "all-nodes-distance-k-in-binary-tree", "score-after-flipping-matrix", "shortest-subarray-with-sum-at-least-k"]}, {"contest_title": "\u7b2c 92 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 92", "contest_title_slug": "weekly-contest-92", "contest_id": 15, "contest_start_time": 1531013400, "contest_duration": 5400, "user_num": 610, "question_slugs": ["transpose-matrix", "smallest-subtree-with-all-the-deepest-nodes", "prime-palindrome", "shortest-path-to-get-all-keys"]}, {"contest_title": "\u7b2c 93 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 93", "contest_title_slug": "weekly-contest-93", "contest_id": 16, "contest_start_time": 1531618200, "contest_duration": 5400, "user_num": 732, "question_slugs": ["binary-gap", "reordered-power-of-2", "advantage-shuffle", "minimum-number-of-refueling-stops"]}, {"contest_title": "\u7b2c 94 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 94", "contest_title_slug": "weekly-contest-94", "contest_id": 17, "contest_start_time": 1532223000, "contest_duration": 5400, "user_num": 733, "question_slugs": ["leaf-similar-trees", "walking-robot-simulation", "koko-eating-bananas", "length-of-longest-fibonacci-subsequence"]}, {"contest_title": "\u7b2c 95 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 95", "contest_title_slug": "weekly-contest-95", "contest_id": 18, "contest_start_time": 1532827800, "contest_duration": 5400, "user_num": 831, "question_slugs": ["middle-of-the-linked-list", "stone-game", "nth-magical-number", "profitable-schemes"]}, {"contest_title": "\u7b2c 96 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 96", "contest_title_slug": "weekly-contest-96", "contest_id": 19, "contest_start_time": 1533432600, "contest_duration": 5400, "user_num": 789, "question_slugs": ["projection-area-of-3d-shapes", "boats-to-save-people", "decoded-string-at-index", "reachable-nodes-in-subdivided-graph"]}, {"contest_title": "\u7b2c 97 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 97", "contest_title_slug": "weekly-contest-97", "contest_id": 20, "contest_start_time": 1534037400, "contest_duration": 5400, "user_num": 635, "question_slugs": ["uncommon-words-from-two-sentences", "spiral-matrix-iii", "possible-bipartition", "super-egg-drop"]}, {"contest_title": "\u7b2c 98 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 98", "contest_title_slug": "weekly-contest-98", "contest_id": 21, "contest_start_time": 1534642200, "contest_duration": 5400, "user_num": 670, "question_slugs": ["fair-candy-swap", "find-and-replace-pattern", "construct-binary-tree-from-preorder-and-postorder-traversal", "sum-of-subsequence-widths"]}, {"contest_title": "\u7b2c 99 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 99", "contest_title_slug": "weekly-contest-99", "contest_id": 22, "contest_start_time": 1535247000, "contest_duration": 5400, "user_num": 725, "question_slugs": ["surface-area-of-3d-shapes", "groups-of-special-equivalent-strings", "all-possible-full-binary-trees", "maximum-frequency-stack"]}, {"contest_title": "\u7b2c 100 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 100", "contest_title_slug": "weekly-contest-100", "contest_id": 23, "contest_start_time": 1535851800, "contest_duration": 5400, "user_num": 718, "question_slugs": ["monotonic-array", "increasing-order-search-tree", "bitwise-ors-of-subarrays", "orderly-queue"]}, {"contest_title": "\u7b2c 101 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 101", "contest_title_slug": "weekly-contest-101", "contest_id": 24, "contest_start_time": 1536456600, "contest_duration": 6300, "user_num": 854, "question_slugs": ["rle-iterator", "online-stock-span", "numbers-at-most-n-given-digit-set", "valid-permutations-for-di-sequence"]}, {"contest_title": "\u7b2c 102 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 102", "contest_title_slug": "weekly-contest-102", "contest_id": 25, "contest_start_time": 1537061400, "contest_duration": 5400, "user_num": 660, "question_slugs": ["sort-array-by-parity", "fruit-into-baskets", "sum-of-subarray-minimums", "super-palindromes"]}, {"contest_title": "\u7b2c 103 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 103", "contest_title_slug": "weekly-contest-103", "contest_id": 26, "contest_start_time": 1537666200, "contest_duration": 5400, "user_num": 575, "question_slugs": ["smallest-range-i", "snakes-and-ladders", "smallest-range-ii", "online-election"]}, {"contest_title": "\u7b2c 104 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 104", "contest_title_slug": "weekly-contest-104", "contest_id": 27, "contest_start_time": 1538271000, "contest_duration": 5400, "user_num": 354, "question_slugs": ["x-of-a-kind-in-a-deck-of-cards", "partition-array-into-disjoint-intervals", "word-subsets", "cat-and-mouse"]}, {"contest_title": "\u7b2c 105 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 105", "contest_title_slug": "weekly-contest-105", "contest_id": 28, "contest_start_time": 1538875800, "contest_duration": 5400, "user_num": 393, "question_slugs": ["reverse-only-letters", "maximum-sum-circular-subarray", "complete-binary-tree-inserter", "number-of-music-playlists"]}, {"contest_title": "\u7b2c 106 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 106", "contest_title_slug": "weekly-contest-106", "contest_id": 29, "contest_start_time": 1539480600, "contest_duration": 5400, "user_num": 369, "question_slugs": ["sort-array-by-parity-ii", "minimum-add-to-make-parentheses-valid", "3sum-with-multiplicity", "minimize-malware-spread"]}, {"contest_title": "\u7b2c 107 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 107", "contest_title_slug": "weekly-contest-107", "contest_id": 30, "contest_start_time": 1540085400, "contest_duration": 5400, "user_num": 504, "question_slugs": ["long-pressed-name", "flip-string-to-monotone-increasing", "three-equal-parts", "minimize-malware-spread-ii"]}, {"contest_title": "\u7b2c 108 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 108", "contest_title_slug": "weekly-contest-108", "contest_id": 31, "contest_start_time": 1540690200, "contest_duration": 5400, "user_num": 524, "question_slugs": ["unique-email-addresses", "binary-subarrays-with-sum", "minimum-falling-path-sum", "beautiful-array"]}, {"contest_title": "\u7b2c 109 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 109", "contest_title_slug": "weekly-contest-109", "contest_id": 32, "contest_start_time": 1541295000, "contest_duration": 5400, "user_num": 439, "question_slugs": ["number-of-recent-calls", "knight-dialer", "shortest-bridge", "stamping-the-sequence"]}, {"contest_title": "\u7b2c 110 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 110", "contest_title_slug": "weekly-contest-110", "contest_id": 33, "contest_start_time": 1541903400, "contest_duration": 5400, "user_num": 346, "question_slugs": ["reorder-data-in-log-files", "range-sum-of-bst", "minimum-area-rectangle", "distinct-subsequences-ii"]}, {"contest_title": "\u7b2c 111 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 111", "contest_title_slug": "weekly-contest-111", "contest_id": 34, "contest_start_time": 1542508200, "contest_duration": 5400, "user_num": 353, "question_slugs": ["valid-mountain-array", "delete-columns-to-make-sorted", "di-string-match", "find-the-shortest-superstring"]}, {"contest_title": "\u7b2c 112 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 112", "contest_title_slug": "weekly-contest-112", "contest_id": 35, "contest_start_time": 1543113000, "contest_duration": 5400, "user_num": 299, "question_slugs": ["minimum-increment-to-make-array-unique", "validate-stack-sequences", "most-stones-removed-with-same-row-or-column", "bag-of-tokens"]}, {"contest_title": "\u7b2c 113 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 113", "contest_title_slug": "weekly-contest-113", "contest_id": 36, "contest_start_time": 1543717800, "contest_duration": 5400, "user_num": 462, "question_slugs": ["largest-time-for-given-digits", "flip-equivalent-binary-trees", "reveal-cards-in-increasing-order", "largest-component-size-by-common-factor"]}, {"contest_title": "\u7b2c 114 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 114", "contest_title_slug": "weekly-contest-114", "contest_id": 37, "contest_start_time": 1544322600, "contest_duration": 5400, "user_num": 391, "question_slugs": ["verifying-an-alien-dictionary", "array-of-doubled-pairs", "delete-columns-to-make-sorted-ii", "tallest-billboard"]}, {"contest_title": "\u7b2c 115 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 115", "contest_title_slug": "weekly-contest-115", "contest_id": 38, "contest_start_time": 1544927400, "contest_duration": 5400, "user_num": 383, "question_slugs": ["prison-cells-after-n-days", "check-completeness-of-a-binary-tree", "regions-cut-by-slashes", "delete-columns-to-make-sorted-iii"]}, {"contest_title": "\u7b2c 116 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 116", "contest_title_slug": "weekly-contest-116", "contest_id": 39, "contest_start_time": 1545532200, "contest_duration": 5400, "user_num": 369, "question_slugs": ["n-repeated-element-in-size-2n-array", "maximum-width-ramp", "minimum-area-rectangle-ii", "least-operators-to-express-number"]}, {"contest_title": "\u7b2c 117 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 117", "contest_title_slug": "weekly-contest-117", "contest_id": 41, "contest_start_time": 1546137000, "contest_duration": 5400, "user_num": 657, "question_slugs": ["univalued-binary-tree", "numbers-with-same-consecutive-differences", "vowel-spellchecker", "binary-tree-cameras"]}, {"contest_title": "\u7b2c 118 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 118", "contest_title_slug": "weekly-contest-118", "contest_id": 42, "contest_start_time": 1546741800, "contest_duration": 5400, "user_num": 383, "question_slugs": ["powerful-integers", "pancake-sorting", "flip-binary-tree-to-match-preorder-traversal", "equal-rational-numbers"]}, {"contest_title": "\u7b2c 119 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 119", "contest_title_slug": "weekly-contest-119", "contest_id": 43, "contest_start_time": 1547346600, "contest_duration": 5400, "user_num": 513, "question_slugs": ["k-closest-points-to-origin", "largest-perimeter-triangle", "subarray-sums-divisible-by-k", "odd-even-jump"]}, {"contest_title": "\u7b2c 120 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 120", "contest_title_slug": "weekly-contest-120", "contest_id": 44, "contest_start_time": 1547951400, "contest_duration": 5400, "user_num": 382, "question_slugs": ["squares-of-a-sorted-array", "longest-turbulent-subarray", "distribute-coins-in-binary-tree", "unique-paths-iii"]}, {"contest_title": "\u7b2c 121 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 121", "contest_title_slug": "weekly-contest-121", "contest_id": 45, "contest_start_time": 1548556200, "contest_duration": 5400, "user_num": 384, "question_slugs": ["string-without-aaa-or-bbb", "time-based-key-value-store", "minimum-cost-for-tickets", "triples-with-bitwise-and-equal-to-zero"]}, {"contest_title": "\u7b2c 122 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 122", "contest_title_slug": "weekly-contest-122", "contest_id": 46, "contest_start_time": 1549161000, "contest_duration": 5400, "user_num": 280, "question_slugs": ["sum-of-even-numbers-after-queries", "smallest-string-starting-from-leaf", "interval-list-intersections", "vertical-order-traversal-of-a-binary-tree"]}, {"contest_title": "\u7b2c 123 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 123", "contest_title_slug": "weekly-contest-123", "contest_id": 47, "contest_start_time": 1549765800, "contest_duration": 5400, "user_num": 247, "question_slugs": ["add-to-array-form-of-integer", "satisfiability-of-equality-equations", "broken-calculator", "subarrays-with-k-different-integers"]}, {"contest_title": "\u7b2c 124 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 124", "contest_title_slug": "weekly-contest-124", "contest_id": 48, "contest_start_time": 1550370600, "contest_duration": 5400, "user_num": 417, "question_slugs": ["cousins-in-binary-tree", "rotting-oranges", "minimum-number-of-k-consecutive-bit-flips", "number-of-squareful-arrays"]}, {"contest_title": "\u7b2c 125 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 125", "contest_title_slug": "weekly-contest-125", "contest_id": 49, "contest_start_time": 1550975400, "contest_duration": 5400, "user_num": 469, "question_slugs": ["find-the-town-judge", "available-captures-for-rook", "maximum-binary-tree-ii", "grid-illumination"]}, {"contest_title": "\u7b2c 126 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 126", "contest_title_slug": "weekly-contest-126", "contest_id": 50, "contest_start_time": 1551580200, "contest_duration": 5400, "user_num": 591, "question_slugs": ["find-common-characters", "check-if-word-is-valid-after-substitutions", "max-consecutive-ones-iii", "minimum-cost-to-merge-stones"]}, {"contest_title": "\u7b2c 127 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 127", "contest_title_slug": "weekly-contest-127", "contest_id": 52, "contest_start_time": 1552185000, "contest_duration": 5400, "user_num": 664, "question_slugs": ["maximize-sum-of-array-after-k-negations", "clumsy-factorial", "minimum-domino-rotations-for-equal-row", "construct-binary-search-tree-from-preorder-traversal"]}, {"contest_title": "\u7b2c 128 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 128", "contest_title_slug": "weekly-contest-128", "contest_id": 53, "contest_start_time": 1552789800, "contest_duration": 5400, "user_num": 1251, "question_slugs": ["complement-of-base-10-integer", "pairs-of-songs-with-total-durations-divisible-by-60", "capacity-to-ship-packages-within-d-days", "numbers-with-repeated-digits"]}, {"contest_title": "\u7b2c 129 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 129", "contest_title_slug": "weekly-contest-129", "contest_id": 54, "contest_start_time": 1553391000, "contest_duration": 5400, "user_num": 759, "question_slugs": ["partition-array-into-three-parts-with-equal-sum", "smallest-integer-divisible-by-k", "best-sightseeing-pair", "binary-string-with-substrings-representing-1-to-n"]}, {"contest_title": "\u7b2c 130 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 130", "contest_title_slug": "weekly-contest-130", "contest_id": 55, "contest_start_time": 1553999400, "contest_duration": 5400, "user_num": 1294, "question_slugs": ["binary-prefix-divisible-by-5", "convert-to-base-2", "next-greater-node-in-linked-list", "number-of-enclaves"]}, {"contest_title": "\u7b2c 131 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 131", "contest_title_slug": "weekly-contest-131", "contest_id": 56, "contest_start_time": 1554604200, "contest_duration": 5400, "user_num": 918, "question_slugs": ["remove-outermost-parentheses", "sum-of-root-to-leaf-binary-numbers", "camelcase-matching", "video-stitching"]}, {"contest_title": "\u7b2c 132 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 132", "contest_title_slug": "weekly-contest-132", "contest_id": 57, "contest_start_time": 1555209000, "contest_duration": 5400, "user_num": 1049, "question_slugs": ["divisor-game", "maximum-difference-between-node-and-ancestor", "longest-arithmetic-subsequence", "recover-a-tree-from-preorder-traversal"]}, {"contest_title": "\u7b2c 133 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 133", "contest_title_slug": "weekly-contest-133", "contest_id": 59, "contest_start_time": 1555813800, "contest_duration": 5400, "user_num": 999, "question_slugs": ["two-city-scheduling", "matrix-cells-in-distance-order", "maximum-sum-of-two-non-overlapping-subarrays", "stream-of-characters"]}, {"contest_title": "\u7b2c 134 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 134", "contest_title_slug": "weekly-contest-134", "contest_id": 64, "contest_start_time": 1556418600, "contest_duration": 5400, "user_num": 728, "question_slugs": ["moving-stones-until-consecutive", "coloring-a-border", "uncrossed-lines", "escape-a-large-maze"]}, {"contest_title": "\u7b2c 135 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 135", "contest_title_slug": "weekly-contest-135", "contest_id": 65, "contest_start_time": 1557023400, "contest_duration": 5400, "user_num": 548, "question_slugs": ["valid-boomerang", "binary-search-tree-to-greater-sum-tree", "minimum-score-triangulation-of-polygon", "moving-stones-until-consecutive-ii"]}, {"contest_title": "\u7b2c 136 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 136", "contest_title_slug": "weekly-contest-136", "contest_id": 66, "contest_start_time": 1557628200, "contest_duration": 5400, "user_num": 790, "question_slugs": ["robot-bounded-in-circle", "flower-planting-with-no-adjacent", "partition-array-for-maximum-sum", "longest-duplicate-substring"]}, {"contest_title": "\u7b2c 137 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 137", "contest_title_slug": "weekly-contest-137", "contest_id": 67, "contest_start_time": 1558233000, "contest_duration": 5400, "user_num": 766, "question_slugs": ["last-stone-weight", "remove-all-adjacent-duplicates-in-string", "longest-string-chain", "last-stone-weight-ii"]}, {"contest_title": "\u7b2c 138 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 138", "contest_title_slug": "weekly-contest-138", "contest_id": 68, "contest_start_time": 1558837800, "contest_duration": 5400, "user_num": 752, "question_slugs": ["height-checker", "grumpy-bookstore-owner", "previous-permutation-with-one-swap", "distant-barcodes"]}, {"contest_title": "\u7b2c 139 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 139", "contest_title_slug": "weekly-contest-139", "contest_id": 69, "contest_start_time": 1559442600, "contest_duration": 5400, "user_num": 785, "question_slugs": ["greatest-common-divisor-of-strings", "flip-columns-for-maximum-number-of-equal-rows", "adding-two-negabinary-numbers", "number-of-submatrices-that-sum-to-target"]}, {"contest_title": "\u7b2c 140 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 140", "contest_title_slug": "weekly-contest-140", "contest_id": 71, "contest_start_time": 1560047400, "contest_duration": 5400, "user_num": 660, "question_slugs": ["occurrences-after-bigram", "letter-tile-possibilities", "insufficient-nodes-in-root-to-leaf-paths", "smallest-subsequence-of-distinct-characters"]}, {"contest_title": "\u7b2c 141 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 141", "contest_title_slug": "weekly-contest-141", "contest_id": 72, "contest_start_time": 1560652200, "contest_duration": 5400, "user_num": 763, "question_slugs": ["duplicate-zeros", "largest-values-from-labels", "shortest-path-in-binary-matrix", "shortest-common-supersequence"]}, {"contest_title": "\u7b2c 142 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 142", "contest_title_slug": "weekly-contest-142", "contest_id": 74, "contest_start_time": 1561257000, "contest_duration": 5400, "user_num": 801, "question_slugs": ["statistics-from-a-large-sample", "car-pooling", "find-in-mountain-array", "brace-expansion-ii"]}, {"contest_title": "\u7b2c 143 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 143", "contest_title_slug": "weekly-contest-143", "contest_id": 84, "contest_start_time": 1561861800, "contest_duration": 5400, "user_num": 803, "question_slugs": ["distribute-candies-to-people", "path-in-zigzag-labelled-binary-tree", "filling-bookcase-shelves", "parsing-a-boolean-expression"]}, {"contest_title": "\u7b2c 144 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 144", "contest_title_slug": "weekly-contest-144", "contest_id": 86, "contest_start_time": 1562466600, "contest_duration": 5400, "user_num": 777, "question_slugs": ["defanging-an-ip-address", "corporate-flight-bookings", "delete-nodes-and-return-forest", "maximum-nesting-depth-of-two-valid-parentheses-strings"]}, {"contest_title": "\u7b2c 145 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 145", "contest_title_slug": "weekly-contest-145", "contest_id": 87, "contest_start_time": 1563071400, "contest_duration": 5400, "user_num": 1114, "question_slugs": ["relative-sort-array", "lowest-common-ancestor-of-deepest-leaves", "longest-well-performing-interval", "smallest-sufficient-team"]}, {"contest_title": "\u7b2c 146 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 146", "contest_title_slug": "weekly-contest-146", "contest_id": 89, "contest_start_time": 1563676200, "contest_duration": 5400, "user_num": 1189, "question_slugs": ["number-of-equivalent-domino-pairs", "shortest-path-with-alternating-colors", "minimum-cost-tree-from-leaf-values", "maximum-of-absolute-value-expression"]}, {"contest_title": "\u7b2c 147 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 147", "contest_title_slug": "weekly-contest-147", "contest_id": 90, "contest_start_time": 1564281000, "contest_duration": 5400, "user_num": 1132, "question_slugs": ["n-th-tribonacci-number", "alphabet-board-path", "largest-1-bordered-square", "stone-game-ii"]}, {"contest_title": "\u7b2c 148 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 148", "contest_title_slug": "weekly-contest-148", "contest_id": 93, "contest_start_time": 1564885800, "contest_duration": 5400, "user_num": 1251, "question_slugs": ["decrease-elements-to-make-array-zigzag", "binary-tree-coloring-game", "snapshot-array", "longest-chunked-palindrome-decomposition"]}, {"contest_title": "\u7b2c 149 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 149", "contest_title_slug": "weekly-contest-149", "contest_id": 94, "contest_start_time": 1565490600, "contest_duration": 5400, "user_num": 1351, "question_slugs": ["day-of-the-year", "number-of-dice-rolls-with-target-sum", "swap-for-longest-repeated-character-substring", "online-majority-element-in-subarray"]}, {"contest_title": "\u7b2c 150 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 150", "contest_title_slug": "weekly-contest-150", "contest_id": 96, "contest_start_time": 1566095400, "contest_duration": 5400, "user_num": 1473, "question_slugs": ["find-words-that-can-be-formed-by-characters", "maximum-level-sum-of-a-binary-tree", "as-far-from-land-as-possible", "last-substring-in-lexicographical-order"]}, {"contest_title": "\u7b2c 151 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 151", "contest_title_slug": "weekly-contest-151", "contest_id": 98, "contest_start_time": 1566700200, "contest_duration": 5400, "user_num": 1341, "question_slugs": ["invalid-transactions", "compare-strings-by-frequency-of-the-smallest-character", "remove-zero-sum-consecutive-nodes-from-linked-list", "dinner-plate-stacks"]}, {"contest_title": "\u7b2c 152 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 152", "contest_title_slug": "weekly-contest-152", "contest_id": 100, "contest_start_time": 1567305000, "contest_duration": 5400, "user_num": 1367, "question_slugs": ["prime-arrangements", "diet-plan-performance", "can-make-palindrome-from-substring", "number-of-valid-words-for-each-puzzle"]}, {"contest_title": "\u7b2c 153 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 153", "contest_title_slug": "weekly-contest-153", "contest_id": 102, "contest_start_time": 1567909800, "contest_duration": 5400, "user_num": 1434, "question_slugs": ["distance-between-bus-stops", "day-of-the-week", "maximum-subarray-sum-with-one-deletion", "make-array-strictly-increasing"]}, {"contest_title": "\u7b2c 154 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 154", "contest_title_slug": "weekly-contest-154", "contest_id": 106, "contest_start_time": 1568514600, "contest_duration": 5400, "user_num": 1299, "question_slugs": ["maximum-number-of-balloons", "reverse-substrings-between-each-pair-of-parentheses", "k-concatenation-maximum-sum", "critical-connections-in-a-network"]}, {"contest_title": "\u7b2c 155 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 155", "contest_title_slug": "weekly-contest-155", "contest_id": 107, "contest_start_time": 1569119400, "contest_duration": 5400, "user_num": 1603, "question_slugs": ["minimum-absolute-difference", "ugly-number-iii", "smallest-string-with-swaps", "sort-items-by-groups-respecting-dependencies"]}, {"contest_title": "\u7b2c 156 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 156", "contest_title_slug": "weekly-contest-156", "contest_id": 113, "contest_start_time": 1569724200, "contest_duration": 5400, "user_num": 1433, "question_slugs": ["unique-number-of-occurrences", "get-equal-substrings-within-budget", "remove-all-adjacent-duplicates-in-string-ii", "minimum-moves-to-reach-target-with-rotations"]}, {"contest_title": "\u7b2c 157 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 157", "contest_title_slug": "weekly-contest-157", "contest_id": 114, "contest_start_time": 1570329000, "contest_duration": 5400, "user_num": 1217, "question_slugs": ["minimum-cost-to-move-chips-to-the-same-position", "longest-arithmetic-subsequence-of-given-difference", "path-with-maximum-gold", "count-vowels-permutation"]}, {"contest_title": "\u7b2c 158 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 158", "contest_title_slug": "weekly-contest-158", "contest_id": 116, "contest_start_time": 1570933800, "contest_duration": 5400, "user_num": 1716, "question_slugs": ["split-a-string-in-balanced-strings", "queens-that-can-attack-the-king", "dice-roll-simulation", "maximum-equal-frequency"]}, {"contest_title": "\u7b2c 159 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 159", "contest_title_slug": "weekly-contest-159", "contest_id": 117, "contest_start_time": 1571538600, "contest_duration": 5400, "user_num": 1634, "question_slugs": ["check-if-it-is-a-straight-line", "remove-sub-folders-from-the-filesystem", "replace-the-substring-for-balanced-string", "maximum-profit-in-job-scheduling"]}, {"contest_title": "\u7b2c 160 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 160", "contest_title_slug": "weekly-contest-160", "contest_id": 119, "contest_start_time": 1572143400, "contest_duration": 5400, "user_num": 1692, "question_slugs": ["find-positive-integer-solution-for-a-given-equation", "circular-permutation-in-binary-representation", "maximum-length-of-a-concatenated-string-with-unique-characters", "tiling-a-rectangle-with-the-fewest-squares"]}, {"contest_title": "\u7b2c 161 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 161", "contest_title_slug": "weekly-contest-161", "contest_id": 120, "contest_start_time": 1572748200, "contest_duration": 5400, "user_num": 1610, "question_slugs": ["minimum-swaps-to-make-strings-equal", "count-number-of-nice-subarrays", "minimum-remove-to-make-valid-parentheses", "check-if-it-is-a-good-array"]}, {"contest_title": "\u7b2c 162 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 162", "contest_title_slug": "weekly-contest-162", "contest_id": 122, "contest_start_time": 1573353000, "contest_duration": 5400, "user_num": 1569, "question_slugs": ["cells-with-odd-values-in-a-matrix", "reconstruct-a-2-row-binary-matrix", "number-of-closed-islands", "maximum-score-words-formed-by-letters"]}, {"contest_title": "\u7b2c 163 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 163", "contest_title_slug": "weekly-contest-163", "contest_id": 123, "contest_start_time": 1573957800, "contest_duration": 5400, "user_num": 1605, "question_slugs": ["shift-2d-grid", "find-elements-in-a-contaminated-binary-tree", "greatest-sum-divisible-by-three", "minimum-moves-to-move-a-box-to-their-target-location"]}, {"contest_title": "\u7b2c 164 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 164", "contest_title_slug": "weekly-contest-164", "contest_id": 125, "contest_start_time": 1574562600, "contest_duration": 5400, "user_num": 1676, "question_slugs": ["minimum-time-visiting-all-points", "count-servers-that-communicate", "search-suggestions-system", "number-of-ways-to-stay-in-the-same-place-after-some-steps"]}, {"contest_title": "\u7b2c 165 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 165", "contest_title_slug": "weekly-contest-165", "contest_id": 128, "contest_start_time": 1575167400, "contest_duration": 5400, "user_num": 1660, "question_slugs": ["find-winner-on-a-tic-tac-toe-game", "number-of-burgers-with-no-waste-of-ingredients", "count-square-submatrices-with-all-ones", "palindrome-partitioning-iii"]}, {"contest_title": "\u7b2c 166 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 166", "contest_title_slug": "weekly-contest-166", "contest_id": 130, "contest_start_time": 1575772200, "contest_duration": 5400, "user_num": 1676, "question_slugs": ["subtract-the-product-and-sum-of-digits-of-an-integer", "group-the-people-given-the-group-size-they-belong-to", "find-the-smallest-divisor-given-a-threshold", "minimum-number-of-flips-to-convert-binary-matrix-to-zero-matrix"]}, {"contest_title": "\u7b2c 167 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 167", "contest_title_slug": "weekly-contest-167", "contest_id": 131, "contest_start_time": 1576377000, "contest_duration": 5400, "user_num": 1537, "question_slugs": ["convert-binary-number-in-a-linked-list-to-integer", "sequential-digits", "maximum-side-length-of-a-square-with-sum-less-than-or-equal-to-threshold", "shortest-path-in-a-grid-with-obstacles-elimination"]}, {"contest_title": "\u7b2c 168 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 168", "contest_title_slug": "weekly-contest-168", "contest_id": 133, "contest_start_time": 1576981800, "contest_duration": 5400, "user_num": 1553, "question_slugs": ["find-numbers-with-even-number-of-digits", "divide-array-in-sets-of-k-consecutive-numbers", "maximum-number-of-occurrences-of-a-substring", "maximum-candies-you-can-get-from-boxes"]}, {"contest_title": "\u7b2c 169 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 169", "contest_title_slug": "weekly-contest-169", "contest_id": 134, "contest_start_time": 1577586600, "contest_duration": 5400, "user_num": 1568, "question_slugs": ["find-n-unique-integers-sum-up-to-zero", "all-elements-in-two-binary-search-trees", "jump-game-iii", "verbal-arithmetic-puzzle"]}, {"contest_title": "\u7b2c 170 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 170", "contest_title_slug": "weekly-contest-170", "contest_id": 136, "contest_start_time": 1578191400, "contest_duration": 5400, "user_num": 1649, "question_slugs": ["decrypt-string-from-alphabet-to-integer-mapping", "xor-queries-of-a-subarray", "get-watched-videos-by-your-friends", "minimum-insertion-steps-to-make-a-string-palindrome"]}, {"contest_title": "\u7b2c 171 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 171", "contest_title_slug": "weekly-contest-171", "contest_id": 137, "contest_start_time": 1578796200, "contest_duration": 5400, "user_num": 1708, "question_slugs": ["convert-integer-to-the-sum-of-two-no-zero-integers", "minimum-flips-to-make-a-or-b-equal-to-c", "number-of-operations-to-make-network-connected", "minimum-distance-to-type-a-word-using-two-fingers"]}, {"contest_title": "\u7b2c 172 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 172", "contest_title_slug": "weekly-contest-172", "contest_id": 139, "contest_start_time": 1579401000, "contest_duration": 5400, "user_num": 1415, "question_slugs": ["maximum-69-number", "print-words-vertically", "delete-leaves-with-a-given-value", "minimum-number-of-taps-to-open-to-water-a-garden"]}, {"contest_title": "\u7b2c 173 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 173", "contest_title_slug": "weekly-contest-173", "contest_id": 142, "contest_start_time": 1580005800, "contest_duration": 5400, "user_num": 1072, "question_slugs": ["remove-palindromic-subsequences", "filter-restaurants-by-vegan-friendly-price-and-distance", "find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance", "minimum-difficulty-of-a-job-schedule"]}, {"contest_title": "\u7b2c 174 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 174", "contest_title_slug": "weekly-contest-174", "contest_id": 144, "contest_start_time": 1580610600, "contest_duration": 5400, "user_num": 1660, "question_slugs": ["the-k-weakest-rows-in-a-matrix", "reduce-array-size-to-the-half", "maximum-product-of-splitted-binary-tree", "jump-game-v"]}, {"contest_title": "\u7b2c 175 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 175", "contest_title_slug": "weekly-contest-175", "contest_id": 145, "contest_start_time": 1581215400, "contest_duration": 5400, "user_num": 2048, "question_slugs": ["check-if-n-and-its-double-exist", "minimum-number-of-steps-to-make-two-strings-anagram", "tweet-counts-per-frequency", "maximum-students-taking-exam"]}, {"contest_title": "\u7b2c 176 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 176", "contest_title_slug": "weekly-contest-176", "contest_id": 147, "contest_start_time": 1581820200, "contest_duration": 5400, "user_num": 2410, "question_slugs": ["count-negative-numbers-in-a-sorted-matrix", "product-of-the-last-k-numbers", "maximum-number-of-events-that-can-be-attended", "construct-target-array-with-multiple-sums"]}, {"contest_title": "\u7b2c 177 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 177", "contest_title_slug": "weekly-contest-177", "contest_id": 148, "contest_start_time": 1582425000, "contest_duration": 5400, "user_num": 2986, "question_slugs": ["number-of-days-between-two-dates", "validate-binary-tree-nodes", "closest-divisors", "largest-multiple-of-three"]}, {"contest_title": "\u7b2c 178 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 178", "contest_title_slug": "weekly-contest-178", "contest_id": 154, "contest_start_time": 1583029800, "contest_duration": 5400, "user_num": 3305, "question_slugs": ["how-many-numbers-are-smaller-than-the-current-number", "rank-teams-by-votes", "linked-list-in-binary-tree", "minimum-cost-to-make-at-least-one-valid-path-in-a-grid"]}, {"contest_title": "\u7b2c 179 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 179", "contest_title_slug": "weekly-contest-179", "contest_id": 156, "contest_start_time": 1583634600, "contest_duration": 5400, "user_num": 3606, "question_slugs": ["generate-a-string-with-characters-that-have-odd-counts", "number-of-times-binary-string-is-prefix-aligned", "time-needed-to-inform-all-employees", "frog-position-after-t-seconds"]}, {"contest_title": "\u7b2c 180 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 180", "contest_title_slug": "weekly-contest-180", "contest_id": 160, "contest_start_time": 1584239400, "contest_duration": 5400, "user_num": 3715, "question_slugs": ["lucky-numbers-in-a-matrix", "design-a-stack-with-increment-operation", "balance-a-binary-search-tree", "maximum-performance-of-a-team"]}, {"contest_title": "\u7b2c 181 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 181", "contest_title_slug": "weekly-contest-181", "contest_id": 162, "contest_start_time": 1584844200, "contest_duration": 5400, "user_num": 4149, "question_slugs": ["create-target-array-in-the-given-order", "four-divisors", "check-if-there-is-a-valid-path-in-a-grid", "longest-happy-prefix"]}, {"contest_title": "\u7b2c 182 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 182", "contest_title_slug": "weekly-contest-182", "contest_id": 166, "contest_start_time": 1585449000, "contest_duration": 5400, "user_num": 3911, "question_slugs": ["find-lucky-integer-in-an-array", "count-number-of-teams", "design-underground-system", "find-all-good-strings"]}, {"contest_title": "\u7b2c 183 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 183", "contest_title_slug": "weekly-contest-183", "contest_id": 168, "contest_start_time": 1586053800, "contest_duration": 5400, "user_num": 3756, "question_slugs": ["minimum-subsequence-in-non-increasing-order", "number-of-steps-to-reduce-a-number-in-binary-representation-to-one", "longest-happy-string", "stone-game-iii"]}, {"contest_title": "\u7b2c 184 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 184", "contest_title_slug": "weekly-contest-184", "contest_id": 175, "contest_start_time": 1586658600, "contest_duration": 5400, "user_num": 3847, "question_slugs": ["string-matching-in-an-array", "queries-on-a-permutation-with-key", "html-entity-parser", "number-of-ways-to-paint-n-3-grid"]}, {"contest_title": "\u7b2c 185 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 185", "contest_title_slug": "weekly-contest-185", "contest_id": 177, "contest_start_time": 1587263400, "contest_duration": 5400, "user_num": 5004, "question_slugs": ["reformat-the-string", "display-table-of-food-orders-in-a-restaurant", "minimum-number-of-frogs-croaking", "build-array-where-you-can-find-the-maximum-exactly-k-comparisons"]}, {"contest_title": "\u7b2c 186 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 186", "contest_title_slug": "weekly-contest-186", "contest_id": 185, "contest_start_time": 1587868200, "contest_duration": 5400, "user_num": 3108, "question_slugs": ["maximum-score-after-splitting-a-string", "maximum-points-you-can-obtain-from-cards", "diagonal-traverse-ii", "constrained-subsequence-sum"]}, {"contest_title": "\u7b2c 187 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 187", "contest_title_slug": "weekly-contest-187", "contest_id": 191, "contest_start_time": 1588473000, "contest_duration": 5400, "user_num": 3109, "question_slugs": ["destination-city", "check-if-all-1s-are-at-least-length-k-places-away", "longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit", "find-the-kth-smallest-sum-of-a-matrix-with-sorted-rows"]}, {"contest_title": "\u7b2c 188 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 188", "contest_title_slug": "weekly-contest-188", "contest_id": 195, "contest_start_time": 1589077800, "contest_duration": 5400, "user_num": 3982, "question_slugs": ["build-an-array-with-stack-operations", "count-triplets-that-can-form-two-arrays-of-equal-xor", "minimum-time-to-collect-all-apples-in-a-tree", "number-of-ways-of-cutting-a-pizza"]}, {"contest_title": "\u7b2c 189 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 189", "contest_title_slug": "weekly-contest-189", "contest_id": 197, "contest_start_time": 1589682600, "contest_duration": 5400, "user_num": 3692, "question_slugs": ["number-of-students-doing-homework-at-a-given-time", "rearrange-words-in-a-sentence", "people-whose-list-of-favorite-companies-is-not-a-subset-of-another-list", "maximum-number-of-darts-inside-of-a-circular-dartboard"]}, {"contest_title": "\u7b2c 190 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 190", "contest_title_slug": "weekly-contest-190", "contest_id": 201, "contest_start_time": 1590287400, "contest_duration": 5400, "user_num": 3352, "question_slugs": ["check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence", "maximum-number-of-vowels-in-a-substring-of-given-length", "pseudo-palindromic-paths-in-a-binary-tree", "max-dot-product-of-two-subsequences"]}, {"contest_title": "\u7b2c 191 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 191", "contest_title_slug": "weekly-contest-191", "contest_id": 203, "contest_start_time": 1590892200, "contest_duration": 5400, "user_num": 3687, "question_slugs": ["maximum-product-of-two-elements-in-an-array", "maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts", "reorder-routes-to-make-all-paths-lead-to-the-city-zero", "probability-of-a-two-boxes-having-the-same-number-of-distinct-balls"]}, {"contest_title": "\u7b2c 192 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 192", "contest_title_slug": "weekly-contest-192", "contest_id": 207, "contest_start_time": 1591497000, "contest_duration": 5400, "user_num": 3615, "question_slugs": ["shuffle-the-array", "the-k-strongest-values-in-an-array", "design-browser-history", "paint-house-iii"]}, {"contest_title": "\u7b2c 193 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 193", "contest_title_slug": "weekly-contest-193", "contest_id": 209, "contest_start_time": 1592101800, "contest_duration": 5400, "user_num": 3804, "question_slugs": ["running-sum-of-1d-array", "least-number-of-unique-integers-after-k-removals", "minimum-number-of-days-to-make-m-bouquets", "kth-ancestor-of-a-tree-node"]}, {"contest_title": "\u7b2c 194 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 194", "contest_title_slug": "weekly-contest-194", "contest_id": 213, "contest_start_time": 1592706600, "contest_duration": 5400, "user_num": 4378, "question_slugs": ["xor-operation-in-an-array", "making-file-names-unique", "avoid-flood-in-the-city", "find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree"]}, {"contest_title": "\u7b2c 195 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 195", "contest_title_slug": "weekly-contest-195", "contest_id": 215, "contest_start_time": 1593311400, "contest_duration": 5400, "user_num": 3401, "question_slugs": ["path-crossing", "check-if-array-pairs-are-divisible-by-k", "number-of-subsequences-that-satisfy-the-given-sum-condition", "max-value-of-equation"]}, {"contest_title": "\u7b2c 196 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 196", "contest_title_slug": "weekly-contest-196", "contest_id": 219, "contest_start_time": 1593916200, "contest_duration": 5400, "user_num": 5507, "question_slugs": ["can-make-arithmetic-progression-from-sequence", "last-moment-before-all-ants-fall-out-of-a-plank", "count-submatrices-with-all-ones", "minimum-possible-integer-after-at-most-k-adjacent-swaps-on-digits"]}, {"contest_title": "\u7b2c 197 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 197", "contest_title_slug": "weekly-contest-197", "contest_id": 221, "contest_start_time": 1594521000, "contest_duration": 5400, "user_num": 5275, "question_slugs": ["number-of-good-pairs", "number-of-substrings-with-only-1s", "path-with-maximum-probability", "best-position-for-a-service-centre"]}, {"contest_title": "\u7b2c 198 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 198", "contest_title_slug": "weekly-contest-198", "contest_id": 226, "contest_start_time": 1595125800, "contest_duration": 5400, "user_num": 5780, "question_slugs": ["water-bottles", "number-of-nodes-in-the-sub-tree-with-the-same-label", "maximum-number-of-non-overlapping-substrings", "find-a-value-of-a-mysterious-function-closest-to-target"]}, {"contest_title": "\u7b2c 199 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 199", "contest_title_slug": "weekly-contest-199", "contest_id": 228, "contest_start_time": 1595730600, "contest_duration": 5400, "user_num": 5232, "question_slugs": ["shuffle-string", "minimum-suffix-flips", "number-of-good-leaf-nodes-pairs", "string-compression-ii"]}, {"contest_title": "\u7b2c 200 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 200", "contest_title_slug": "weekly-contest-200", "contest_id": 235, "contest_start_time": 1596335400, "contest_duration": 5400, "user_num": 5476, "question_slugs": ["count-good-triplets", "find-the-winner-of-an-array-game", "minimum-swaps-to-arrange-a-binary-grid", "get-the-maximum-score"]}, {"contest_title": "\u7b2c 201 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 201", "contest_title_slug": "weekly-contest-201", "contest_id": 238, "contest_start_time": 1596940200, "contest_duration": 5400, "user_num": 5615, "question_slugs": ["make-the-string-great", "find-kth-bit-in-nth-binary-string", "maximum-number-of-non-overlapping-subarrays-with-sum-equals-target", "minimum-cost-to-cut-a-stick"]}, {"contest_title": "\u7b2c 202 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 202", "contest_title_slug": "weekly-contest-202", "contest_id": 242, "contest_start_time": 1597545000, "contest_duration": 5400, "user_num": 4990, "question_slugs": ["three-consecutive-odds", "minimum-operations-to-make-array-equal", "magnetic-force-between-two-balls", "minimum-number-of-days-to-eat-n-oranges"]}, {"contest_title": "\u7b2c 203 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 203", "contest_title_slug": "weekly-contest-203", "contest_id": 244, "contest_start_time": 1598149800, "contest_duration": 5400, "user_num": 5285, "question_slugs": ["most-visited-sector-in-a-circular-track", "maximum-number-of-coins-you-can-get", "find-latest-group-of-size-m", "stone-game-v"]}, {"contest_title": "\u7b2c 204 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 204", "contest_title_slug": "weekly-contest-204", "contest_id": 257, "contest_start_time": 1598754600, "contest_duration": 5400, "user_num": 4487, "question_slugs": ["detect-pattern-of-length-m-repeated-k-or-more-times", "maximum-length-of-subarray-with-positive-product", "minimum-number-of-days-to-disconnect-island", "number-of-ways-to-reorder-array-to-get-same-bst"]}, {"contest_title": "\u7b2c 205 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 205", "contest_title_slug": "weekly-contest-205", "contest_id": 260, "contest_start_time": 1599359400, "contest_duration": 5400, "user_num": 4176, "question_slugs": ["replace-all-s-to-avoid-consecutive-repeating-characters", "number-of-ways-where-square-of-number-is-equal-to-product-of-two-numbers", "minimum-time-to-make-rope-colorful", "remove-max-number-of-edges-to-keep-graph-fully-traversable"]}, {"contest_title": "\u7b2c 206 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 206", "contest_title_slug": "weekly-contest-206", "contest_id": 267, "contest_start_time": 1599964200, "contest_duration": 5400, "user_num": 4493, "question_slugs": ["special-positions-in-a-binary-matrix", "count-unhappy-friends", "min-cost-to-connect-all-points", "check-if-string-is-transformable-with-substring-sort-operations"]}, {"contest_title": "\u7b2c 207 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 207", "contest_title_slug": "weekly-contest-207", "contest_id": 278, "contest_start_time": 1600569000, "contest_duration": 5400, "user_num": 4116, "question_slugs": ["rearrange-spaces-between-words", "split-a-string-into-the-max-number-of-unique-substrings", "maximum-non-negative-product-in-a-matrix", "minimum-cost-to-connect-two-groups-of-points"]}, {"contest_title": "\u7b2c 208 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 208", "contest_title_slug": "weekly-contest-208", "contest_id": 289, "contest_start_time": 1601173800, "contest_duration": 5400, "user_num": 3582, "question_slugs": ["crawler-log-folder", "maximum-profit-of-operating-a-centennial-wheel", "throne-inheritance", "maximum-number-of-achievable-transfer-requests"]}, {"contest_title": "\u7b2c 209 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 209", "contest_title_slug": "weekly-contest-209", "contest_id": 291, "contest_start_time": 1601778600, "contest_duration": 5400, "user_num": 4023, "question_slugs": ["special-array-with-x-elements-greater-than-or-equal-x", "even-odd-tree", "maximum-number-of-visible-points", "minimum-one-bit-operations-to-make-integers-zero"]}, {"contest_title": "\u7b2c 210 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 210", "contest_title_slug": "weekly-contest-210", "contest_id": 295, "contest_start_time": 1602383400, "contest_duration": 5400, "user_num": 4007, "question_slugs": ["maximum-nesting-depth-of-the-parentheses", "maximal-network-rank", "split-two-strings-to-make-palindrome", "count-subtrees-with-max-distance-between-cities"]}, {"contest_title": "\u7b2c 211 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 211", "contest_title_slug": "weekly-contest-211", "contest_id": 297, "contest_start_time": 1602988200, "contest_duration": 5400, "user_num": 4034, "question_slugs": ["largest-substring-between-two-equal-characters", "lexicographically-smallest-string-after-applying-operations", "best-team-with-no-conflicts", "graph-connectivity-with-threshold"]}, {"contest_title": "\u7b2c 212 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 212", "contest_title_slug": "weekly-contest-212", "contest_id": 301, "contest_start_time": 1603593000, "contest_duration": 5400, "user_num": 4227, "question_slugs": ["slowest-key", "arithmetic-subarrays", "path-with-minimum-effort", "rank-transform-of-a-matrix"]}, {"contest_title": "\u7b2c 213 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 213", "contest_title_slug": "weekly-contest-213", "contest_id": 303, "contest_start_time": 1604197800, "contest_duration": 5400, "user_num": 3827, "question_slugs": ["check-array-formation-through-concatenation", "count-sorted-vowel-strings", "furthest-building-you-can-reach", "kth-smallest-instructions"]}, {"contest_title": "\u7b2c 214 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 214", "contest_title_slug": "weekly-contest-214", "contest_id": 307, "contest_start_time": 1604802600, "contest_duration": 5400, "user_num": 3598, "question_slugs": ["get-maximum-in-generated-array", "minimum-deletions-to-make-character-frequencies-unique", "sell-diminishing-valued-colored-balls", "create-sorted-array-through-instructions"]}, {"contest_title": "\u7b2c 215 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 215", "contest_title_slug": "weekly-contest-215", "contest_id": 309, "contest_start_time": 1605407400, "contest_duration": 5400, "user_num": 4429, "question_slugs": ["design-an-ordered-stream", "determine-if-two-strings-are-close", "minimum-operations-to-reduce-x-to-zero", "maximize-grid-happiness"]}, {"contest_title": "\u7b2c 216 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 216", "contest_title_slug": "weekly-contest-216", "contest_id": 313, "contest_start_time": 1606012200, "contest_duration": 5400, "user_num": 3857, "question_slugs": ["check-if-two-string-arrays-are-equivalent", "smallest-string-with-a-given-numeric-value", "ways-to-make-a-fair-array", "minimum-initial-energy-to-finish-tasks"]}, {"contest_title": "\u7b2c 217 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 217", "contest_title_slug": "weekly-contest-217", "contest_id": 315, "contest_start_time": 1606617000, "contest_duration": 5400, "user_num": 3745, "question_slugs": ["richest-customer-wealth", "find-the-most-competitive-subsequence", "minimum-moves-to-make-array-complementary", "minimize-deviation-in-array"]}, {"contest_title": "\u7b2c 218 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 218", "contest_title_slug": "weekly-contest-218", "contest_id": 319, "contest_start_time": 1607221800, "contest_duration": 5400, "user_num": 3762, "question_slugs": ["goal-parser-interpretation", "max-number-of-k-sum-pairs", "concatenation-of-consecutive-binary-numbers", "minimum-incompatibility"]}, {"contest_title": "\u7b2c 219 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 219", "contest_title_slug": "weekly-contest-219", "contest_id": 322, "contest_start_time": 1607826600, "contest_duration": 5400, "user_num": 3710, "question_slugs": ["count-of-matches-in-tournament", "partitioning-into-minimum-number-of-deci-binary-numbers", "stone-game-vii", "maximum-height-by-stacking-cuboids"]}, {"contest_title": "\u7b2c 220 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 220", "contest_title_slug": "weekly-contest-220", "contest_id": 326, "contest_start_time": 1608431400, "contest_duration": 5400, "user_num": 3691, "question_slugs": ["reformat-phone-number", "maximum-erasure-value", "jump-game-vi", "checking-existence-of-edge-length-limited-paths"]}, {"contest_title": "\u7b2c 221 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 221", "contest_title_slug": "weekly-contest-221", "contest_id": 328, "contest_start_time": 1609036200, "contest_duration": 5400, "user_num": 3398, "question_slugs": ["determine-if-string-halves-are-alike", "maximum-number-of-eaten-apples", "where-will-the-ball-fall", "maximum-xor-with-an-element-from-array"]}, {"contest_title": "\u7b2c 222 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 222", "contest_title_slug": "weekly-contest-222", "contest_id": 332, "contest_start_time": 1609641000, "contest_duration": 5400, "user_num": 3119, "question_slugs": ["maximum-units-on-a-truck", "count-good-meals", "ways-to-split-array-into-three-subarrays", "minimum-operations-to-make-a-subsequence"]}, {"contest_title": "\u7b2c 223 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 223", "contest_title_slug": "weekly-contest-223", "contest_id": 334, "contest_start_time": 1610245800, "contest_duration": 5400, "user_num": 3872, "question_slugs": ["decode-xored-array", "swapping-nodes-in-a-linked-list", "minimize-hamming-distance-after-swap-operations", "find-minimum-time-to-finish-all-jobs"]}, {"contest_title": "\u7b2c 224 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 224", "contest_title_slug": "weekly-contest-224", "contest_id": 338, "contest_start_time": 1610850600, "contest_duration": 5400, "user_num": 3795, "question_slugs": ["number-of-rectangles-that-can-form-the-largest-square", "tuple-with-same-product", "largest-submatrix-with-rearrangements", "cat-and-mouse-ii"]}, {"contest_title": "\u7b2c 225 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 225", "contest_title_slug": "weekly-contest-225", "contest_id": 340, "contest_start_time": 1611455400, "contest_duration": 5400, "user_num": 3853, "question_slugs": ["latest-time-by-replacing-hidden-digits", "change-minimum-characters-to-satisfy-one-of-three-conditions", "find-kth-largest-xor-coordinate-value", "building-boxes"]}, {"contest_title": "\u7b2c 226 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 226", "contest_title_slug": "weekly-contest-226", "contest_id": 344, "contest_start_time": 1612060200, "contest_duration": 5400, "user_num": 4034, "question_slugs": ["maximum-number-of-balls-in-a-box", "restore-the-array-from-adjacent-pairs", "can-you-eat-your-favorite-candy-on-your-favorite-day", "palindrome-partitioning-iv"]}, {"contest_title": "\u7b2c 227 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 227", "contest_title_slug": "weekly-contest-227", "contest_id": 346, "contest_start_time": 1612665000, "contest_duration": 5400, "user_num": 3546, "question_slugs": ["check-if-array-is-sorted-and-rotated", "maximum-score-from-removing-stones", "largest-merge-of-two-strings", "closest-subsequence-sum"]}, {"contest_title": "\u7b2c 228 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 228", "contest_title_slug": "weekly-contest-228", "contest_id": 350, "contest_start_time": 1613269800, "contest_duration": 5400, "user_num": 2484, "question_slugs": ["minimum-changes-to-make-alternating-binary-string", "count-number-of-homogenous-substrings", "minimum-limit-of-balls-in-a-bag", "minimum-degree-of-a-connected-trio-in-a-graph"]}, {"contest_title": "\u7b2c 229 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 229", "contest_title_slug": "weekly-contest-229", "contest_id": 352, "contest_start_time": 1613874600, "contest_duration": 5400, "user_num": 3484, "question_slugs": ["merge-strings-alternately", "minimum-number-of-operations-to-move-all-balls-to-each-box", "maximum-score-from-performing-multiplication-operations", "maximize-palindrome-length-from-subsequences"]}, {"contest_title": "\u7b2c 230 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 230", "contest_title_slug": "weekly-contest-230", "contest_id": 356, "contest_start_time": 1614479400, "contest_duration": 5400, "user_num": 3728, "question_slugs": ["count-items-matching-a-rule", "closest-dessert-cost", "equal-sum-arrays-with-minimum-number-of-operations", "car-fleet-ii"]}, {"contest_title": "\u7b2c 231 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 231", "contest_title_slug": "weekly-contest-231", "contest_id": 358, "contest_start_time": 1615084200, "contest_duration": 5400, "user_num": 4668, "question_slugs": ["check-if-binary-string-has-at-most-one-segment-of-ones", "minimum-elements-to-add-to-form-a-given-sum", "number-of-restricted-paths-from-first-to-last-node", "make-the-xor-of-all-segments-equal-to-zero"]}, {"contest_title": "\u7b2c 232 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 232", "contest_title_slug": "weekly-contest-232", "contest_id": 363, "contest_start_time": 1615689000, "contest_duration": 5400, "user_num": 4802, "question_slugs": ["check-if-one-string-swap-can-make-strings-equal", "find-center-of-star-graph", "maximum-average-pass-ratio", "maximum-score-of-a-good-subarray"]}, {"contest_title": "\u7b2c 233 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 233", "contest_title_slug": "weekly-contest-233", "contest_id": 371, "contest_start_time": 1616293800, "contest_duration": 5400, "user_num": 5010, "question_slugs": ["maximum-ascending-subarray-sum", "number-of-orders-in-the-backlog", "maximum-value-at-a-given-index-in-a-bounded-array", "count-pairs-with-xor-in-a-range"]}, {"contest_title": "\u7b2c 234 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 234", "contest_title_slug": "weekly-contest-234", "contest_id": 375, "contest_start_time": 1616898600, "contest_duration": 5400, "user_num": 4998, "question_slugs": ["number-of-different-integers-in-a-string", "minimum-number-of-operations-to-reinitialize-a-permutation", "evaluate-the-bracket-pairs-of-a-string", "maximize-number-of-nice-divisors"]}, {"contest_title": "\u7b2c 235 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 235", "contest_title_slug": "weekly-contest-235", "contest_id": 377, "contest_start_time": 1617503400, "contest_duration": 5400, "user_num": 4494, "question_slugs": ["truncate-sentence", "finding-the-users-active-minutes", "minimum-absolute-sum-difference", "number-of-different-subsequences-gcds"]}, {"contest_title": "\u7b2c 236 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 236", "contest_title_slug": "weekly-contest-236", "contest_id": 391, "contest_start_time": 1618108200, "contest_duration": 5400, "user_num": 5113, "question_slugs": ["sign-of-the-product-of-an-array", "find-the-winner-of-the-circular-game", "minimum-sideway-jumps", "finding-mk-average"]}, {"contest_title": "\u7b2c 237 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 237", "contest_title_slug": "weekly-contest-237", "contest_id": 393, "contest_start_time": 1618713000, "contest_duration": 5400, "user_num": 4577, "question_slugs": ["check-if-the-sentence-is-pangram", "maximum-ice-cream-bars", "single-threaded-cpu", "find-xor-sum-of-all-pairs-bitwise-and"]}, {"contest_title": "\u7b2c 238 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 238", "contest_title_slug": "weekly-contest-238", "contest_id": 397, "contest_start_time": 1619317800, "contest_duration": 5400, "user_num": 3978, "question_slugs": ["sum-of-digits-in-base-k", "frequency-of-the-most-frequent-element", "longest-substring-of-all-vowels-in-order", "maximum-building-height"]}, {"contest_title": "\u7b2c 239 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 239", "contest_title_slug": "weekly-contest-239", "contest_id": 399, "contest_start_time": 1619922600, "contest_duration": 5400, "user_num": 3907, "question_slugs": ["minimum-distance-to-the-target-element", "splitting-a-string-into-descending-consecutive-values", "minimum-adjacent-swaps-to-reach-the-kth-smallest-number", "minimum-interval-to-include-each-query"]}, {"contest_title": "\u7b2c 240 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 240", "contest_title_slug": "weekly-contest-240", "contest_id": 403, "contest_start_time": 1620527400, "contest_duration": 5400, "user_num": 4307, "question_slugs": ["maximum-population-year", "maximum-distance-between-a-pair-of-values", "maximum-subarray-min-product", "largest-color-value-in-a-directed-graph"]}, {"contest_title": "\u7b2c 241 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 241", "contest_title_slug": "weekly-contest-241", "contest_id": 405, "contest_start_time": 1621132200, "contest_duration": 5400, "user_num": 4491, "question_slugs": ["sum-of-all-subset-xor-totals", "minimum-number-of-swaps-to-make-the-binary-string-alternating", "finding-pairs-with-a-certain-sum", "number-of-ways-to-rearrange-sticks-with-k-sticks-visible"]}, {"contest_title": "\u7b2c 242 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 242", "contest_title_slug": "weekly-contest-242", "contest_id": 409, "contest_start_time": 1621737000, "contest_duration": 5400, "user_num": 4306, "question_slugs": ["longer-contiguous-segments-of-ones-than-zeros", "minimum-speed-to-arrive-on-time", "jump-game-vii", "stone-game-viii"]}, {"contest_title": "\u7b2c 243 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 243", "contest_title_slug": "weekly-contest-243", "contest_id": 411, "contest_start_time": 1622341800, "contest_duration": 5400, "user_num": 4493, "question_slugs": ["check-if-word-equals-summation-of-two-words", "maximum-value-after-insertion", "process-tasks-using-servers", "minimum-skips-to-arrive-at-meeting-on-time"]}, {"contest_title": "\u7b2c 244 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 244", "contest_title_slug": "weekly-contest-244", "contest_id": 415, "contest_start_time": 1622946600, "contest_duration": 5400, "user_num": 4430, "question_slugs": ["determine-whether-matrix-can-be-obtained-by-rotation", "reduction-operations-to-make-the-array-elements-equal", "minimum-number-of-flips-to-make-the-binary-string-alternating", "minimum-space-wasted-from-packaging"]}, {"contest_title": "\u7b2c 245 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 245", "contest_title_slug": "weekly-contest-245", "contest_id": 417, "contest_start_time": 1623551400, "contest_duration": 5400, "user_num": 4271, "question_slugs": ["redistribute-characters-to-make-all-strings-equal", "maximum-number-of-removable-characters", "merge-triplets-to-form-target-triplet", "the-earliest-and-latest-rounds-where-players-compete"]}, {"contest_title": "\u7b2c 246 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 246", "contest_title_slug": "weekly-contest-246", "contest_id": 422, "contest_start_time": 1624156200, "contest_duration": 5400, "user_num": 4136, "question_slugs": ["largest-odd-number-in-string", "the-number-of-full-rounds-you-have-played", "count-sub-islands", "minimum-absolute-difference-queries"]}, {"contest_title": "\u7b2c 247 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 247", "contest_title_slug": "weekly-contest-247", "contest_id": 426, "contest_start_time": 1624761000, "contest_duration": 5400, "user_num": 3981, "question_slugs": ["maximum-product-difference-between-two-pairs", "cyclically-rotating-a-grid", "number-of-wonderful-substrings", "count-ways-to-build-rooms-in-an-ant-colony"]}, {"contest_title": "\u7b2c 248 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 248", "contest_title_slug": "weekly-contest-248", "contest_id": 430, "contest_start_time": 1625365800, "contest_duration": 5400, "user_num": 4451, "question_slugs": ["build-array-from-permutation", "eliminate-maximum-number-of-monsters", "count-good-numbers", "longest-common-subpath"]}, {"contest_title": "\u7b2c 249 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 249", "contest_title_slug": "weekly-contest-249", "contest_id": 432, "contest_start_time": 1625970600, "contest_duration": 5400, "user_num": 4335, "question_slugs": ["concatenation-of-array", "unique-length-3-palindromic-subsequences", "painting-a-grid-with-three-different-colors", "merge-bsts-to-create-single-bst"]}, {"contest_title": "\u7b2c 250 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 250", "contest_title_slug": "weekly-contest-250", "contest_id": 436, "contest_start_time": 1626575400, "contest_duration": 5400, "user_num": 4315, "question_slugs": ["maximum-number-of-words-you-can-type", "add-minimum-number-of-rungs", "maximum-number-of-points-with-cost", "maximum-genetic-difference-query"]}, {"contest_title": "\u7b2c 251 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 251", "contest_title_slug": "weekly-contest-251", "contest_id": 438, "contest_start_time": 1627180200, "contest_duration": 5400, "user_num": 4747, "question_slugs": ["sum-of-digits-of-string-after-convert", "largest-number-after-mutating-substring", "maximum-compatibility-score-sum", "delete-duplicate-folders-in-system"]}, {"contest_title": "\u7b2c 252 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 252", "contest_title_slug": "weekly-contest-252", "contest_id": 442, "contest_start_time": 1627785000, "contest_duration": 5400, "user_num": 4647, "question_slugs": ["three-divisors", "maximum-number-of-weeks-for-which-you-can-work", "minimum-garden-perimeter-to-collect-enough-apples", "count-number-of-special-subsequences"]}, {"contest_title": "\u7b2c 253 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 253", "contest_title_slug": "weekly-contest-253", "contest_id": 444, "contest_start_time": 1628389800, "contest_duration": 5400, "user_num": 4570, "question_slugs": ["check-if-string-is-a-prefix-of-array", "remove-stones-to-minimize-the-total", "minimum-number-of-swaps-to-make-the-string-balanced", "find-the-longest-valid-obstacle-course-at-each-position"]}, {"contest_title": "\u7b2c 254 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 254", "contest_title_slug": "weekly-contest-254", "contest_id": 449, "contest_start_time": 1628994600, "contest_duration": 5400, "user_num": 4349, "question_slugs": ["number-of-strings-that-appear-as-substrings-in-word", "array-with-elements-not-equal-to-average-of-neighbors", "minimum-non-zero-product-of-the-array-elements", "last-day-where-you-can-still-cross"]}, {"contest_title": "\u7b2c 255 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 255", "contest_title_slug": "weekly-contest-255", "contest_id": 457, "contest_start_time": 1629599400, "contest_duration": 5400, "user_num": 4333, "question_slugs": ["find-greatest-common-divisor-of-array", "find-unique-binary-string", "minimize-the-difference-between-target-and-chosen-elements", "find-array-given-subset-sums"]}, {"contest_title": "\u7b2c 256 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 256", "contest_title_slug": "weekly-contest-256", "contest_id": 462, "contest_start_time": 1630204200, "contest_duration": 5400, "user_num": 4136, "question_slugs": ["minimum-difference-between-highest-and-lowest-of-k-scores", "find-the-kth-largest-integer-in-the-array", "minimum-number-of-work-sessions-to-finish-the-tasks", "number-of-unique-good-subsequences"]}, {"contest_title": "\u7b2c 257 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 257", "contest_title_slug": "weekly-contest-257", "contest_id": 464, "contest_start_time": 1630809000, "contest_duration": 5400, "user_num": 4278, "question_slugs": ["count-special-quadruplets", "the-number-of-weak-characters-in-the-game", "first-day-where-you-have-been-in-all-the-rooms", "gcd-sort-of-an-array"]}, {"contest_title": "\u7b2c 258 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 258", "contest_title_slug": "weekly-contest-258", "contest_id": 468, "contest_start_time": 1631413800, "contest_duration": 5400, "user_num": 4519, "question_slugs": ["reverse-prefix-of-word", "number-of-pairs-of-interchangeable-rectangles", "maximum-product-of-the-length-of-two-palindromic-subsequences", "smallest-missing-genetic-value-in-each-subtree"]}, {"contest_title": "\u7b2c 259 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 259", "contest_title_slug": "weekly-contest-259", "contest_id": 474, "contest_start_time": 1632018600, "contest_duration": 5400, "user_num": 3775, "question_slugs": ["final-value-of-variable-after-performing-operations", "sum-of-beauty-in-the-array", "detect-squares", "longest-subsequence-repeated-k-times"]}, {"contest_title": "\u7b2c 260 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 260", "contest_title_slug": "weekly-contest-260", "contest_id": 478, "contest_start_time": 1632623400, "contest_duration": 5400, "user_num": 3654, "question_slugs": ["maximum-difference-between-increasing-elements", "grid-game", "check-if-word-can-be-placed-in-crossword", "the-score-of-students-solving-math-expression"]}, {"contest_title": "\u7b2c 261 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 261", "contest_title_slug": "weekly-contest-261", "contest_id": 481, "contest_start_time": 1633228200, "contest_duration": 5400, "user_num": 3368, "question_slugs": ["minimum-moves-to-convert-string", "find-missing-observations", "stone-game-ix", "smallest-k-length-subsequence-with-occurrences-of-a-letter"]}, {"contest_title": "\u7b2c 262 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 262", "contest_title_slug": "weekly-contest-262", "contest_id": 485, "contest_start_time": 1633833000, "contest_duration": 5400, "user_num": 4261, "question_slugs": ["two-out-of-three", "minimum-operations-to-make-a-uni-value-grid", "stock-price-fluctuation", "partition-array-into-two-arrays-to-minimize-sum-difference"]}, {"contest_title": "\u7b2c 263 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 263", "contest_title_slug": "weekly-contest-263", "contest_id": 487, "contest_start_time": 1634437800, "contest_duration": 5400, "user_num": 4572, "question_slugs": ["check-if-numbers-are-ascending-in-a-sentence", "simple-bank-system", "count-number-of-maximum-bitwise-or-subsets", "second-minimum-time-to-reach-destination"]}, {"contest_title": "\u7b2c 264 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 264", "contest_title_slug": "weekly-contest-264", "contest_id": 491, "contest_start_time": 1635042600, "contest_duration": 5400, "user_num": 4659, "question_slugs": ["number-of-valid-words-in-a-sentence", "next-greater-numerically-balanced-number", "count-nodes-with-the-highest-score", "parallel-courses-iii"]}, {"contest_title": "\u7b2c 265 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 265", "contest_title_slug": "weekly-contest-265", "contest_id": 493, "contest_start_time": 1635647400, "contest_duration": 5400, "user_num": 4182, "question_slugs": ["smallest-index-with-equal-value", "find-the-minimum-and-maximum-number-of-nodes-between-critical-points", "minimum-operations-to-convert-number", "check-if-an-original-string-exists-given-two-encoded-strings"]}, {"contest_title": "\u7b2c 266 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 266", "contest_title_slug": "weekly-contest-266", "contest_id": 498, "contest_start_time": 1636252200, "contest_duration": 5400, "user_num": 4385, "question_slugs": ["count-vowel-substrings-of-a-string", "vowels-of-all-substrings", "minimized-maximum-of-products-distributed-to-any-store", "maximum-path-quality-of-a-graph"]}, {"contest_title": "\u7b2c 267 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 267", "contest_title_slug": "weekly-contest-267", "contest_id": 500, "contest_start_time": 1636857000, "contest_duration": 5400, "user_num": 4365, "question_slugs": ["time-needed-to-buy-tickets", "reverse-nodes-in-even-length-groups", "decode-the-slanted-ciphertext", "process-restricted-friend-requests"]}, {"contest_title": "\u7b2c 268 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 268", "contest_title_slug": "weekly-contest-268", "contest_id": 504, "contest_start_time": 1637461800, "contest_duration": 5400, "user_num": 4398, "question_slugs": ["two-furthest-houses-with-different-colors", "watering-plants", "range-frequency-queries", "sum-of-k-mirror-numbers"]}, {"contest_title": "\u7b2c 269 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 269", "contest_title_slug": "weekly-contest-269", "contest_id": 506, "contest_start_time": 1638066600, "contest_duration": 5400, "user_num": 4293, "question_slugs": ["find-target-indices-after-sorting-array", "k-radius-subarray-averages", "removing-minimum-and-maximum-from-array", "find-all-people-with-secret"]}, {"contest_title": "\u7b2c 270 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 270", "contest_title_slug": "weekly-contest-270", "contest_id": 510, "contest_start_time": 1638671400, "contest_duration": 5400, "user_num": 4748, "question_slugs": ["finding-3-digit-even-numbers", "delete-the-middle-node-of-a-linked-list", "step-by-step-directions-from-a-binary-tree-node-to-another", "valid-arrangement-of-pairs"]}, {"contest_title": "\u7b2c 271 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 271", "contest_title_slug": "weekly-contest-271", "contest_id": 512, "contest_start_time": 1639276200, "contest_duration": 5400, "user_num": 4562, "question_slugs": ["rings-and-rods", "sum-of-subarray-ranges", "watering-plants-ii", "maximum-fruits-harvested-after-at-most-k-steps"]}, {"contest_title": "\u7b2c 272 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 272", "contest_title_slug": "weekly-contest-272", "contest_id": 516, "contest_start_time": 1639881000, "contest_duration": 5400, "user_num": 4698, "question_slugs": ["find-first-palindromic-string-in-the-array", "adding-spaces-to-a-string", "number-of-smooth-descent-periods-of-a-stock", "minimum-operations-to-make-the-array-k-increasing"]}, {"contest_title": "\u7b2c 273 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 273", "contest_title_slug": "weekly-contest-273", "contest_id": 518, "contest_start_time": 1640485800, "contest_duration": 5400, "user_num": 4368, "question_slugs": ["a-number-after-a-double-reversal", "execution-of-all-suffix-instructions-staying-in-a-grid", "intervals-between-identical-elements", "recover-the-original-array"]}, {"contest_title": "\u7b2c 274 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 274", "contest_title_slug": "weekly-contest-274", "contest_id": 522, "contest_start_time": 1641090600, "contest_duration": 5400, "user_num": 4109, "question_slugs": ["check-if-all-as-appears-before-all-bs", "number-of-laser-beams-in-a-bank", "destroying-asteroids", "maximum-employees-to-be-invited-to-a-meeting"]}, {"contest_title": "\u7b2c 275 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 275", "contest_title_slug": "weekly-contest-275", "contest_id": 524, "contest_start_time": 1641695400, "contest_duration": 5400, "user_num": 4787, "question_slugs": ["check-if-every-row-and-column-contains-all-numbers", "minimum-swaps-to-group-all-1s-together-ii", "count-words-obtained-after-adding-a-letter", "earliest-possible-day-of-full-bloom"]}, {"contest_title": "\u7b2c 276 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 276", "contest_title_slug": "weekly-contest-276", "contest_id": 528, "contest_start_time": 1642300200, "contest_duration": 5400, "user_num": 5244, "question_slugs": ["divide-a-string-into-groups-of-size-k", "minimum-moves-to-reach-target-score", "solving-questions-with-brainpower", "maximum-running-time-of-n-computers"]}, {"contest_title": "\u7b2c 277 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 277", "contest_title_slug": "weekly-contest-277", "contest_id": 530, "contest_start_time": 1642905000, "contest_duration": 5400, "user_num": 5060, "question_slugs": ["count-elements-with-strictly-smaller-and-greater-elements", "rearrange-array-elements-by-sign", "find-all-lonely-numbers-in-the-array", "maximum-good-people-based-on-statements"]}, {"contest_title": "\u7b2c 278 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 278", "contest_title_slug": "weekly-contest-278", "contest_id": 534, "contest_start_time": 1643509800, "contest_duration": 5400, "user_num": 4643, "question_slugs": ["keep-multiplying-found-values-by-two", "all-divisions-with-the-highest-score-of-a-binary-array", "find-substring-with-given-hash-value", "groups-of-strings"]}, {"contest_title": "\u7b2c 279 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 279", "contest_title_slug": "weekly-contest-279", "contest_id": 536, "contest_start_time": 1644114600, "contest_duration": 5400, "user_num": 4132, "question_slugs": ["sort-even-and-odd-indices-independently", "smallest-value-of-the-rearranged-number", "design-bitset", "minimum-time-to-remove-all-cars-containing-illegal-goods"]}, {"contest_title": "\u7b2c 280 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 280", "contest_title_slug": "weekly-contest-280", "contest_id": 540, "contest_start_time": 1644719400, "contest_duration": 5400, "user_num": 5834, "question_slugs": ["count-operations-to-obtain-zero", "minimum-operations-to-make-the-array-alternating", "removing-minimum-number-of-magic-beans", "maximum-and-sum-of-array"]}, {"contest_title": "\u7b2c 281 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 281", "contest_title_slug": "weekly-contest-281", "contest_id": 542, "contest_start_time": 1645324200, "contest_duration": 6000, "user_num": 6005, "question_slugs": ["count-integers-with-even-digit-sum", "merge-nodes-in-between-zeros", "construct-string-with-repeat-limit", "count-array-pairs-divisible-by-k"]}, {"contest_title": "\u7b2c 282 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 282", "contest_title_slug": "weekly-contest-282", "contest_id": 546, "contest_start_time": 1645929000, "contest_duration": 5400, "user_num": 7164, "question_slugs": ["counting-words-with-a-given-prefix", "minimum-number-of-steps-to-make-two-strings-anagram-ii", "minimum-time-to-complete-trips", "minimum-time-to-finish-the-race"]}, {"contest_title": "\u7b2c 283 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 283", "contest_title_slug": "weekly-contest-283", "contest_id": 551, "contest_start_time": 1646533800, "contest_duration": 5400, "user_num": 7817, "question_slugs": ["cells-in-a-range-on-an-excel-sheet", "append-k-integers-with-minimal-sum", "create-binary-tree-from-descriptions", "replace-non-coprime-numbers-in-array"]}, {"contest_title": "\u7b2c 284 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 284", "contest_title_slug": "weekly-contest-284", "contest_id": 555, "contest_start_time": 1647138600, "contest_duration": 5400, "user_num": 8483, "question_slugs": ["find-all-k-distant-indices-in-an-array", "count-artifacts-that-can-be-extracted", "maximize-the-topmost-element-after-k-moves", "minimum-weighted-subgraph-with-the-required-paths"]}, {"contest_title": "\u7b2c 285 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 285", "contest_title_slug": "weekly-contest-285", "contest_id": 558, "contest_start_time": 1647743400, "contest_duration": 5400, "user_num": 7501, "question_slugs": ["count-hills-and-valleys-in-an-array", "count-collisions-on-a-road", "maximum-points-in-an-archery-competition", "longest-substring-of-one-repeating-character"]}, {"contest_title": "\u7b2c 286 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 286", "contest_title_slug": "weekly-contest-286", "contest_id": 564, "contest_start_time": 1648348200, "contest_duration": 5400, "user_num": 7248, "question_slugs": ["find-the-difference-of-two-arrays", "minimum-deletions-to-make-array-beautiful", "find-palindrome-with-fixed-length", "maximum-value-of-k-coins-from-piles"]}, {"contest_title": "\u7b2c 287 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 287", "contest_title_slug": "weekly-contest-287", "contest_id": 569, "contest_start_time": 1648953000, "contest_duration": 5400, "user_num": 6811, "question_slugs": ["minimum-number-of-operations-to-convert-time", "find-players-with-zero-or-one-losses", "maximum-candies-allocated-to-k-children", "encrypt-and-decrypt-strings"]}, {"contest_title": "\u7b2c 288 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 288", "contest_title_slug": "weekly-contest-288", "contest_id": 573, "contest_start_time": 1649557800, "contest_duration": 5400, "user_num": 6926, "question_slugs": ["largest-number-after-digit-swaps-by-parity", "minimize-result-by-adding-parentheses-to-expression", "maximum-product-after-k-increments", "maximum-total-beauty-of-the-gardens"]}, {"contest_title": "\u7b2c 289 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 289", "contest_title_slug": "weekly-contest-289", "contest_id": 576, "contest_start_time": 1650162600, "contest_duration": 5400, "user_num": 7293, "question_slugs": ["calculate-digit-sum-of-a-string", "minimum-rounds-to-complete-all-tasks", "maximum-trailing-zeros-in-a-cornered-path", "longest-path-with-different-adjacent-characters"]}, {"contest_title": "\u7b2c 290 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 290", "contest_title_slug": "weekly-contest-290", "contest_id": 582, "contest_start_time": 1650767400, "contest_duration": 5400, "user_num": 6275, "question_slugs": ["intersection-of-multiple-arrays", "count-lattice-points-inside-a-circle", "count-number-of-rectangles-containing-each-point", "number-of-flowers-in-full-bloom"]}, {"contest_title": "\u7b2c 291 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 291", "contest_title_slug": "weekly-contest-291", "contest_id": 587, "contest_start_time": 1651372200, "contest_duration": 5400, "user_num": 6574, "question_slugs": ["remove-digit-from-number-to-maximize-result", "minimum-consecutive-cards-to-pick-up", "k-divisible-elements-subarrays", "total-appeal-of-a-string"]}, {"contest_title": "\u7b2c 292 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 292", "contest_title_slug": "weekly-contest-292", "contest_id": 591, "contest_start_time": 1651977000, "contest_duration": 5400, "user_num": 6884, "question_slugs": ["largest-3-same-digit-number-in-string", "count-nodes-equal-to-average-of-subtree", "count-number-of-texts", "check-if-there-is-a-valid-parentheses-string-path"]}, {"contest_title": "\u7b2c 293 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 293", "contest_title_slug": "weekly-contest-293", "contest_id": 593, "contest_start_time": 1652581800, "contest_duration": 5400, "user_num": 7357, "question_slugs": ["find-resultant-array-after-removing-anagrams", "maximum-consecutive-floors-without-special-floors", "largest-combination-with-bitwise-and-greater-than-zero", "count-integers-in-intervals"]}, {"contest_title": "\u7b2c 294 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 294", "contest_title_slug": "weekly-contest-294", "contest_id": 599, "contest_start_time": 1653186600, "contest_duration": 5400, "user_num": 6640, "question_slugs": ["percentage-of-letter-in-string", "maximum-bags-with-full-capacity-of-rocks", "minimum-lines-to-represent-a-line-chart", "sum-of-total-strength-of-wizards"]}, {"contest_title": "\u7b2c 295 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 295", "contest_title_slug": "weekly-contest-295", "contest_id": 605, "contest_start_time": 1653791400, "contest_duration": 5400, "user_num": 6447, "question_slugs": ["rearrange-characters-to-make-target-string", "apply-discount-to-prices", "steps-to-make-array-non-decreasing", "minimum-obstacle-removal-to-reach-corner"]}, {"contest_title": "\u7b2c 296 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 296", "contest_title_slug": "weekly-contest-296", "contest_id": 609, "contest_start_time": 1654396200, "contest_duration": 5400, "user_num": 5721, "question_slugs": ["min-max-game", "partition-array-such-that-maximum-difference-is-k", "replace-elements-in-an-array", "design-a-text-editor"]}, {"contest_title": "\u7b2c 297 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 297", "contest_title_slug": "weekly-contest-297", "contest_id": 611, "contest_start_time": 1655001000, "contest_duration": 5400, "user_num": 5915, "question_slugs": ["calculate-amount-paid-in-taxes", "minimum-path-cost-in-a-grid", "fair-distribution-of-cookies", "naming-a-company"]}, {"contest_title": "\u7b2c 298 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 298", "contest_title_slug": "weekly-contest-298", "contest_id": 615, "contest_start_time": 1655605800, "contest_duration": 5400, "user_num": 6228, "question_slugs": ["greatest-english-letter-in-upper-and-lower-case", "sum-of-numbers-with-units-digit-k", "longest-binary-subsequence-less-than-or-equal-to-k", "selling-pieces-of-wood"]}, {"contest_title": "\u7b2c 299 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 299", "contest_title_slug": "weekly-contest-299", "contest_id": 618, "contest_start_time": 1656210600, "contest_duration": 5400, "user_num": 6108, "question_slugs": ["check-if-matrix-is-x-matrix", "count-number-of-ways-to-place-houses", "maximum-score-of-spliced-array", "minimum-score-after-removals-on-a-tree"]}, {"contest_title": "\u7b2c 300 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 300", "contest_title_slug": "weekly-contest-300", "contest_id": 647, "contest_start_time": 1656815400, "contest_duration": 5400, "user_num": 6792, "question_slugs": ["decode-the-message", "spiral-matrix-iv", "number-of-people-aware-of-a-secret", "number-of-increasing-paths-in-a-grid"]}, {"contest_title": "\u7b2c 301 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 301", "contest_title_slug": "weekly-contest-301", "contest_id": 649, "contest_start_time": 1657420200, "contest_duration": 5400, "user_num": 7133, "question_slugs": ["minimum-amount-of-time-to-fill-cups", "smallest-number-in-infinite-set", "move-pieces-to-obtain-a-string", "count-the-number-of-ideal-arrays"]}, {"contest_title": "\u7b2c 302 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 302", "contest_title_slug": "weekly-contest-302", "contest_id": 653, "contest_start_time": 1658025000, "contest_duration": 5400, "user_num": 7092, "question_slugs": ["maximum-number-of-pairs-in-array", "max-sum-of-a-pair-with-equal-sum-of-digits", "query-kth-smallest-trimmed-number", "minimum-deletions-to-make-array-divisible"]}, {"contest_title": "\u7b2c 303 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 303", "contest_title_slug": "weekly-contest-303", "contest_id": 655, "contest_start_time": 1658629800, "contest_duration": 5400, "user_num": 7032, "question_slugs": ["first-letter-to-appear-twice", "equal-row-and-column-pairs", "design-a-food-rating-system", "number-of-excellent-pairs"]}, {"contest_title": "\u7b2c 304 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 304", "contest_title_slug": "weekly-contest-304", "contest_id": 659, "contest_start_time": 1659234600, "contest_duration": 5400, "user_num": 7372, "question_slugs": ["make-array-zero-by-subtracting-equal-amounts", "maximum-number-of-groups-entering-a-competition", "find-closest-node-to-given-two-nodes", "longest-cycle-in-a-graph"]}, {"contest_title": "\u7b2c 305 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 305", "contest_title_slug": "weekly-contest-305", "contest_id": 663, "contest_start_time": 1659839400, "contest_duration": 5400, "user_num": 7465, "question_slugs": ["number-of-arithmetic-triplets", "reachable-nodes-with-restrictions", "check-if-there-is-a-valid-partition-for-the-array", "longest-ideal-subsequence"]}, {"contest_title": "\u7b2c 306 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 306", "contest_title_slug": "weekly-contest-306", "contest_id": 669, "contest_start_time": 1660444200, "contest_duration": 5400, "user_num": 7500, "question_slugs": ["largest-local-values-in-a-matrix", "node-with-highest-edge-score", "construct-smallest-number-from-di-string", "count-special-integers"]}, {"contest_title": "\u7b2c 307 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 307", "contest_title_slug": "weekly-contest-307", "contest_id": 671, "contest_start_time": 1661049000, "contest_duration": 5400, "user_num": 7064, "question_slugs": ["minimum-hours-of-training-to-win-a-competition", "largest-palindromic-number", "amount-of-time-for-binary-tree-to-be-infected", "find-the-k-sum-of-an-array"]}, {"contest_title": "\u7b2c 308 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 308", "contest_title_slug": "weekly-contest-308", "contest_id": 689, "contest_start_time": 1661653800, "contest_duration": 5400, "user_num": 6394, "question_slugs": ["longest-subsequence-with-limited-sum", "removing-stars-from-a-string", "minimum-amount-of-time-to-collect-garbage", "build-a-matrix-with-conditions"]}, {"contest_title": "\u7b2c 309 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 309", "contest_title_slug": "weekly-contest-309", "contest_id": 693, "contest_start_time": 1662258600, "contest_duration": 5400, "user_num": 7972, "question_slugs": ["check-distances-between-same-letters", "number-of-ways-to-reach-a-position-after-exactly-k-steps", "longest-nice-subarray", "meeting-rooms-iii"]}, {"contest_title": "\u7b2c 310 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 310", "contest_title_slug": "weekly-contest-310", "contest_id": 704, "contest_start_time": 1662863400, "contest_duration": 5400, "user_num": 6081, "question_slugs": ["most-frequent-even-element", "optimal-partition-of-string", "divide-intervals-into-minimum-number-of-groups", "longest-increasing-subsequence-ii"]}, {"contest_title": "\u7b2c 311 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 311", "contest_title_slug": "weekly-contest-311", "contest_id": 741, "contest_start_time": 1663468200, "contest_duration": 5400, "user_num": 6710, "question_slugs": ["smallest-even-multiple", "length-of-the-longest-alphabetical-continuous-substring", "reverse-odd-levels-of-binary-tree", "sum-of-prefix-scores-of-strings"]}, {"contest_title": "\u7b2c 312 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 312", "contest_title_slug": "weekly-contest-312", "contest_id": 746, "contest_start_time": 1664073000, "contest_duration": 5400, "user_num": 6638, "question_slugs": ["sort-the-people", "longest-subarray-with-maximum-bitwise-and", "find-all-good-indices", "number-of-good-paths"]}, {"contest_title": "\u7b2c 313 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 313", "contest_title_slug": "weekly-contest-313", "contest_id": 750, "contest_start_time": 1664677800, "contest_duration": 5400, "user_num": 5445, "question_slugs": ["number-of-common-factors", "maximum-sum-of-an-hourglass", "minimize-xor", "maximum-deletions-on-a-string"]}, {"contest_title": "\u7b2c 314 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 314", "contest_title_slug": "weekly-contest-314", "contest_id": 756, "contest_start_time": 1665282600, "contest_duration": 5400, "user_num": 4838, "question_slugs": ["the-employee-that-worked-on-the-longest-task", "find-the-original-array-of-prefix-xor", "using-a-robot-to-print-the-lexicographically-smallest-string", "paths-in-matrix-whose-sum-is-divisible-by-k"]}, {"contest_title": "\u7b2c 315 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 315", "contest_title_slug": "weekly-contest-315", "contest_id": 759, "contest_start_time": 1665887400, "contest_duration": 5400, "user_num": 6490, "question_slugs": ["largest-positive-integer-that-exists-with-its-negative", "count-number-of-distinct-integers-after-reverse-operations", "sum-of-number-and-its-reverse", "count-subarrays-with-fixed-bounds"]}, {"contest_title": "\u7b2c 316 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 316", "contest_title_slug": "weekly-contest-316", "contest_id": 764, "contest_start_time": 1666492200, "contest_duration": 5400, "user_num": 6387, "question_slugs": ["determine-if-two-events-have-conflict", "number-of-subarrays-with-gcd-equal-to-k", "minimum-cost-to-make-array-equal", "minimum-number-of-operations-to-make-arrays-similar"]}, {"contest_title": "\u7b2c 317 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 317", "contest_title_slug": "weekly-contest-317", "contest_id": 767, "contest_start_time": 1667097000, "contest_duration": 5400, "user_num": 5660, "question_slugs": ["average-value-of-even-numbers-that-are-divisible-by-three", "most-popular-video-creator", "minimum-addition-to-make-integer-beautiful", "height-of-binary-tree-after-subtree-removal-queries"]}, {"contest_title": "\u7b2c 318 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 318", "contest_title_slug": "weekly-contest-318", "contest_id": 771, "contest_start_time": 1667701800, "contest_duration": 5400, "user_num": 5670, "question_slugs": ["apply-operations-to-an-array", "maximum-sum-of-distinct-subarrays-with-length-k", "total-cost-to-hire-k-workers", "minimum-total-distance-traveled"]}, {"contest_title": "\u7b2c 319 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 319", "contest_title_slug": "weekly-contest-319", "contest_id": 773, "contest_start_time": 1668306600, "contest_duration": 5400, "user_num": 6175, "question_slugs": ["convert-the-temperature", "number-of-subarrays-with-lcm-equal-to-k", "minimum-number-of-operations-to-sort-a-binary-tree-by-level", "maximum-number-of-non-overlapping-palindrome-substrings"]}, {"contest_title": "\u7b2c 320 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 320", "contest_title_slug": "weekly-contest-320", "contest_id": 777, "contest_start_time": 1668911400, "contest_duration": 5400, "user_num": 5678, "question_slugs": ["number-of-unequal-triplets-in-array", "closest-nodes-queries-in-a-binary-search-tree", "minimum-fuel-cost-to-report-to-the-capital", "number-of-beautiful-partitions"]}, {"contest_title": "\u7b2c 321 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 321", "contest_title_slug": "weekly-contest-321", "contest_id": 779, "contest_start_time": 1669516200, "contest_duration": 5400, "user_num": 5115, "question_slugs": ["find-the-pivot-integer", "append-characters-to-string-to-make-subsequence", "remove-nodes-from-linked-list", "count-subarrays-with-median-k"]}, {"contest_title": "\u7b2c 322 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 322", "contest_title_slug": "weekly-contest-322", "contest_id": 783, "contest_start_time": 1670121000, "contest_duration": 5400, "user_num": 5085, "question_slugs": ["circular-sentence", "divide-players-into-teams-of-equal-skill", "minimum-score-of-a-path-between-two-cities", "divide-nodes-into-the-maximum-number-of-groups"]}, {"contest_title": "\u7b2c 323 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 323", "contest_title_slug": "weekly-contest-323", "contest_id": 785, "contest_start_time": 1670725800, "contest_duration": 5400, "user_num": 4671, "question_slugs": ["delete-greatest-value-in-each-row", "longest-square-streak-in-an-array", "design-memory-allocator", "maximum-number-of-points-from-grid-queries"]}, {"contest_title": "\u7b2c 324 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 324", "contest_title_slug": "weekly-contest-324", "contest_id": 790, "contest_start_time": 1671330600, "contest_duration": 5400, "user_num": 4167, "question_slugs": ["count-pairs-of-similar-strings", "smallest-value-after-replacing-with-sum-of-prime-factors", "add-edges-to-make-degrees-of-all-nodes-even", "cycle-length-queries-in-a-tree"]}, {"contest_title": "\u7b2c 325 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 325", "contest_title_slug": "weekly-contest-325", "contest_id": 795, "contest_start_time": 1671935400, "contest_duration": 5400, "user_num": 3530, "question_slugs": ["shortest-distance-to-target-string-in-a-circular-array", "take-k-of-each-character-from-left-and-right", "maximum-tastiness-of-candy-basket", "number-of-great-partitions"]}, {"contest_title": "\u7b2c 326 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 326", "contest_title_slug": "weekly-contest-326", "contest_id": 799, "contest_start_time": 1672540200, "contest_duration": 5400, "user_num": 3873, "question_slugs": ["count-the-digits-that-divide-a-number", "distinct-prime-factors-of-product-of-array", "partition-string-into-substrings-with-values-at-most-k", "closest-prime-numbers-in-range"]}, {"contest_title": "\u7b2c 327 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 327", "contest_title_slug": "weekly-contest-327", "contest_id": 801, "contest_start_time": 1673145000, "contest_duration": 5400, "user_num": 4518, "question_slugs": ["maximum-count-of-positive-integer-and-negative-integer", "maximal-score-after-applying-k-operations", "make-number-of-distinct-characters-equal", "time-to-cross-a-bridge"]}, {"contest_title": "\u7b2c 328 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 328", "contest_title_slug": "weekly-contest-328", "contest_id": 805, "contest_start_time": 1673749800, "contest_duration": 5400, "user_num": 4776, "question_slugs": ["difference-between-element-sum-and-digit-sum-of-an-array", "increment-submatrices-by-one", "count-the-number-of-good-subarrays", "difference-between-maximum-and-minimum-price-sum"]}, {"contest_title": "\u7b2c 329 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 329", "contest_title_slug": "weekly-contest-329", "contest_id": 807, "contest_start_time": 1674354600, "contest_duration": 5400, "user_num": 2591, "question_slugs": ["alternating-digit-sum", "sort-the-students-by-their-kth-score", "apply-bitwise-operations-to-make-strings-equal", "minimum-cost-to-split-an-array"]}, {"contest_title": "\u7b2c 330 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 330", "contest_title_slug": "weekly-contest-330", "contest_id": 811, "contest_start_time": 1674959400, "contest_duration": 5400, "user_num": 3399, "question_slugs": ["count-distinct-numbers-on-board", "count-collisions-of-monkeys-on-a-polygon", "put-marbles-in-bags", "count-increasing-quadruplets"]}, {"contest_title": "\u7b2c 331 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 331", "contest_title_slug": "weekly-contest-331", "contest_id": 813, "contest_start_time": 1675564200, "contest_duration": 5400, "user_num": 4256, "question_slugs": ["take-gifts-from-the-richest-pile", "count-vowel-strings-in-ranges", "house-robber-iv", "rearranging-fruits"]}, {"contest_title": "\u7b2c 332 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 332", "contest_title_slug": "weekly-contest-332", "contest_id": 817, "contest_start_time": 1676169000, "contest_duration": 5400, "user_num": 4547, "question_slugs": ["find-the-array-concatenation-value", "count-the-number-of-fair-pairs", "substring-xor-queries", "subsequence-with-the-minimum-score"]}, {"contest_title": "\u7b2c 333 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 333", "contest_title_slug": "weekly-contest-333", "contest_id": 819, "contest_start_time": 1676773800, "contest_duration": 5400, "user_num": 4969, "question_slugs": ["merge-two-2d-arrays-by-summing-values", "minimum-operations-to-reduce-an-integer-to-0", "count-the-number-of-square-free-subsets", "find-the-string-with-lcp"]}, {"contest_title": "\u7b2c 334 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 334", "contest_title_slug": "weekly-contest-334", "contest_id": 823, "contest_start_time": 1677378600, "contest_duration": 5400, "user_num": 5501, "question_slugs": ["left-and-right-sum-differences", "find-the-divisibility-array-of-a-string", "find-the-maximum-number-of-marked-indices", "minimum-time-to-visit-a-cell-in-a-grid"]}, {"contest_title": "\u7b2c 335 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 335", "contest_title_slug": "weekly-contest-335", "contest_id": 825, "contest_start_time": 1677983400, "contest_duration": 5400, "user_num": 6019, "question_slugs": ["pass-the-pillow", "kth-largest-sum-in-a-binary-tree", "split-the-array-to-make-coprime-products", "number-of-ways-to-earn-points"]}, {"contest_title": "\u7b2c 336 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 336", "contest_title_slug": "weekly-contest-336", "contest_id": 833, "contest_start_time": 1678588200, "contest_duration": 5400, "user_num": 5897, "question_slugs": ["count-the-number-of-vowel-strings-in-range", "rearrange-array-to-maximize-prefix-score", "count-the-number-of-beautiful-subarrays", "minimum-time-to-complete-all-tasks"]}, {"contest_title": "\u7b2c 337 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 337", "contest_title_slug": "weekly-contest-337", "contest_id": 839, "contest_start_time": 1679193000, "contest_duration": 5400, "user_num": 5628, "question_slugs": ["number-of-even-and-odd-bits", "check-knight-tour-configuration", "the-number-of-beautiful-subsets", "smallest-missing-non-negative-integer-after-operations"]}, {"contest_title": "\u7b2c 338 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 338", "contest_title_slug": "weekly-contest-338", "contest_id": 843, "contest_start_time": 1679797800, "contest_duration": 5400, "user_num": 5594, "question_slugs": ["k-items-with-the-maximum-sum", "prime-subtraction-operation", "minimum-operations-to-make-all-array-elements-equal", "collect-coins-in-a-tree"]}, {"contest_title": "\u7b2c 339 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 339", "contest_title_slug": "weekly-contest-339", "contest_id": 850, "contest_start_time": 1680402600, "contest_duration": 5400, "user_num": 5180, "question_slugs": ["find-the-longest-balanced-substring-of-a-binary-string", "convert-an-array-into-a-2d-array-with-conditions", "mice-and-cheese", "minimum-reverse-operations"]}, {"contest_title": "\u7b2c 340 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 340", "contest_title_slug": "weekly-contest-340", "contest_id": 854, "contest_start_time": 1681007400, "contest_duration": 5400, "user_num": 4937, "question_slugs": ["prime-in-diagonal", "sum-of-distances", "minimize-the-maximum-difference-of-pairs", "minimum-number-of-visited-cells-in-a-grid"]}, {"contest_title": "\u7b2c 341 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 341", "contest_title_slug": "weekly-contest-341", "contest_id": 856, "contest_start_time": 1681612200, "contest_duration": 5400, "user_num": 4792, "question_slugs": ["row-with-maximum-ones", "find-the-maximum-divisibility-score", "minimum-additions-to-make-valid-string", "minimize-the-total-price-of-the-trips"]}, {"contest_title": "\u7b2c 342 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 342", "contest_title_slug": "weekly-contest-342", "contest_id": 860, "contest_start_time": 1682217000, "contest_duration": 5400, "user_num": 3702, "question_slugs": ["calculate-delayed-arrival-time", "sum-multiples", "sliding-subarray-beauty", "minimum-number-of-operations-to-make-all-array-elements-equal-to-1"]}, {"contest_title": "\u7b2c 343 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 343", "contest_title_slug": "weekly-contest-343", "contest_id": 863, "contest_start_time": 1682821800, "contest_duration": 5400, "user_num": 3313, "question_slugs": ["determine-the-winner-of-a-bowling-game", "first-completely-painted-row-or-column", "minimum-cost-of-a-path-with-special-roads", "lexicographically-smallest-beautiful-string"]}, {"contest_title": "\u7b2c 344 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 344", "contest_title_slug": "weekly-contest-344", "contest_id": 867, "contest_start_time": 1683426600, "contest_duration": 5400, "user_num": 3986, "question_slugs": ["find-the-distinct-difference-array", "frequency-tracker", "number-of-adjacent-elements-with-the-same-color", "make-costs-of-paths-equal-in-a-binary-tree"]}, {"contest_title": "\u7b2c 345 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 345", "contest_title_slug": "weekly-contest-345", "contest_id": 870, "contest_start_time": 1684031400, "contest_duration": 5400, "user_num": 4165, "question_slugs": ["find-the-losers-of-the-circular-game", "neighboring-bitwise-xor", "maximum-number-of-moves-in-a-grid", "count-the-number-of-complete-components"]}, {"contest_title": "\u7b2c 346 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 346", "contest_title_slug": "weekly-contest-346", "contest_id": 874, "contest_start_time": 1684636200, "contest_duration": 5400, "user_num": 4035, "question_slugs": ["minimum-string-length-after-removing-substrings", "lexicographically-smallest-palindrome", "find-the-punishment-number-of-an-integer", "modify-graph-edge-weights"]}, {"contest_title": "\u7b2c 347 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 347", "contest_title_slug": "weekly-contest-347", "contest_id": 876, "contest_start_time": 1685241000, "contest_duration": 5400, "user_num": 3836, "question_slugs": ["remove-trailing-zeros-from-a-string", "difference-of-number-of-distinct-values-on-diagonals", "minimum-cost-to-make-all-characters-equal", "maximum-strictly-increasing-cells-in-a-matrix"]}, {"contest_title": "\u7b2c 348 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 348", "contest_title_slug": "weekly-contest-348", "contest_id": 880, "contest_start_time": 1685845800, "contest_duration": 5400, "user_num": 3909, "question_slugs": ["minimize-string-length", "semi-ordered-permutation", "sum-of-matrix-after-queries", "count-of-integers"]}, {"contest_title": "\u7b2c 349 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 349", "contest_title_slug": "weekly-contest-349", "contest_id": 882, "contest_start_time": 1686450600, "contest_duration": 5400, "user_num": 3714, "question_slugs": ["neither-minimum-nor-maximum", "lexicographically-smallest-string-after-substring-operation", "collecting-chocolates", "maximum-sum-queries"]}, {"contest_title": "\u7b2c 350 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 350", "contest_title_slug": "weekly-contest-350", "contest_id": 886, "contest_start_time": 1687055400, "contest_duration": 5400, "user_num": 3580, "question_slugs": ["total-distance-traveled", "find-the-value-of-the-partition", "special-permutations", "painting-the-walls"]}, {"contest_title": "\u7b2c 351 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 351", "contest_title_slug": "weekly-contest-351", "contest_id": 888, "contest_start_time": 1687660200, "contest_duration": 5400, "user_num": 2471, "question_slugs": ["number-of-beautiful-pairs", "minimum-operations-to-make-the-integer-zero", "ways-to-split-array-into-good-subarrays", "robot-collisions"]}, {"contest_title": "\u7b2c 352 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 352", "contest_title_slug": "weekly-contest-352", "contest_id": 892, "contest_start_time": 1688265000, "contest_duration": 5400, "user_num": 3437, "question_slugs": ["longest-even-odd-subarray-with-threshold", "prime-pairs-with-target-sum", "continuous-subarrays", "sum-of-imbalance-numbers-of-all-subarrays"]}, {"contest_title": "\u7b2c 353 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 353", "contest_title_slug": "weekly-contest-353", "contest_id": 894, "contest_start_time": 1688869800, "contest_duration": 5400, "user_num": 4113, "question_slugs": ["find-the-maximum-achievable-number", "maximum-number-of-jumps-to-reach-the-last-index", "longest-non-decreasing-subarray-from-two-arrays", "apply-operations-to-make-all-array-elements-equal-to-zero"]}, {"contest_title": "\u7b2c 354 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 354", "contest_title_slug": "weekly-contest-354", "contest_id": 898, "contest_start_time": 1689474600, "contest_duration": 5400, "user_num": 3957, "question_slugs": ["sum-of-squares-of-special-elements", "maximum-beauty-of-an-array-after-applying-operation", "minimum-index-of-a-valid-split", "length-of-the-longest-valid-substring"]}, {"contest_title": "\u7b2c 355 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 355", "contest_title_slug": "weekly-contest-355", "contest_id": 900, "contest_start_time": 1690079400, "contest_duration": 5400, "user_num": 4112, "question_slugs": ["split-strings-by-separator", "largest-element-in-an-array-after-merge-operations", "maximum-number-of-groups-with-increasing-length", "count-paths-that-can-form-a-palindrome-in-a-tree"]}, {"contest_title": "\u7b2c 356 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 356", "contest_title_slug": "weekly-contest-356", "contest_id": 904, "contest_start_time": 1690684200, "contest_duration": 5400, "user_num": 4082, "question_slugs": ["number-of-employees-who-met-the-target", "count-complete-subarrays-in-an-array", "shortest-string-that-contains-three-strings", "count-stepping-numbers-in-range"]}, {"contest_title": "\u7b2c 357 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 357", "contest_title_slug": "weekly-contest-357", "contest_id": 906, "contest_start_time": 1691289000, "contest_duration": 5400, "user_num": 4265, "question_slugs": ["faulty-keyboard", "check-if-it-is-possible-to-split-array", "find-the-safest-path-in-a-grid", "maximum-elegance-of-a-k-length-subsequence"]}, {"contest_title": "\u7b2c 358 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 358", "contest_title_slug": "weekly-contest-358", "contest_id": 910, "contest_start_time": 1691893800, "contest_duration": 5400, "user_num": 4475, "question_slugs": ["max-pair-sum-in-an-array", "double-a-number-represented-as-a-linked-list", "minimum-absolute-difference-between-elements-with-constraint", "apply-operations-to-maximize-score"]}, {"contest_title": "\u7b2c 359 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 359", "contest_title_slug": "weekly-contest-359", "contest_id": 913, "contest_start_time": 1692498600, "contest_duration": 5400, "user_num": 4101, "question_slugs": ["check-if-a-string-is-an-acronym-of-words", "determine-the-minimum-sum-of-a-k-avoiding-array", "maximize-the-profit-as-the-salesman", "find-the-longest-equal-subarray"]}, {"contest_title": "\u7b2c 360 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 360", "contest_title_slug": "weekly-contest-360", "contest_id": 918, "contest_start_time": 1693103400, "contest_duration": 5400, "user_num": 4496, "question_slugs": ["furthest-point-from-origin", "find-the-minimum-possible-sum-of-a-beautiful-array", "minimum-operations-to-form-subsequence-with-target-sum", "maximize-value-of-function-in-a-ball-passing-game"]}, {"contest_title": "\u7b2c 361 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 361", "contest_title_slug": "weekly-contest-361", "contest_id": 920, "contest_start_time": 1693708200, "contest_duration": 5400, "user_num": 4170, "question_slugs": ["count-symmetric-integers", "minimum-operations-to-make-a-special-number", "count-of-interesting-subarrays", "minimum-edge-weight-equilibrium-queries-in-a-tree"]}, {"contest_title": "\u7b2c 362 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 362", "contest_title_slug": "weekly-contest-362", "contest_id": 924, "contest_start_time": 1694313000, "contest_duration": 5400, "user_num": 4800, "question_slugs": ["points-that-intersect-with-cars", "determine-if-a-cell-is-reachable-at-a-given-time", "minimum-moves-to-spread-stones-over-grid", "string-transformation"]}, {"contest_title": "\u7b2c 363 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 363", "contest_title_slug": "weekly-contest-363", "contest_id": 926, "contest_start_time": 1694917800, "contest_duration": 5400, "user_num": 4768, "question_slugs": ["sum-of-values-at-indices-with-k-set-bits", "happy-students", "maximum-number-of-alloys", "maximum-element-sum-of-a-complete-subset-of-indices"]}, {"contest_title": "\u7b2c 364 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 364", "contest_title_slug": "weekly-contest-364", "contest_id": 930, "contest_start_time": 1695522600, "contest_duration": 5400, "user_num": 4304, "question_slugs": ["maximum-odd-binary-number", "beautiful-towers-i", "beautiful-towers-ii", "count-valid-paths-in-a-tree"]}, {"contest_title": "\u7b2c 365 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 365", "contest_title_slug": "weekly-contest-365", "contest_id": 932, "contest_start_time": 1696127400, "contest_duration": 5400, "user_num": 2909, "question_slugs": ["maximum-value-of-an-ordered-triplet-i", "maximum-value-of-an-ordered-triplet-ii", "minimum-size-subarray-in-infinite-array", "count-visited-nodes-in-a-directed-graph"]}, {"contest_title": "\u7b2c 366 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 366", "contest_title_slug": "weekly-contest-366", "contest_id": 936, "contest_start_time": 1696732200, "contest_duration": 5400, "user_num": 2790, "question_slugs": ["divisible-and-non-divisible-sums-difference", "minimum-processing-time", "apply-operations-to-make-two-strings-equal", "apply-operations-on-array-to-maximize-sum-of-squares"]}, {"contest_title": "\u7b2c 367 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 367", "contest_title_slug": "weekly-contest-367", "contest_id": 938, "contest_start_time": 1697337000, "contest_duration": 5400, "user_num": 4317, "question_slugs": ["find-indices-with-index-and-value-difference-i", "shortest-and-lexicographically-smallest-beautiful-string", "find-indices-with-index-and-value-difference-ii", "construct-product-matrix"]}, {"contest_title": "\u7b2c 368 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 368", "contest_title_slug": "weekly-contest-368", "contest_id": 942, "contest_start_time": 1697941800, "contest_duration": 5400, "user_num": 5002, "question_slugs": ["minimum-sum-of-mountain-triplets-i", "minimum-sum-of-mountain-triplets-ii", "minimum-number-of-groups-to-create-a-valid-assignment", "minimum-changes-to-make-k-semi-palindromes"]}, {"contest_title": "\u7b2c 369 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 369", "contest_title_slug": "weekly-contest-369", "contest_id": 945, "contest_start_time": 1698546600, "contest_duration": 5400, "user_num": 4121, "question_slugs": ["find-the-k-or-of-an-array", "minimum-equal-sum-of-two-arrays-after-replacing-zeros", "minimum-increment-operations-to-make-array-beautiful", "maximum-points-after-collecting-coins-from-all-nodes"]}, {"contest_title": "\u7b2c 370 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 370", "contest_title_slug": "weekly-contest-370", "contest_id": 950, "contest_start_time": 1699151400, "contest_duration": 5400, "user_num": 3983, "question_slugs": ["find-champion-i", "find-champion-ii", "maximum-score-after-applying-operations-on-a-tree", "maximum-balanced-subsequence-sum"]}, {"contest_title": "\u7b2c 371 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 371", "contest_title_slug": "weekly-contest-371", "contest_id": 952, "contest_start_time": 1699756200, "contest_duration": 5400, "user_num": 3637, "question_slugs": ["maximum-strong-pair-xor-i", "high-access-employees", "minimum-operations-to-maximize-last-elements-in-arrays", "maximum-strong-pair-xor-ii"]}, {"contest_title": "\u7b2c 372 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 372", "contest_title_slug": "weekly-contest-372", "contest_id": 956, "contest_start_time": 1700361000, "contest_duration": 5400, "user_num": 3920, "question_slugs": ["make-three-strings-equal", "separate-black-and-white-balls", "maximum-xor-product", "find-building-where-alice-and-bob-can-meet"]}, {"contest_title": "\u7b2c 373 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 373", "contest_title_slug": "weekly-contest-373", "contest_id": 958, "contest_start_time": 1700965800, "contest_duration": 5400, "user_num": 3577, "question_slugs": ["matrix-similarity-after-cyclic-shifts", "count-beautiful-substrings-i", "make-lexicographically-smallest-array-by-swapping-elements", "count-beautiful-substrings-ii"]}, {"contest_title": "\u7b2c 374 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 374", "contest_title_slug": "weekly-contest-374", "contest_id": 962, "contest_start_time": 1701570600, "contest_duration": 5400, "user_num": 4053, "question_slugs": ["find-the-peaks", "minimum-number-of-coins-to-be-added", "count-complete-substrings", "count-the-number-of-infection-sequences"]}, {"contest_title": "\u7b2c 375 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 375", "contest_title_slug": "weekly-contest-375", "contest_id": 964, "contest_start_time": 1702175400, "contest_duration": 5400, "user_num": 3518, "question_slugs": ["count-tested-devices-after-test-operations", "double-modular-exponentiation", "count-subarrays-where-max-element-appears-at-least-k-times", "count-the-number-of-good-partitions"]}, {"contest_title": "\u7b2c 376 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 376", "contest_title_slug": "weekly-contest-376", "contest_id": 968, "contest_start_time": 1702780200, "contest_duration": 5400, "user_num": 3409, "question_slugs": ["find-missing-and-repeated-values", "divide-array-into-arrays-with-max-difference", "minimum-cost-to-make-array-equalindromic", "apply-operations-to-maximize-frequency-score"]}, {"contest_title": "\u7b2c 377 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 377", "contest_title_slug": "weekly-contest-377", "contest_id": 970, "contest_start_time": 1703385000, "contest_duration": 5400, "user_num": 3148, "question_slugs": ["minimum-number-game", "maximum-square-area-by-removing-fences-from-a-field", "minimum-cost-to-convert-string-i", "minimum-cost-to-convert-string-ii"]}, {"contest_title": "\u7b2c 378 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 378", "contest_title_slug": "weekly-contest-378", "contest_id": 974, "contest_start_time": 1703989800, "contest_duration": 5400, "user_num": 2747, "question_slugs": ["check-if-bitwise-or-has-trailing-zeros", "find-longest-special-substring-that-occurs-thrice-i", "find-longest-special-substring-that-occurs-thrice-ii", "palindrome-rearrangement-queries"]}, {"contest_title": "\u7b2c 379 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 379", "contest_title_slug": "weekly-contest-379", "contest_id": 976, "contest_start_time": 1704594600, "contest_duration": 5400, "user_num": 3117, "question_slugs": ["maximum-area-of-longest-diagonal-rectangle", "minimum-moves-to-capture-the-queen", "maximum-size-of-a-set-after-removals", "maximize-the-number-of-partitions-after-operations"]}, {"contest_title": "\u7b2c 380 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 380", "contest_title_slug": "weekly-contest-380", "contest_id": 980, "contest_start_time": 1705199400, "contest_duration": 5400, "user_num": 3325, "question_slugs": ["count-elements-with-maximum-frequency", "find-beautiful-indices-in-the-given-array-i", "maximum-number-that-sum-of-the-prices-is-less-than-or-equal-to-k", "find-beautiful-indices-in-the-given-array-ii"]}, {"contest_title": "\u7b2c 381 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 381", "contest_title_slug": "weekly-contest-381", "contest_id": 982, "contest_start_time": 1705804200, "contest_duration": 5400, "user_num": 3737, "question_slugs": ["minimum-number-of-pushes-to-type-word-i", "count-the-number-of-houses-at-a-certain-distance-i", "minimum-number-of-pushes-to-type-word-ii", "count-the-number-of-houses-at-a-certain-distance-ii"]}, {"contest_title": "\u7b2c 382 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 382", "contest_title_slug": "weekly-contest-382", "contest_id": 986, "contest_start_time": 1706409000, "contest_duration": 5400, "user_num": 3134, "question_slugs": ["number-of-changing-keys", "find-the-maximum-number-of-elements-in-subset", "alice-and-bob-playing-flower-game", "minimize-or-of-remaining-elements-using-operations"]}, {"contest_title": "\u7b2c 383 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 383", "contest_title_slug": "weekly-contest-383", "contest_id": 988, "contest_start_time": 1707013800, "contest_duration": 5400, "user_num": 2691, "question_slugs": ["ant-on-the-boundary", "minimum-time-to-revert-word-to-initial-state-i", "find-the-grid-of-region-average", "minimum-time-to-revert-word-to-initial-state-ii"]}, {"contest_title": "\u7b2c 384 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 384", "contest_title_slug": "weekly-contest-384", "contest_id": 992, "contest_start_time": 1707618600, "contest_duration": 5400, "user_num": 1652, "question_slugs": ["modify-the-matrix", "number-of-subarrays-that-match-a-pattern-i", "maximum-palindromes-after-operations", "number-of-subarrays-that-match-a-pattern-ii"]}, {"contest_title": "\u7b2c 385 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 385", "contest_title_slug": "weekly-contest-385", "contest_id": 994, "contest_start_time": 1708223400, "contest_duration": 5400, "user_num": 2382, "question_slugs": ["count-prefix-and-suffix-pairs-i", "find-the-length-of-the-longest-common-prefix", "most-frequent-prime", "count-prefix-and-suffix-pairs-ii"]}, {"contest_title": "\u7b2c 386 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 386", "contest_title_slug": "weekly-contest-386", "contest_id": 998, "contest_start_time": 1708828200, "contest_duration": 5400, "user_num": 2731, "question_slugs": ["split-the-array", "find-the-largest-area-of-square-inside-two-rectangles", "earliest-second-to-mark-indices-i", "earliest-second-to-mark-indices-ii"]}, {"contest_title": "\u7b2c 387 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 387", "contest_title_slug": "weekly-contest-387", "contest_id": 1000, "contest_start_time": 1709433000, "contest_duration": 5400, "user_num": 3694, "question_slugs": ["distribute-elements-into-two-arrays-i", "count-submatrices-with-top-left-element-and-sum-less-than-k", "minimum-operations-to-write-the-letter-y-on-a-grid", "distribute-elements-into-two-arrays-ii"]}, {"contest_title": "\u7b2c 388 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 388", "contest_title_slug": "weekly-contest-388", "contest_id": 1004, "contest_start_time": 1710037800, "contest_duration": 5400, "user_num": 4291, "question_slugs": ["apple-redistribution-into-boxes", "maximize-happiness-of-selected-children", "shortest-uncommon-substring-in-an-array", "maximum-strength-of-k-disjoint-subarrays"]}, {"contest_title": "\u7b2c 389 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 389", "contest_title_slug": "weekly-contest-389", "contest_id": 1006, "contest_start_time": 1710642600, "contest_duration": 5400, "user_num": 4561, "question_slugs": ["existence-of-a-substring-in-a-string-and-its-reverse", "count-substrings-starting-and-ending-with-given-character", "minimum-deletions-to-make-string-k-special", "minimum-moves-to-pick-k-ones"]}, {"contest_title": "\u7b2c 390 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 390", "contest_title_slug": "weekly-contest-390", "contest_id": 1011, "contest_start_time": 1711247400, "contest_duration": 5400, "user_num": 4817, "question_slugs": ["maximum-length-substring-with-two-occurrences", "apply-operations-to-make-sum-of-array-greater-than-or-equal-to-k", "most-frequent-ids", "longest-common-suffix-queries"]}, {"contest_title": "\u7b2c 391 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 391", "contest_title_slug": "weekly-contest-391", "contest_id": 1014, "contest_start_time": 1711852200, "contest_duration": 5400, "user_num": 4180, "question_slugs": ["harshad-number", "water-bottles-ii", "count-alternating-subarrays", "minimize-manhattan-distances"]}, {"contest_title": "\u7b2c 392 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 392", "contest_title_slug": "weekly-contest-392", "contest_id": 1018, "contest_start_time": 1712457000, "contest_duration": 5400, "user_num": 3193, "question_slugs": ["longest-strictly-increasing-or-strictly-decreasing-subarray", "lexicographically-smallest-string-after-operations-with-constraint", "minimum-operations-to-make-median-of-array-equal-to-k", "minimum-cost-walk-in-weighted-graph"]}, {"contest_title": "\u7b2c 393 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 393", "contest_title_slug": "weekly-contest-393", "contest_id": 1020, "contest_start_time": 1713061800, "contest_duration": 5400, "user_num": 4218, "question_slugs": ["latest-time-you-can-obtain-after-replacing-characters", "maximum-prime-difference", "kth-smallest-amount-with-single-denomination-combination", "minimum-sum-of-values-by-dividing-array"]}, {"contest_title": "\u7b2c 394 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 394", "contest_title_slug": "weekly-contest-394", "contest_id": 1024, "contest_start_time": 1713666600, "contest_duration": 5400, "user_num": 3957, "question_slugs": ["count-the-number-of-special-characters-i", "count-the-number-of-special-characters-ii", "minimum-number-of-operations-to-satisfy-conditions", "find-edges-in-shortest-paths"]}, {"contest_title": "\u7b2c 395 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 395", "contest_title_slug": "weekly-contest-395", "contest_id": 1026, "contest_start_time": 1714271400, "contest_duration": 5400, "user_num": 2968, "question_slugs": ["find-the-integer-added-to-array-i", "find-the-integer-added-to-array-ii", "minimum-array-end", "find-the-median-of-the-uniqueness-array"]}, {"contest_title": "\u7b2c 396 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 396", "contest_title_slug": "weekly-contest-396", "contest_id": 1030, "contest_start_time": 1714876200, "contest_duration": 5400, "user_num": 2931, "question_slugs": ["valid-word", "minimum-number-of-operations-to-make-word-k-periodic", "minimum-length-of-anagram-concatenation", "minimum-cost-to-equalize-array"]}, {"contest_title": "\u7b2c 397 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 397", "contest_title_slug": "weekly-contest-397", "contest_id": 1032, "contest_start_time": 1715481000, "contest_duration": 5400, "user_num": 3365, "question_slugs": ["permutation-difference-between-two-strings", "taking-maximum-energy-from-the-mystic-dungeon", "maximum-difference-score-in-a-grid", "find-the-minimum-cost-array-permutation"]}, {"contest_title": "\u7b2c 1 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 1", "contest_title_slug": "biweekly-contest-1", "contest_id": 70, "contest_start_time": 1559399400, "contest_duration": 7200, "user_num": 197, "question_slugs": ["fixed-point", "index-pairs-of-a-string", "campus-bikes-ii", "digit-count-in-range"]}, {"contest_title": "\u7b2c 2 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 2", "contest_title_slug": "biweekly-contest-2", "contest_id": 73, "contest_start_time": 1560609000, "contest_duration": 5400, "user_num": 256, "question_slugs": ["sum-of-digits-in-the-minimum-number", "high-five", "brace-expansion", "confusing-number-ii"]}, {"contest_title": "\u7b2c 3 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 3", "contest_title_slug": "biweekly-contest-3", "contest_id": 85, "contest_start_time": 1561818600, "contest_duration": 5400, "user_num": 312, "question_slugs": ["two-sum-less-than-k", "find-k-length-substrings-with-no-repeated-characters", "the-earliest-moment-when-everyone-become-friends", "path-with-maximum-minimum-value"]}, {"contest_title": "\u7b2c 4 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 4", "contest_title_slug": "biweekly-contest-4", "contest_id": 88, "contest_start_time": 1563028200, "contest_duration": 5400, "user_num": 438, "question_slugs": ["number-of-days-in-a-month", "remove-vowels-from-a-string", "maximum-average-subtree", "divide-array-into-increasing-sequences"]}, {"contest_title": "\u7b2c 5 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 5", "contest_title_slug": "biweekly-contest-5", "contest_id": 91, "contest_start_time": 1564237800, "contest_duration": 5400, "user_num": 495, "question_slugs": ["largest-unique-number", "armstrong-number", "connecting-cities-with-minimum-cost", "parallel-courses"]}, {"contest_title": "\u7b2c 6 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 6", "contest_title_slug": "biweekly-contest-6", "contest_id": 95, "contest_start_time": 1565447400, "contest_duration": 5400, "user_num": 513, "question_slugs": ["check-if-a-number-is-majority-element-in-a-sorted-array", "minimum-swaps-to-group-all-1s-together", "analyze-user-website-visit-pattern", "string-transforms-into-another-string"]}, {"contest_title": "\u7b2c 7 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 7", "contest_title_slug": "biweekly-contest-7", "contest_id": 99, "contest_start_time": 1566657000, "contest_duration": 5400, "user_num": 561, "question_slugs": ["single-row-keyboard", "design-file-system", "minimum-cost-to-connect-sticks", "optimize-water-distribution-in-a-village"]}, {"contest_title": "\u7b2c 8 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 8", "contest_title_slug": "biweekly-contest-8", "contest_id": 103, "contest_start_time": 1567866600, "contest_duration": 5400, "user_num": 630, "question_slugs": ["count-substrings-with-only-one-distinct-letter", "before-and-after-puzzle", "shortest-distance-to-target-color", "maximum-number-of-ones"]}, {"contest_title": "\u7b2c 9 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 9", "contest_title_slug": "biweekly-contest-9", "contest_id": 108, "contest_start_time": 1569076200, "contest_duration": 5700, "user_num": 929, "question_slugs": ["how-many-apples-can-you-put-into-the-basket", "minimum-knight-moves", "find-smallest-common-element-in-all-rows", "minimum-time-to-build-blocks"]}, {"contest_title": "\u7b2c 10 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 10", "contest_title_slug": "biweekly-contest-10", "contest_id": 115, "contest_start_time": 1570285800, "contest_duration": 5400, "user_num": 738, "question_slugs": ["intersection-of-three-sorted-arrays", "two-sum-bsts", "stepping-numbers", "valid-palindrome-iii"]}, {"contest_title": "\u7b2c 11 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 11", "contest_title_slug": "biweekly-contest-11", "contest_id": 118, "contest_start_time": 1571495400, "contest_duration": 5400, "user_num": 913, "question_slugs": ["missing-number-in-arithmetic-progression", "meeting-scheduler", "toss-strange-coins", "divide-chocolate"]}, {"contest_title": "\u7b2c 12 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 12", "contest_title_slug": "biweekly-contest-12", "contest_id": 121, "contest_start_time": 1572705000, "contest_duration": 5400, "user_num": 911, "question_slugs": ["design-a-leaderboard", "array-transformation", "tree-diameter", "palindrome-removal"]}, {"contest_title": "\u7b2c 13 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 13", "contest_title_slug": "biweekly-contest-13", "contest_id": 124, "contest_start_time": 1573914600, "contest_duration": 5400, "user_num": 810, "question_slugs": ["encode-number", "smallest-common-region", "synonymous-sentences", "handshakes-that-dont-cross"]}, {"contest_title": "\u7b2c 14 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 14", "contest_title_slug": "biweekly-contest-14", "contest_id": 129, "contest_start_time": 1575124200, "contest_duration": 5400, "user_num": 871, "question_slugs": ["hexspeak", "remove-interval", "delete-tree-nodes", "number-of-ships-in-a-rectangle"]}, {"contest_title": "\u7b2c 15 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 15", "contest_title_slug": "biweekly-contest-15", "contest_id": 132, "contest_start_time": 1576333800, "contest_duration": 5400, "user_num": 797, "question_slugs": ["element-appearing-more-than-25-in-sorted-array", "remove-covered-intervals", "iterator-for-combination", "minimum-falling-path-sum-ii"]}, {"contest_title": "\u7b2c 16 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 16", "contest_title_slug": "biweekly-contest-16", "contest_id": 135, "contest_start_time": 1577543400, "contest_duration": 5400, "user_num": 822, "question_slugs": ["replace-elements-with-greatest-element-on-right-side", "sum-of-mutated-array-closest-to-target", "deepest-leaves-sum", "number-of-paths-with-max-score"]}, {"contest_title": "\u7b2c 17 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 17", "contest_title_slug": "biweekly-contest-17", "contest_id": 138, "contest_start_time": 1578753000, "contest_duration": 5400, "user_num": 897, "question_slugs": ["decompress-run-length-encoded-list", "matrix-block-sum", "sum-of-nodes-with-even-valued-grandparent", "distinct-echo-substrings"]}, {"contest_title": "\u7b2c 18 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 18", "contest_title_slug": "biweekly-contest-18", "contest_id": 143, "contest_start_time": 1579962600, "contest_duration": 5400, "user_num": 587, "question_slugs": ["rank-transform-of-an-array", "break-a-palindrome", "sort-the-matrix-diagonally", "reverse-subarray-to-maximize-array-value"]}, {"contest_title": "\u7b2c 19 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 19", "contest_title_slug": "biweekly-contest-19", "contest_id": 146, "contest_start_time": 1581172200, "contest_duration": 5400, "user_num": 1120, "question_slugs": ["number-of-steps-to-reduce-a-number-to-zero", "number-of-sub-arrays-of-size-k-and-average-greater-than-or-equal-to-threshold", "angle-between-hands-of-a-clock", "jump-game-iv"]}, {"contest_title": "\u7b2c 20 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 20", "contest_title_slug": "biweekly-contest-20", "contest_id": 149, "contest_start_time": 1582381800, "contest_duration": 5400, "user_num": 1541, "question_slugs": ["sort-integers-by-the-number-of-1-bits", "apply-discount-every-n-orders", "number-of-substrings-containing-all-three-characters", "count-all-valid-pickup-and-delivery-options"]}, {"contest_title": "\u7b2c 21 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 21", "contest_title_slug": "biweekly-contest-21", "contest_id": 157, "contest_start_time": 1583591400, "contest_duration": 5400, "user_num": 1913, "question_slugs": ["increasing-decreasing-string", "find-the-longest-substring-containing-vowels-in-even-counts", "longest-zigzag-path-in-a-binary-tree", "maximum-sum-bst-in-binary-tree"]}, {"contest_title": "\u7b2c 22 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 22", "contest_title_slug": "biweekly-contest-22", "contest_id": 163, "contest_start_time": 1584801000, "contest_duration": 5400, "user_num": 2042, "question_slugs": ["find-the-distance-value-between-two-arrays", "cinema-seat-allocation", "sort-integers-by-the-power-value", "pizza-with-3n-slices"]}, {"contest_title": "\u7b2c 23 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 23", "contest_title_slug": "biweekly-contest-23", "contest_id": 169, "contest_start_time": 1586010600, "contest_duration": 5400, "user_num": 2045, "question_slugs": ["count-largest-group", "construct-k-palindrome-strings", "circle-and-rectangle-overlapping", "reducing-dishes"]}, {"contest_title": "\u7b2c 24 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 24", "contest_title_slug": "biweekly-contest-24", "contest_id": 178, "contest_start_time": 1587220200, "contest_duration": 5400, "user_num": 1898, "question_slugs": ["minimum-value-to-get-positive-step-by-step-sum", "find-the-minimum-number-of-fibonacci-numbers-whose-sum-is-k", "the-k-th-lexicographical-string-of-all-happy-strings-of-length-n", "restore-the-array"]}, {"contest_title": "\u7b2c 25 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 25", "contest_title_slug": "biweekly-contest-25", "contest_id": 192, "contest_start_time": 1588429800, "contest_duration": 5400, "user_num": 1832, "question_slugs": ["kids-with-the-greatest-number-of-candies", "max-difference-you-can-get-from-changing-an-integer", "check-if-a-string-can-break-another-string", "number-of-ways-to-wear-different-hats-to-each-other"]}, {"contest_title": "\u7b2c 26 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 26", "contest_title_slug": "biweekly-contest-26", "contest_id": 198, "contest_start_time": 1589639400, "contest_duration": 5400, "user_num": 1971, "question_slugs": ["consecutive-characters", "simplified-fractions", "count-good-nodes-in-binary-tree", "form-largest-integer-with-digits-that-add-up-to-target"]}, {"contest_title": "\u7b2c 27 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 27", "contest_title_slug": "biweekly-contest-27", "contest_id": 204, "contest_start_time": 1590849000, "contest_duration": 5400, "user_num": 1966, "question_slugs": ["make-two-arrays-equal-by-reversing-subarrays", "check-if-a-string-contains-all-binary-codes-of-size-k", "course-schedule-iv", "cherry-pickup-ii"]}, {"contest_title": "\u7b2c 28 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 28", "contest_title_slug": "biweekly-contest-28", "contest_id": 210, "contest_start_time": 1592058600, "contest_duration": 5400, "user_num": 2144, "question_slugs": ["final-prices-with-a-special-discount-in-a-shop", "subrectangle-queries", "find-two-non-overlapping-sub-arrays-each-with-target-sum", "allocate-mailboxes"]}, {"contest_title": "\u7b2c 29 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 29", "contest_title_slug": "biweekly-contest-29", "contest_id": 216, "contest_start_time": 1593268200, "contest_duration": 5400, "user_num": 2260, "question_slugs": ["average-salary-excluding-the-minimum-and-maximum-salary", "the-kth-factor-of-n", "longest-subarray-of-1s-after-deleting-one-element", "parallel-courses-ii"]}, {"contest_title": "\u7b2c 30 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 30", "contest_title_slug": "biweekly-contest-30", "contest_id": 222, "contest_start_time": 1594477800, "contest_duration": 5400, "user_num": 2545, "question_slugs": ["reformat-date", "range-sum-of-sorted-subarray-sums", "minimum-difference-between-largest-and-smallest-value-in-three-moves", "stone-game-iv"]}, {"contest_title": "\u7b2c 31 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 31", "contest_title_slug": "biweekly-contest-31", "contest_id": 232, "contest_start_time": 1595687400, "contest_duration": 5400, "user_num": 2767, "question_slugs": ["count-odd-numbers-in-an-interval-range", "number-of-sub-arrays-with-odd-sum", "number-of-good-ways-to-split-a-string", "minimum-number-of-increments-on-subarrays-to-form-a-target-array"]}, {"contest_title": "\u7b2c 32 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 32", "contest_title_slug": "biweekly-contest-32", "contest_id": 237, "contest_start_time": 1596897000, "contest_duration": 5400, "user_num": 2957, "question_slugs": ["kth-missing-positive-number", "can-convert-string-in-k-moves", "minimum-insertions-to-balance-a-parentheses-string", "find-longest-awesome-substring"]}, {"contest_title": "\u7b2c 33 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 33", "contest_title_slug": "biweekly-contest-33", "contest_id": 241, "contest_start_time": 1598106600, "contest_duration": 5400, "user_num": 3304, "question_slugs": ["thousand-separator", "minimum-number-of-vertices-to-reach-all-nodes", "minimum-numbers-of-function-calls-to-make-target-array", "detect-cycles-in-2d-grid"]}, {"contest_title": "\u7b2c 34 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 34", "contest_title_slug": "biweekly-contest-34", "contest_id": 256, "contest_start_time": 1599316200, "contest_duration": 5400, "user_num": 2842, "question_slugs": ["matrix-diagonal-sum", "number-of-ways-to-split-a-string", "shortest-subarray-to-be-removed-to-make-array-sorted", "count-all-possible-routes"]}, {"contest_title": "\u7b2c 35 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 35", "contest_title_slug": "biweekly-contest-35", "contest_id": 266, "contest_start_time": 1600525800, "contest_duration": 5400, "user_num": 2839, "question_slugs": ["sum-of-all-odd-length-subarrays", "maximum-sum-obtained-of-any-permutation", "make-sum-divisible-by-p", "strange-printer-ii"]}, {"contest_title": "\u7b2c 36 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 36", "contest_title_slug": "biweekly-contest-36", "contest_id": 288, "contest_start_time": 1601735400, "contest_duration": 5400, "user_num": 2204, "question_slugs": ["design-parking-system", "alert-using-same-key-card-three-or-more-times-in-a-one-hour-period", "find-valid-matrix-given-row-and-column-sums", "find-servers-that-handled-most-number-of-requests"]}, {"contest_title": "\u7b2c 37 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 37", "contest_title_slug": "biweekly-contest-37", "contest_id": 294, "contest_start_time": 1602945000, "contest_duration": 5400, "user_num": 2104, "question_slugs": ["mean-of-array-after-removing-some-elements", "coordinate-with-maximum-network-quality", "number-of-sets-of-k-non-overlapping-line-segments", "fancy-sequence"]}, {"contest_title": "\u7b2c 38 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 38", "contest_title_slug": "biweekly-contest-38", "contest_id": 300, "contest_start_time": 1604154600, "contest_duration": 5400, "user_num": 2004, "question_slugs": ["sort-array-by-increasing-frequency", "widest-vertical-area-between-two-points-containing-no-points", "count-substrings-that-differ-by-one-character", "number-of-ways-to-form-a-target-string-given-a-dictionary"]}, {"contest_title": "\u7b2c 39 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 39", "contest_title_slug": "biweekly-contest-39", "contest_id": 306, "contest_start_time": 1605364200, "contest_duration": 5400, "user_num": 2069, "question_slugs": ["defuse-the-bomb", "minimum-deletions-to-make-string-balanced", "minimum-jumps-to-reach-home", "distribute-repeating-integers"]}, {"contest_title": "\u7b2c 40 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 40", "contest_title_slug": "biweekly-contest-40", "contest_id": 312, "contest_start_time": 1606573800, "contest_duration": 5400, "user_num": 1891, "question_slugs": ["maximum-repeating-substring", "merge-in-between-linked-lists", "design-front-middle-back-queue", "minimum-number-of-removals-to-make-mountain-array"]}, {"contest_title": "\u7b2c 41 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 41", "contest_title_slug": "biweekly-contest-41", "contest_id": 318, "contest_start_time": 1607783400, "contest_duration": 5400, "user_num": 1660, "question_slugs": ["count-the-number-of-consistent-strings", "sum-of-absolute-differences-in-a-sorted-array", "stone-game-vi", "delivering-boxes-from-storage-to-ports"]}, {"contest_title": "\u7b2c 42 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 42", "contest_title_slug": "biweekly-contest-42", "contest_id": 325, "contest_start_time": 1608993000, "contest_duration": 5400, "user_num": 1578, "question_slugs": ["number-of-students-unable-to-eat-lunch", "average-waiting-time", "maximum-binary-string-after-change", "minimum-adjacent-swaps-for-k-consecutive-ones"]}, {"contest_title": "\u7b2c 43 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 43", "contest_title_slug": "biweekly-contest-43", "contest_id": 331, "contest_start_time": 1610202600, "contest_duration": 5400, "user_num": 1631, "question_slugs": ["calculate-money-in-leetcode-bank", "maximum-score-from-removing-substrings", "construct-the-lexicographically-largest-valid-sequence", "number-of-ways-to-reconstruct-a-tree"]}, {"contest_title": "\u7b2c 44 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 44", "contest_title_slug": "biweekly-contest-44", "contest_id": 337, "contest_start_time": 1611412200, "contest_duration": 5400, "user_num": 1826, "question_slugs": ["find-the-highest-altitude", "minimum-number-of-people-to-teach", "decode-xored-permutation", "count-ways-to-make-array-with-product"]}, {"contest_title": "\u7b2c 45 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 45", "contest_title_slug": "biweekly-contest-45", "contest_id": 343, "contest_start_time": 1612621800, "contest_duration": 5400, "user_num": 1676, "question_slugs": ["sum-of-unique-elements", "maximum-absolute-sum-of-any-subarray", "minimum-length-of-string-after-deleting-similar-ends", "maximum-number-of-events-that-can-be-attended-ii"]}, {"contest_title": "\u7b2c 46 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 46", "contest_title_slug": "biweekly-contest-46", "contest_id": 349, "contest_start_time": 1613831400, "contest_duration": 5400, "user_num": 1647, "question_slugs": ["longest-nice-substring", "form-array-by-concatenating-subarrays-of-another-array", "map-of-highest-peak", "tree-of-coprimes"]}, {"contest_title": "\u7b2c 47 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 47", "contest_title_slug": "biweekly-contest-47", "contest_id": 355, "contest_start_time": 1615041000, "contest_duration": 5400, "user_num": 3085, "question_slugs": ["find-nearest-point-that-has-the-same-x-or-y-coordinate", "check-if-number-is-a-sum-of-powers-of-three", "sum-of-beauty-of-all-substrings", "count-pairs-of-nodes"]}, {"contest_title": "\u7b2c 48 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 48", "contest_title_slug": "biweekly-contest-48", "contest_id": 362, "contest_start_time": 1616250600, "contest_duration": 5400, "user_num": 2853, "question_slugs": ["second-largest-digit-in-a-string", "design-authentication-manager", "maximum-number-of-consecutive-values-you-can-make", "maximize-score-after-n-operations"]}, {"contest_title": "\u7b2c 49 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 49", "contest_title_slug": "biweekly-contest-49", "contest_id": 374, "contest_start_time": 1617460200, "contest_duration": 5400, "user_num": 3193, "question_slugs": ["determine-color-of-a-chessboard-square", "sentence-similarity-iii", "count-nice-pairs-in-an-array", "maximum-number-of-groups-getting-fresh-donuts"]}, {"contest_title": "\u7b2c 50 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 50", "contest_title_slug": "biweekly-contest-50", "contest_id": 390, "contest_start_time": 1618669800, "contest_duration": 5400, "user_num": 3608, "question_slugs": ["minimum-operations-to-make-the-array-increasing", "queries-on-number-of-points-inside-a-circle", "maximum-xor-for-each-query", "minimum-number-of-operations-to-make-string-sorted"]}, {"contest_title": "\u7b2c 51 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 51", "contest_title_slug": "biweekly-contest-51", "contest_id": 396, "contest_start_time": 1619879400, "contest_duration": 5400, "user_num": 2675, "question_slugs": ["replace-all-digits-with-characters", "seat-reservation-manager", "maximum-element-after-decreasing-and-rearranging", "closest-room"]}, {"contest_title": "\u7b2c 52 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 52", "contest_title_slug": "biweekly-contest-52", "contest_id": 402, "contest_start_time": 1621089000, "contest_duration": 5400, "user_num": 2930, "question_slugs": ["sorting-the-sentence", "incremental-memory-leak", "rotating-the-box", "sum-of-floored-pairs"]}, {"contest_title": "\u7b2c 53 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 53", "contest_title_slug": "biweekly-contest-53", "contest_id": 408, "contest_start_time": 1622298600, "contest_duration": 5400, "user_num": 3069, "question_slugs": ["substrings-of-size-three-with-distinct-characters", "minimize-maximum-pair-sum-in-array", "get-biggest-three-rhombus-sums-in-a-grid", "minimum-xor-sum-of-two-arrays"]}, {"contest_title": "\u7b2c 54 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 54", "contest_title_slug": "biweekly-contest-54", "contest_id": 414, "contest_start_time": 1623508200, "contest_duration": 5400, "user_num": 2479, "question_slugs": ["check-if-all-the-integers-in-a-range-are-covered", "find-the-student-that-will-replace-the-chalk", "largest-magic-square", "minimum-cost-to-change-the-final-value-of-expression"]}, {"contest_title": "\u7b2c 55 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 55", "contest_title_slug": "biweekly-contest-55", "contest_id": 421, "contest_start_time": 1624717800, "contest_duration": 5400, "user_num": 3277, "question_slugs": ["remove-one-element-to-make-the-array-strictly-increasing", "remove-all-occurrences-of-a-substring", "maximum-alternating-subsequence-sum", "design-movie-rental-system"]}, {"contest_title": "\u7b2c 56 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 56", "contest_title_slug": "biweekly-contest-56", "contest_id": 429, "contest_start_time": 1625927400, "contest_duration": 5400, "user_num": 2760, "question_slugs": ["count-square-sum-triples", "nearest-exit-from-entrance-in-maze", "sum-game", "minimum-cost-to-reach-destination-in-time"]}, {"contest_title": "\u7b2c 57 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 57", "contest_title_slug": "biweekly-contest-57", "contest_id": 435, "contest_start_time": 1627137000, "contest_duration": 5400, "user_num": 2933, "question_slugs": ["check-if-all-characters-have-equal-number-of-occurrences", "the-number-of-the-smallest-unoccupied-chair", "describe-the-painting", "number-of-visible-people-in-a-queue"]}, {"contest_title": "\u7b2c 58 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 58", "contest_title_slug": "biweekly-contest-58", "contest_id": 441, "contest_start_time": 1628346600, "contest_duration": 5400, "user_num": 2889, "question_slugs": ["delete-characters-to-make-fancy-string", "check-if-move-is-legal", "minimum-total-space-wasted-with-k-resizing-operations", "maximum-product-of-the-length-of-two-palindromic-substrings"]}, {"contest_title": "\u7b2c 59 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 59", "contest_title_slug": "biweekly-contest-59", "contest_id": 448, "contest_start_time": 1629556200, "contest_duration": 5400, "user_num": 3030, "question_slugs": ["minimum-time-to-type-word-using-special-typewriter", "maximum-matrix-sum", "number-of-ways-to-arrive-at-destination", "number-of-ways-to-separate-numbers"]}, {"contest_title": "\u7b2c 60 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 60", "contest_title_slug": "biweekly-contest-60", "contest_id": 461, "contest_start_time": 1630765800, "contest_duration": 5400, "user_num": 2848, "question_slugs": ["find-the-middle-index-in-array", "find-all-groups-of-farmland", "operations-on-tree", "the-number-of-good-subsets"]}, {"contest_title": "\u7b2c 61 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 61", "contest_title_slug": "biweekly-contest-61", "contest_id": 467, "contest_start_time": 1631975400, "contest_duration": 5400, "user_num": 2534, "question_slugs": ["count-number-of-pairs-with-absolute-difference-k", "find-original-array-from-doubled-array", "maximum-earnings-from-taxi", "minimum-number-of-operations-to-make-array-continuous"]}, {"contest_title": "\u7b2c 62 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 62", "contest_title_slug": "biweekly-contest-62", "contest_id": 477, "contest_start_time": 1633185000, "contest_duration": 5400, "user_num": 2619, "question_slugs": ["convert-1d-array-into-2d-array", "number-of-pairs-of-strings-with-concatenation-equal-to-target", "maximize-the-confusion-of-an-exam", "maximum-number-of-ways-to-partition-an-array"]}, {"contest_title": "\u7b2c 63 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 63", "contest_title_slug": "biweekly-contest-63", "contest_id": 484, "contest_start_time": 1634394600, "contest_duration": 5400, "user_num": 2828, "question_slugs": ["minimum-number-of-moves-to-seat-everyone", "remove-colored-pieces-if-both-neighbors-are-the-same-color", "the-time-when-the-network-becomes-idle", "kth-smallest-product-of-two-sorted-arrays"]}, {"contest_title": "\u7b2c 64 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 64", "contest_title_slug": "biweekly-contest-64", "contest_id": 490, "contest_start_time": 1635604200, "contest_duration": 5400, "user_num": 2838, "question_slugs": ["kth-distinct-string-in-an-array", "two-best-non-overlapping-events", "plates-between-candles", "number-of-valid-move-combinations-on-chessboard"]}, {"contest_title": "\u7b2c 65 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 65", "contest_title_slug": "biweekly-contest-65", "contest_id": 497, "contest_start_time": 1636813800, "contest_duration": 5400, "user_num": 2676, "question_slugs": ["check-whether-two-strings-are-almost-equivalent", "walking-robot-simulation-ii", "most-beautiful-item-for-each-query", "maximum-number-of-tasks-you-can-assign"]}, {"contest_title": "\u7b2c 66 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 66", "contest_title_slug": "biweekly-contest-66", "contest_id": 503, "contest_start_time": 1638023400, "contest_duration": 5400, "user_num": 2803, "question_slugs": ["count-common-words-with-one-occurrence", "minimum-number-of-food-buckets-to-feed-the-hamsters", "minimum-cost-homecoming-of-a-robot-in-a-grid", "count-fertile-pyramids-in-a-land"]}, {"contest_title": "\u7b2c 67 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 67", "contest_title_slug": "biweekly-contest-67", "contest_id": 509, "contest_start_time": 1639233000, "contest_duration": 5400, "user_num": 2923, "question_slugs": ["find-subsequence-of-length-k-with-the-largest-sum", "find-good-days-to-rob-the-bank", "detonate-the-maximum-bombs", "sequentially-ordinal-rank-tracker"]}, {"contest_title": "\u7b2c 68 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 68", "contest_title_slug": "biweekly-contest-68", "contest_id": 515, "contest_start_time": 1640442600, "contest_duration": 5400, "user_num": 2854, "question_slugs": ["maximum-number-of-words-found-in-sentences", "find-all-possible-recipes-from-given-supplies", "check-if-a-parentheses-string-can-be-valid", "abbreviating-the-product-of-a-range"]}, {"contest_title": "\u7b2c 69 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 69", "contest_title_slug": "biweekly-contest-69", "contest_id": 521, "contest_start_time": 1641652200, "contest_duration": 5400, "user_num": 3360, "question_slugs": ["capitalize-the-title", "maximum-twin-sum-of-a-linked-list", "longest-palindrome-by-concatenating-two-letter-words", "stamping-the-grid"]}, {"contest_title": "\u7b2c 70 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 70", "contest_title_slug": "biweekly-contest-70", "contest_id": 527, "contest_start_time": 1642861800, "contest_duration": 5400, "user_num": 3640, "question_slugs": ["minimum-cost-of-buying-candies-with-discount", "count-the-hidden-sequences", "k-highest-ranked-items-within-a-price-range", "number-of-ways-to-divide-a-long-corridor"]}, {"contest_title": "\u7b2c 71 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 71", "contest_title_slug": "biweekly-contest-71", "contest_id": 533, "contest_start_time": 1644071400, "contest_duration": 5400, "user_num": 3028, "question_slugs": ["minimum-sum-of-four-digit-number-after-splitting-digits", "partition-array-according-to-given-pivot", "minimum-cost-to-set-cooking-time", "minimum-difference-in-sums-after-removal-of-elements"]}, {"contest_title": "\u7b2c 72 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 72", "contest_title_slug": "biweekly-contest-72", "contest_id": 539, "contest_start_time": 1645281000, "contest_duration": 5400, "user_num": 4400, "question_slugs": ["count-equal-and-divisible-pairs-in-an-array", "find-three-consecutive-integers-that-sum-to-a-given-number", "maximum-split-of-positive-even-integers", "count-good-triplets-in-an-array"]}, {"contest_title": "\u7b2c 73 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 73", "contest_title_slug": "biweekly-contest-73", "contest_id": 545, "contest_start_time": 1646490600, "contest_duration": 5400, "user_num": 5132, "question_slugs": ["most-frequent-number-following-key-in-an-array", "sort-the-jumbled-numbers", "all-ancestors-of-a-node-in-a-directed-acyclic-graph", "minimum-number-of-moves-to-make-palindrome"]}, {"contest_title": "\u7b2c 74 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 74", "contest_title_slug": "biweekly-contest-74", "contest_id": 554, "contest_start_time": 1647700200, "contest_duration": 5400, "user_num": 5442, "question_slugs": ["divide-array-into-equal-pairs", "maximize-number-of-subsequences-in-a-string", "minimum-operations-to-halve-array-sum", "minimum-white-tiles-after-covering-with-carpets"]}, {"contest_title": "\u7b2c 75 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 75", "contest_title_slug": "biweekly-contest-75", "contest_id": 563, "contest_start_time": 1648909800, "contest_duration": 5400, "user_num": 4335, "question_slugs": ["minimum-bit-flips-to-convert-number", "find-triangular-sum-of-an-array", "number-of-ways-to-select-buildings", "sum-of-scores-of-built-strings"]}, {"contest_title": "\u7b2c 76 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 76", "contest_title_slug": "biweekly-contest-76", "contest_id": 572, "contest_start_time": 1650119400, "contest_duration": 5400, "user_num": 4477, "question_slugs": ["find-closest-number-to-zero", "number-of-ways-to-buy-pens-and-pencils", "design-an-atm-machine", "maximum-score-of-a-node-sequence"]}, {"contest_title": "\u7b2c 77 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 77", "contest_title_slug": "biweekly-contest-77", "contest_id": 581, "contest_start_time": 1651329000, "contest_duration": 5400, "user_num": 4211, "question_slugs": ["count-prefixes-of-a-given-string", "minimum-average-difference", "count-unguarded-cells-in-the-grid", "escape-the-spreading-fire"]}, {"contest_title": "\u7b2c 78 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 78", "contest_title_slug": "biweekly-contest-78", "contest_id": 590, "contest_start_time": 1652538600, "contest_duration": 5400, "user_num": 4347, "question_slugs": ["find-the-k-beauty-of-a-number", "number-of-ways-to-split-array", "maximum-white-tiles-covered-by-a-carpet", "substring-with-largest-variance"]}, {"contest_title": "\u7b2c 79 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 79", "contest_title_slug": "biweekly-contest-79", "contest_id": 598, "contest_start_time": 1653748200, "contest_duration": 5400, "user_num": 4250, "question_slugs": ["check-if-number-has-equal-digit-count-and-digit-value", "sender-with-largest-word-count", "maximum-total-importance-of-roads", "booking-concert-tickets-in-groups"]}, {"contest_title": "\u7b2c 80 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 80", "contest_title_slug": "biweekly-contest-80", "contest_id": 608, "contest_start_time": 1654957800, "contest_duration": 5400, "user_num": 3949, "question_slugs": ["strong-password-checker-ii", "successful-pairs-of-spells-and-potions", "match-substring-after-replacement", "count-subarrays-with-score-less-than-k"]}, {"contest_title": "\u7b2c 81 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 81", "contest_title_slug": "biweekly-contest-81", "contest_id": 614, "contest_start_time": 1656167400, "contest_duration": 5400, "user_num": 3847, "question_slugs": ["count-asterisks", "count-unreachable-pairs-of-nodes-in-an-undirected-graph", "maximum-xor-after-operations", "number-of-distinct-roll-sequences"]}, {"contest_title": "\u7b2c 82 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 82", "contest_title_slug": "biweekly-contest-82", "contest_id": 646, "contest_start_time": 1657377000, "contest_duration": 5400, "user_num": 4144, "question_slugs": ["evaluate-boolean-binary-tree", "the-latest-time-to-catch-a-bus", "minimum-sum-of-squared-difference", "subarray-with-elements-greater-than-varying-threshold"]}, {"contest_title": "\u7b2c 83 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 83", "contest_title_slug": "biweekly-contest-83", "contest_id": 652, "contest_start_time": 1658586600, "contest_duration": 5400, "user_num": 4437, "question_slugs": ["best-poker-hand", "number-of-zero-filled-subarrays", "design-a-number-container-system", "shortest-impossible-sequence-of-rolls"]}, {"contest_title": "\u7b2c 84 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 84", "contest_title_slug": "biweekly-contest-84", "contest_id": 658, "contest_start_time": 1659796200, "contest_duration": 5400, "user_num": 4574, "question_slugs": ["merge-similar-items", "count-number-of-bad-pairs", "task-scheduler-ii", "minimum-replacements-to-sort-the-array"]}, {"contest_title": "\u7b2c 85 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 85", "contest_title_slug": "biweekly-contest-85", "contest_id": 668, "contest_start_time": 1661005800, "contest_duration": 5400, "user_num": 4193, "question_slugs": ["minimum-recolors-to-get-k-consecutive-black-blocks", "time-needed-to-rearrange-a-binary-string", "shifting-letters-ii", "maximum-segment-sum-after-removals"]}, {"contest_title": "\u7b2c 86 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 86", "contest_title_slug": "biweekly-contest-86", "contest_id": 688, "contest_start_time": 1662215400, "contest_duration": 5400, "user_num": 4401, "question_slugs": ["find-subarrays-with-equal-sum", "strictly-palindromic-number", "maximum-rows-covered-by-columns", "maximum-number-of-robots-within-budget"]}, {"contest_title": "\u7b2c 87 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 87", "contest_title_slug": "biweekly-contest-87", "contest_id": 703, "contest_start_time": 1663425000, "contest_duration": 5400, "user_num": 4005, "question_slugs": ["count-days-spent-together", "maximum-matching-of-players-with-trainers", "smallest-subarrays-with-maximum-bitwise-or", "minimum-money-required-before-transactions"]}, {"contest_title": "\u7b2c 88 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 88", "contest_title_slug": "biweekly-contest-88", "contest_id": 745, "contest_start_time": 1664634600, "contest_duration": 5400, "user_num": 3905, "question_slugs": ["remove-letter-to-equalize-frequency", "longest-uploaded-prefix", "bitwise-xor-of-all-pairings", "number-of-pairs-satisfying-inequality"]}, {"contest_title": "\u7b2c 89 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 89", "contest_title_slug": "biweekly-contest-89", "contest_id": 755, "contest_start_time": 1665844200, "contest_duration": 5400, "user_num": 3984, "question_slugs": ["number-of-valid-clock-times", "range-product-queries-of-powers", "minimize-maximum-of-array", "create-components-with-same-value"]}, {"contest_title": "\u7b2c 90 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 90", "contest_title_slug": "biweekly-contest-90", "contest_id": 763, "contest_start_time": 1667053800, "contest_duration": 5400, "user_num": 3624, "question_slugs": ["odd-string-difference", "words-within-two-edits-of-dictionary", "destroy-sequential-targets", "next-greater-element-iv"]}, {"contest_title": "\u7b2c 91 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 91", "contest_title_slug": "biweekly-contest-91", "contest_id": 770, "contest_start_time": 1668263400, "contest_duration": 5400, "user_num": 3535, "question_slugs": ["number-of-distinct-averages", "count-ways-to-build-good-strings", "most-profitable-path-in-a-tree", "split-message-based-on-limit"]}, {"contest_title": "\u7b2c 92 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 92", "contest_title_slug": "biweekly-contest-92", "contest_id": 776, "contest_start_time": 1669473000, "contest_duration": 5400, "user_num": 3055, "question_slugs": ["minimum-cuts-to-divide-a-circle", "difference-between-ones-and-zeros-in-row-and-column", "minimum-penalty-for-a-shop", "count-palindromic-subsequences"]}, {"contest_title": "\u7b2c 93 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 93", "contest_title_slug": "biweekly-contest-93", "contest_id": 782, "contest_start_time": 1670682600, "contest_duration": 5400, "user_num": 2929, "question_slugs": ["maximum-value-of-a-string-in-an-array", "maximum-star-sum-of-a-graph", "frog-jump-ii", "minimum-total-cost-to-make-arrays-unequal"]}, {"contest_title": "\u7b2c 94 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 94", "contest_title_slug": "biweekly-contest-94", "contest_id": 789, "contest_start_time": 1671892200, "contest_duration": 5400, "user_num": 2298, "question_slugs": ["maximum-enemy-forts-that-can-be-captured", "reward-top-k-students", "minimize-the-maximum-of-two-arrays", "count-anagrams"]}, {"contest_title": "\u7b2c 95 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 95", "contest_title_slug": "biweekly-contest-95", "contest_id": 798, "contest_start_time": 1673101800, "contest_duration": 5400, "user_num": 2880, "question_slugs": ["categorize-box-according-to-criteria", "find-consecutive-integers-from-a-data-stream", "find-xor-beauty-of-array", "maximize-the-minimum-powered-city"]}, {"contest_title": "\u7b2c 96 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 96", "contest_title_slug": "biweekly-contest-96", "contest_id": 804, "contest_start_time": 1674311400, "contest_duration": 5400, "user_num": 2103, "question_slugs": ["minimum-common-value", "minimum-operations-to-make-array-equal-ii", "maximum-subsequence-score", "check-if-point-is-reachable"]}, {"contest_title": "\u7b2c 97 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 97", "contest_title_slug": "biweekly-contest-97", "contest_id": 810, "contest_start_time": 1675521000, "contest_duration": 5400, "user_num": 2631, "question_slugs": ["separate-the-digits-in-an-array", "maximum-number-of-integers-to-choose-from-a-range-i", "maximize-win-from-two-segments", "disconnect-path-in-a-binary-matrix-by-at-most-one-flip"]}, {"contest_title": "\u7b2c 98 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 98", "contest_title_slug": "biweekly-contest-98", "contest_id": 816, "contest_start_time": 1676730600, "contest_duration": 5400, "user_num": 3250, "question_slugs": ["maximum-difference-by-remapping-a-digit", "minimum-score-by-changing-two-elements", "minimum-impossible-or", "handling-sum-queries-after-update"]}, {"contest_title": "\u7b2c 99 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 99", "contest_title_slug": "biweekly-contest-99", "contest_id": 822, "contest_start_time": 1677940200, "contest_duration": 5400, "user_num": 3467, "question_slugs": ["split-with-minimum-sum", "count-total-number-of-colored-cells", "count-ways-to-group-overlapping-ranges", "count-number-of-possible-root-nodes"]}, {"contest_title": "\u7b2c 100 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 100", "contest_title_slug": "biweekly-contest-100", "contest_id": 832, "contest_start_time": 1679149800, "contest_duration": 5400, "user_num": 3639, "question_slugs": ["distribute-money-to-maximum-children", "maximize-greatness-of-an-array", "find-score-of-an-array-after-marking-all-elements", "minimum-time-to-repair-cars"]}, {"contest_title": "\u7b2c 101 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 101", "contest_title_slug": "biweekly-contest-101", "contest_id": 842, "contest_start_time": 1680359400, "contest_duration": 5400, "user_num": 3353, "question_slugs": ["form-smallest-number-from-two-digit-arrays", "find-the-substring-with-maximum-cost", "make-k-subarray-sums-equal", "shortest-cycle-in-a-graph"]}, {"contest_title": "\u7b2c 102 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 102", "contest_title_slug": "biweekly-contest-102", "contest_id": 853, "contest_start_time": 1681569000, "contest_duration": 5400, "user_num": 3058, "question_slugs": ["find-the-width-of-columns-of-a-grid", "find-the-score-of-all-prefixes-of-an-array", "cousins-in-binary-tree-ii", "design-graph-with-shortest-path-calculator"]}, {"contest_title": "\u7b2c 103 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 103", "contest_title_slug": "biweekly-contest-103", "contest_id": 859, "contest_start_time": 1682778600, "contest_duration": 5400, "user_num": 2299, "question_slugs": ["maximum-sum-with-exactly-k-elements", "find-the-prefix-common-array-of-two-arrays", "maximum-number-of-fish-in-a-grid", "make-array-empty"]}, {"contest_title": "\u7b2c 104 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 104", "contest_title_slug": "biweekly-contest-104", "contest_id": 866, "contest_start_time": 1683988200, "contest_duration": 5400, "user_num": 2519, "question_slugs": ["number-of-senior-citizens", "sum-in-a-matrix", "maximum-or", "power-of-heroes"]}, {"contest_title": "\u7b2c 105 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 105", "contest_title_slug": "biweekly-contest-105", "contest_id": 873, "contest_start_time": 1685197800, "contest_duration": 5400, "user_num": 2604, "question_slugs": ["buy-two-chocolates", "extra-characters-in-a-string", "maximum-strength-of-a-group", "greatest-common-divisor-traversal"]}, {"contest_title": "\u7b2c 106 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 106", "contest_title_slug": "biweekly-contest-106", "contest_id": 879, "contest_start_time": 1686407400, "contest_duration": 5400, "user_num": 2346, "question_slugs": ["check-if-the-number-is-fascinating", "find-the-longest-semi-repetitive-substring", "movement-of-robots", "find-a-good-subset-of-the-matrix"]}, {"contest_title": "\u7b2c 107 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 107", "contest_title_slug": "biweekly-contest-107", "contest_id": 885, "contest_start_time": 1687617000, "contest_duration": 5400, "user_num": 1870, "question_slugs": ["find-maximum-number-of-string-pairs", "construct-the-longest-new-string", "decremental-string-concatenation", "count-zero-request-servers"]}, {"contest_title": "\u7b2c 108 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 108", "contest_title_slug": "biweekly-contest-108", "contest_id": 891, "contest_start_time": 1688826600, "contest_duration": 5400, "user_num": 2349, "question_slugs": ["longest-alternating-subarray", "relocate-marbles", "partition-string-into-minimum-beautiful-substrings", "number-of-black-blocks"]}, {"contest_title": "\u7b2c 109 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 109", "contest_title_slug": "biweekly-contest-109", "contest_id": 897, "contest_start_time": 1690036200, "contest_duration": 5400, "user_num": 2461, "question_slugs": ["check-if-array-is-good", "sort-vowels-in-a-string", "visit-array-positions-to-maximize-score", "ways-to-express-an-integer-as-sum-of-powers"]}, {"contest_title": "\u7b2c 110 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 110", "contest_title_slug": "biweekly-contest-110", "contest_id": 903, "contest_start_time": 1691245800, "contest_duration": 5400, "user_num": 2546, "question_slugs": ["account-balance-after-rounded-purchase", "insert-greatest-common-divisors-in-linked-list", "minimum-seconds-to-equalize-a-circular-array", "minimum-time-to-make-array-sum-at-most-x"]}, {"contest_title": "\u7b2c 111 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 111", "contest_title_slug": "biweekly-contest-111", "contest_id": 909, "contest_start_time": 1692455400, "contest_duration": 5400, "user_num": 2787, "question_slugs": ["count-pairs-whose-sum-is-less-than-target", "make-string-a-subsequence-using-cyclic-increments", "sorting-three-groups", "number-of-beautiful-integers-in-the-range"]}, {"contest_title": "\u7b2c 112 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 112", "contest_title_slug": "biweekly-contest-112", "contest_id": 917, "contest_start_time": 1693665000, "contest_duration": 5400, "user_num": 2900, "question_slugs": ["check-if-strings-can-be-made-equal-with-operations-i", "check-if-strings-can-be-made-equal-with-operations-ii", "maximum-sum-of-almost-unique-subarray", "count-k-subsequences-of-a-string-with-maximum-beauty"]}, {"contest_title": "\u7b2c 113 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 113", "contest_title_slug": "biweekly-contest-113", "contest_id": 923, "contest_start_time": 1694874600, "contest_duration": 5400, "user_num": 3028, "question_slugs": ["minimum-right-shifts-to-sort-the-array", "minimum-array-length-after-pair-removals", "count-pairs-of-points-with-distance-k", "minimum-edge-reversals-so-every-node-is-reachable"]}, {"contest_title": "\u7b2c 114 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 114", "contest_title_slug": "biweekly-contest-114", "contest_id": 929, "contest_start_time": 1696084200, "contest_duration": 5400, "user_num": 2406, "question_slugs": ["minimum-operations-to-collect-elements", "minimum-number-of-operations-to-make-array-empty", "split-array-into-maximum-number-of-subarrays", "maximum-number-of-k-divisible-components"]}, {"contest_title": "\u7b2c 115 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 115", "contest_title_slug": "biweekly-contest-115", "contest_id": 935, "contest_start_time": 1697293800, "contest_duration": 5400, "user_num": 2809, "question_slugs": ["last-visited-integers", "longest-unequal-adjacent-groups-subsequence-i", "longest-unequal-adjacent-groups-subsequence-ii", "count-of-sub-multisets-with-bounded-sum"]}, {"contest_title": "\u7b2c 116 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 116", "contest_title_slug": "biweekly-contest-116", "contest_id": 941, "contest_start_time": 1698503400, "contest_duration": 5400, "user_num": 2904, "question_slugs": ["subarrays-distinct-element-sum-of-squares-i", "minimum-number-of-changes-to-make-binary-string-beautiful", "length-of-the-longest-subsequence-that-sums-to-target", "subarrays-distinct-element-sum-of-squares-ii"]}, {"contest_title": "\u7b2c 117 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 117", "contest_title_slug": "biweekly-contest-117", "contest_id": 949, "contest_start_time": 1699713000, "contest_duration": 5400, "user_num": 2629, "question_slugs": ["distribute-candies-among-children-i", "distribute-candies-among-children-ii", "number-of-strings-which-can-be-rearranged-to-contain-substring", "maximum-spending-after-buying-items"]}, {"contest_title": "\u7b2c 118 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 118", "contest_title_slug": "biweekly-contest-118", "contest_id": 955, "contest_start_time": 1700922600, "contest_duration": 5400, "user_num": 2425, "question_slugs": ["find-words-containing-character", "maximize-area-of-square-hole-in-grid", "minimum-number-of-coins-for-fruits", "find-maximum-non-decreasing-array-length"]}, {"contest_title": "\u7b2c 119 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 119", "contest_title_slug": "biweekly-contest-119", "contest_id": 961, "contest_start_time": 1702132200, "contest_duration": 5400, "user_num": 2472, "question_slugs": ["find-common-elements-between-two-arrays", "remove-adjacent-almost-equal-characters", "length-of-longest-subarray-with-at-most-k-frequency", "number-of-possible-sets-of-closing-branches"]}, {"contest_title": "\u7b2c 120 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 120", "contest_title_slug": "biweekly-contest-120", "contest_id": 967, "contest_start_time": 1703341800, "contest_duration": 5400, "user_num": 2542, "question_slugs": ["count-the-number-of-incremovable-subarrays-i", "find-polygon-with-the-largest-perimeter", "count-the-number-of-incremovable-subarrays-ii", "find-number-of-coins-to-place-in-tree-nodes"]}, {"contest_title": "\u7b2c 121 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 121", "contest_title_slug": "biweekly-contest-121", "contest_id": 973, "contest_start_time": 1704551400, "contest_duration": 5400, "user_num": 2218, "question_slugs": ["smallest-missing-integer-greater-than-sequential-prefix-sum", "minimum-number-of-operations-to-make-array-xor-equal-to-k", "minimum-number-of-operations-to-make-x-and-y-equal", "count-the-number-of-powerful-integers"]}, {"contest_title": "\u7b2c 122 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 122", "contest_title_slug": "biweekly-contest-122", "contest_id": 979, "contest_start_time": 1705761000, "contest_duration": 5400, "user_num": 2547, "question_slugs": ["divide-an-array-into-subarrays-with-minimum-cost-i", "find-if-array-can-be-sorted", "minimize-length-of-array-using-operations", "divide-an-array-into-subarrays-with-minimum-cost-ii"]}, {"contest_title": "\u7b2c 123 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 123", "contest_title_slug": "biweekly-contest-123", "contest_id": 985, "contest_start_time": 1706970600, "contest_duration": 5400, "user_num": 2209, "question_slugs": ["type-of-triangle", "find-the-number-of-ways-to-place-people-i", "maximum-good-subarray-sum", "find-the-number-of-ways-to-place-people-ii"]}, {"contest_title": "\u7b2c 124 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 124", "contest_title_slug": "biweekly-contest-124", "contest_id": 991, "contest_start_time": 1708180200, "contest_duration": 5400, "user_num": 1861, "question_slugs": ["maximum-number-of-operations-with-the-same-score-i", "apply-operations-to-make-string-empty", "maximum-number-of-operations-with-the-same-score-ii", "maximize-consecutive-elements-in-an-array-after-modification"]}, {"contest_title": "\u7b2c 125 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 125", "contest_title_slug": "biweekly-contest-125", "contest_id": 997, "contest_start_time": 1709389800, "contest_duration": 5400, "user_num": 2599, "question_slugs": ["minimum-operations-to-exceed-threshold-value-i", "minimum-operations-to-exceed-threshold-value-ii", "count-pairs-of-connectable-servers-in-a-weighted-tree-network", "find-the-maximum-sum-of-node-values"]}, {"contest_title": "\u7b2c 126 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 126", "contest_title_slug": "biweekly-contest-126", "contest_id": 1003, "contest_start_time": 1710599400, "contest_duration": 5400, "user_num": 3234, "question_slugs": ["find-the-sum-of-encrypted-integers", "mark-elements-on-array-by-performing-queries", "replace-question-marks-in-string-to-minimize-its-value", "find-the-sum-of-the-power-of-all-subsequences"]}, {"contest_title": "\u7b2c 127 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 127", "contest_title_slug": "biweekly-contest-127", "contest_id": 1010, "contest_start_time": 1711809000, "contest_duration": 5400, "user_num": 2950, "question_slugs": ["shortest-subarray-with-or-at-least-k-i", "minimum-levels-to-gain-more-points", "shortest-subarray-with-or-at-least-k-ii", "find-the-sum-of-subsequence-powers"]}, {"contest_title": "\u7b2c 128 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 128", "contest_title_slug": "biweekly-contest-128", "contest_id": 1017, "contest_start_time": 1713018600, "contest_duration": 5400, "user_num": 2653, "question_slugs": ["score-of-a-string", "minimum-rectangles-to-cover-points", "minimum-time-to-visit-disappearing-nodes", "find-the-number-of-subarrays-where-boundary-elements-are-maximum"]}, {"contest_title": "\u7b2c 129 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 129", "contest_title_slug": "biweekly-contest-129", "contest_id": 1023, "contest_start_time": 1714228200, "contest_duration": 5400, "user_num": 2510, "question_slugs": ["make-a-square-with-the-same-color", "right-triangles", "find-all-possible-stable-binary-arrays-i", "find-all-possible-stable-binary-arrays-ii"]}, {"contest_title": "\u7b2c 130 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 130", "contest_title_slug": "biweekly-contest-130", "contest_id": 1029, "contest_start_time": 1715437800, "contest_duration": 5400, "user_num": 2604, "question_slugs": ["check-if-grid-satisfies-conditions", "maximum-points-inside-the-square", "minimum-substring-partition-of-equal-character-frequency", "find-products-of-elements-of-big-array"]}, {"contest_title": "\u7b2c 398 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 398", "contest_title_slug": "weekly-contest-398", "contest_id": 1036, "contest_start_time": 1716085800, "contest_duration": 5400, "user_num": 3605, "question_slugs": ["special-array-i", "special-array-ii", "sum-of-digit-differences-of-all-pairs", "find-number-of-ways-to-reach-the-k-th-stair"]}] \ No newline at end of file +[{"contest_title": "\u7b2c 83 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 83", "contest_title_slug": "weekly-contest-83", "contest_id": 5, "contest_start_time": 1525570200, "contest_duration": 5400, "user_num": 58, "question_slugs": ["positions-of-large-groups", "masking-personal-information", "consecutive-numbers-sum", "count-unique-characters-of-all-substrings-of-a-given-string"]}, {"contest_title": "\u7b2c 84 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 84", "contest_title_slug": "weekly-contest-84", "contest_id": 6, "contest_start_time": 1526175000, "contest_duration": 5400, "user_num": 656, "question_slugs": ["flipping-an-image", "find-and-replace-in-string", "image-overlap", "sum-of-distances-in-tree"]}, {"contest_title": "\u7b2c 85 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 85", "contest_title_slug": "weekly-contest-85", "contest_id": 7, "contest_start_time": 1526779800, "contest_duration": 5400, "user_num": 467, "question_slugs": ["rectangle-overlap", "push-dominoes", "new-21-game", "similar-string-groups"]}, {"contest_title": "\u7b2c 86 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 86", "contest_title_slug": "weekly-contest-86", "contest_id": 8, "contest_start_time": 1527384600, "contest_duration": 5400, "user_num": 377, "question_slugs": ["magic-squares-in-grid", "keys-and-rooms", "split-array-into-fibonacci-sequence", "guess-the-word"]}, {"contest_title": "\u7b2c 87 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 87", "contest_title_slug": "weekly-contest-87", "contest_id": 9, "contest_start_time": 1527989400, "contest_duration": 5400, "user_num": 343, "question_slugs": ["backspace-string-compare", "longest-mountain-in-array", "hand-of-straights", "shortest-path-visiting-all-nodes"]}, {"contest_title": "\u7b2c 88 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 88", "contest_title_slug": "weekly-contest-88", "contest_id": 11, "contest_start_time": 1528594200, "contest_duration": 5400, "user_num": 404, "question_slugs": ["shifting-letters", "maximize-distance-to-closest-person", "loud-and-rich", "rectangle-area-ii"]}, {"contest_title": "\u7b2c 89 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 89", "contest_title_slug": "weekly-contest-89", "contest_id": 12, "contest_start_time": 1529199000, "contest_duration": 5400, "user_num": 491, "question_slugs": ["peak-index-in-a-mountain-array", "car-fleet", "exam-room", "k-similar-strings"]}, {"contest_title": "\u7b2c 90 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 90", "contest_title_slug": "weekly-contest-90", "contest_id": 13, "contest_start_time": 1529803800, "contest_duration": 5400, "user_num": 573, "question_slugs": ["buddy-strings", "score-of-parentheses", "mirror-reflection", "minimum-cost-to-hire-k-workers"]}, {"contest_title": "\u7b2c 91 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 91", "contest_title_slug": "weekly-contest-91", "contest_id": 14, "contest_start_time": 1530408600, "contest_duration": 5400, "user_num": 578, "question_slugs": ["lemonade-change", "all-nodes-distance-k-in-binary-tree", "score-after-flipping-matrix", "shortest-subarray-with-sum-at-least-k"]}, {"contest_title": "\u7b2c 92 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 92", "contest_title_slug": "weekly-contest-92", "contest_id": 15, "contest_start_time": 1531013400, "contest_duration": 5400, "user_num": 610, "question_slugs": ["transpose-matrix", "smallest-subtree-with-all-the-deepest-nodes", "prime-palindrome", "shortest-path-to-get-all-keys"]}, {"contest_title": "\u7b2c 93 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 93", "contest_title_slug": "weekly-contest-93", "contest_id": 16, "contest_start_time": 1531618200, "contest_duration": 5400, "user_num": 732, "question_slugs": ["binary-gap", "reordered-power-of-2", "advantage-shuffle", "minimum-number-of-refueling-stops"]}, {"contest_title": "\u7b2c 94 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 94", "contest_title_slug": "weekly-contest-94", "contest_id": 17, "contest_start_time": 1532223000, "contest_duration": 5400, "user_num": 733, "question_slugs": ["leaf-similar-trees", "walking-robot-simulation", "koko-eating-bananas", "length-of-longest-fibonacci-subsequence"]}, {"contest_title": "\u7b2c 95 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 95", "contest_title_slug": "weekly-contest-95", "contest_id": 18, "contest_start_time": 1532827800, "contest_duration": 5400, "user_num": 831, "question_slugs": ["middle-of-the-linked-list", "stone-game", "nth-magical-number", "profitable-schemes"]}, {"contest_title": "\u7b2c 96 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 96", "contest_title_slug": "weekly-contest-96", "contest_id": 19, "contest_start_time": 1533432600, "contest_duration": 5400, "user_num": 789, "question_slugs": ["projection-area-of-3d-shapes", "boats-to-save-people", "decoded-string-at-index", "reachable-nodes-in-subdivided-graph"]}, {"contest_title": "\u7b2c 97 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 97", "contest_title_slug": "weekly-contest-97", "contest_id": 20, "contest_start_time": 1534037400, "contest_duration": 5400, "user_num": 635, "question_slugs": ["uncommon-words-from-two-sentences", "spiral-matrix-iii", "possible-bipartition", "super-egg-drop"]}, {"contest_title": "\u7b2c 98 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 98", "contest_title_slug": "weekly-contest-98", "contest_id": 21, "contest_start_time": 1534642200, "contest_duration": 5400, "user_num": 670, "question_slugs": ["fair-candy-swap", "find-and-replace-pattern", "construct-binary-tree-from-preorder-and-postorder-traversal", "sum-of-subsequence-widths"]}, {"contest_title": "\u7b2c 99 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 99", "contest_title_slug": "weekly-contest-99", "contest_id": 22, "contest_start_time": 1535247000, "contest_duration": 5400, "user_num": 725, "question_slugs": ["surface-area-of-3d-shapes", "groups-of-special-equivalent-strings", "all-possible-full-binary-trees", "maximum-frequency-stack"]}, {"contest_title": "\u7b2c 100 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 100", "contest_title_slug": "weekly-contest-100", "contest_id": 23, "contest_start_time": 1535851800, "contest_duration": 5400, "user_num": 718, "question_slugs": ["monotonic-array", "increasing-order-search-tree", "bitwise-ors-of-subarrays", "orderly-queue"]}, {"contest_title": "\u7b2c 101 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 101", "contest_title_slug": "weekly-contest-101", "contest_id": 24, "contest_start_time": 1536456600, "contest_duration": 6300, "user_num": 854, "question_slugs": ["rle-iterator", "online-stock-span", "numbers-at-most-n-given-digit-set", "valid-permutations-for-di-sequence"]}, {"contest_title": "\u7b2c 102 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 102", "contest_title_slug": "weekly-contest-102", "contest_id": 25, "contest_start_time": 1537061400, "contest_duration": 5400, "user_num": 660, "question_slugs": ["sort-array-by-parity", "fruit-into-baskets", "sum-of-subarray-minimums", "super-palindromes"]}, {"contest_title": "\u7b2c 103 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 103", "contest_title_slug": "weekly-contest-103", "contest_id": 26, "contest_start_time": 1537666200, "contest_duration": 5400, "user_num": 575, "question_slugs": ["smallest-range-i", "snakes-and-ladders", "smallest-range-ii", "online-election"]}, {"contest_title": "\u7b2c 104 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 104", "contest_title_slug": "weekly-contest-104", "contest_id": 27, "contest_start_time": 1538271000, "contest_duration": 5400, "user_num": 354, "question_slugs": ["x-of-a-kind-in-a-deck-of-cards", "partition-array-into-disjoint-intervals", "word-subsets", "cat-and-mouse"]}, {"contest_title": "\u7b2c 105 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 105", "contest_title_slug": "weekly-contest-105", "contest_id": 28, "contest_start_time": 1538875800, "contest_duration": 5400, "user_num": 393, "question_slugs": ["reverse-only-letters", "maximum-sum-circular-subarray", "complete-binary-tree-inserter", "number-of-music-playlists"]}, {"contest_title": "\u7b2c 106 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 106", "contest_title_slug": "weekly-contest-106", "contest_id": 29, "contest_start_time": 1539480600, "contest_duration": 5400, "user_num": 369, "question_slugs": ["sort-array-by-parity-ii", "minimum-add-to-make-parentheses-valid", "3sum-with-multiplicity", "minimize-malware-spread"]}, {"contest_title": "\u7b2c 107 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 107", "contest_title_slug": "weekly-contest-107", "contest_id": 30, "contest_start_time": 1540085400, "contest_duration": 5400, "user_num": 504, "question_slugs": ["long-pressed-name", "flip-string-to-monotone-increasing", "three-equal-parts", "minimize-malware-spread-ii"]}, {"contest_title": "\u7b2c 108 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 108", "contest_title_slug": "weekly-contest-108", "contest_id": 31, "contest_start_time": 1540690200, "contest_duration": 5400, "user_num": 524, "question_slugs": ["unique-email-addresses", "binary-subarrays-with-sum", "minimum-falling-path-sum", "beautiful-array"]}, {"contest_title": "\u7b2c 109 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 109", "contest_title_slug": "weekly-contest-109", "contest_id": 32, "contest_start_time": 1541295000, "contest_duration": 5400, "user_num": 439, "question_slugs": ["number-of-recent-calls", "knight-dialer", "shortest-bridge", "stamping-the-sequence"]}, {"contest_title": "\u7b2c 110 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 110", "contest_title_slug": "weekly-contest-110", "contest_id": 33, "contest_start_time": 1541903400, "contest_duration": 5400, "user_num": 346, "question_slugs": ["reorder-data-in-log-files", "range-sum-of-bst", "minimum-area-rectangle", "distinct-subsequences-ii"]}, {"contest_title": "\u7b2c 111 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 111", "contest_title_slug": "weekly-contest-111", "contest_id": 34, "contest_start_time": 1542508200, "contest_duration": 5400, "user_num": 353, "question_slugs": ["valid-mountain-array", "delete-columns-to-make-sorted", "di-string-match", "find-the-shortest-superstring"]}, {"contest_title": "\u7b2c 112 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 112", "contest_title_slug": "weekly-contest-112", "contest_id": 35, "contest_start_time": 1543113000, "contest_duration": 5400, "user_num": 299, "question_slugs": ["minimum-increment-to-make-array-unique", "validate-stack-sequences", "most-stones-removed-with-same-row-or-column", "bag-of-tokens"]}, {"contest_title": "\u7b2c 113 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 113", "contest_title_slug": "weekly-contest-113", "contest_id": 36, "contest_start_time": 1543717800, "contest_duration": 5400, "user_num": 462, "question_slugs": ["largest-time-for-given-digits", "flip-equivalent-binary-trees", "reveal-cards-in-increasing-order", "largest-component-size-by-common-factor"]}, {"contest_title": "\u7b2c 114 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 114", "contest_title_slug": "weekly-contest-114", "contest_id": 37, "contest_start_time": 1544322600, "contest_duration": 5400, "user_num": 391, "question_slugs": ["verifying-an-alien-dictionary", "array-of-doubled-pairs", "delete-columns-to-make-sorted-ii", "tallest-billboard"]}, {"contest_title": "\u7b2c 115 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 115", "contest_title_slug": "weekly-contest-115", "contest_id": 38, "contest_start_time": 1544927400, "contest_duration": 5400, "user_num": 383, "question_slugs": ["prison-cells-after-n-days", "check-completeness-of-a-binary-tree", "regions-cut-by-slashes", "delete-columns-to-make-sorted-iii"]}, {"contest_title": "\u7b2c 116 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 116", "contest_title_slug": "weekly-contest-116", "contest_id": 39, "contest_start_time": 1545532200, "contest_duration": 5400, "user_num": 369, "question_slugs": ["n-repeated-element-in-size-2n-array", "maximum-width-ramp", "minimum-area-rectangle-ii", "least-operators-to-express-number"]}, {"contest_title": "\u7b2c 117 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 117", "contest_title_slug": "weekly-contest-117", "contest_id": 41, "contest_start_time": 1546137000, "contest_duration": 5400, "user_num": 657, "question_slugs": ["univalued-binary-tree", "numbers-with-same-consecutive-differences", "vowel-spellchecker", "binary-tree-cameras"]}, {"contest_title": "\u7b2c 118 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 118", "contest_title_slug": "weekly-contest-118", "contest_id": 42, "contest_start_time": 1546741800, "contest_duration": 5400, "user_num": 383, "question_slugs": ["powerful-integers", "pancake-sorting", "flip-binary-tree-to-match-preorder-traversal", "equal-rational-numbers"]}, {"contest_title": "\u7b2c 119 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 119", "contest_title_slug": "weekly-contest-119", "contest_id": 43, "contest_start_time": 1547346600, "contest_duration": 5400, "user_num": 513, "question_slugs": ["k-closest-points-to-origin", "largest-perimeter-triangle", "subarray-sums-divisible-by-k", "odd-even-jump"]}, {"contest_title": "\u7b2c 120 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 120", "contest_title_slug": "weekly-contest-120", "contest_id": 44, "contest_start_time": 1547951400, "contest_duration": 5400, "user_num": 382, "question_slugs": ["squares-of-a-sorted-array", "longest-turbulent-subarray", "distribute-coins-in-binary-tree", "unique-paths-iii"]}, {"contest_title": "\u7b2c 121 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 121", "contest_title_slug": "weekly-contest-121", "contest_id": 45, "contest_start_time": 1548556200, "contest_duration": 5400, "user_num": 384, "question_slugs": ["string-without-aaa-or-bbb", "time-based-key-value-store", "minimum-cost-for-tickets", "triples-with-bitwise-and-equal-to-zero"]}, {"contest_title": "\u7b2c 122 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 122", "contest_title_slug": "weekly-contest-122", "contest_id": 46, "contest_start_time": 1549161000, "contest_duration": 5400, "user_num": 280, "question_slugs": ["sum-of-even-numbers-after-queries", "smallest-string-starting-from-leaf", "interval-list-intersections", "vertical-order-traversal-of-a-binary-tree"]}, {"contest_title": "\u7b2c 123 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 123", "contest_title_slug": "weekly-contest-123", "contest_id": 47, "contest_start_time": 1549765800, "contest_duration": 5400, "user_num": 247, "question_slugs": ["add-to-array-form-of-integer", "satisfiability-of-equality-equations", "broken-calculator", "subarrays-with-k-different-integers"]}, {"contest_title": "\u7b2c 124 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 124", "contest_title_slug": "weekly-contest-124", "contest_id": 48, "contest_start_time": 1550370600, "contest_duration": 5400, "user_num": 417, "question_slugs": ["cousins-in-binary-tree", "rotting-oranges", "minimum-number-of-k-consecutive-bit-flips", "number-of-squareful-arrays"]}, {"contest_title": "\u7b2c 125 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 125", "contest_title_slug": "weekly-contest-125", "contest_id": 49, "contest_start_time": 1550975400, "contest_duration": 5400, "user_num": 469, "question_slugs": ["find-the-town-judge", "available-captures-for-rook", "maximum-binary-tree-ii", "grid-illumination"]}, {"contest_title": "\u7b2c 126 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 126", "contest_title_slug": "weekly-contest-126", "contest_id": 50, "contest_start_time": 1551580200, "contest_duration": 5400, "user_num": 591, "question_slugs": ["find-common-characters", "check-if-word-is-valid-after-substitutions", "max-consecutive-ones-iii", "minimum-cost-to-merge-stones"]}, {"contest_title": "\u7b2c 127 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 127", "contest_title_slug": "weekly-contest-127", "contest_id": 52, "contest_start_time": 1552185000, "contest_duration": 5400, "user_num": 664, "question_slugs": ["maximize-sum-of-array-after-k-negations", "clumsy-factorial", "minimum-domino-rotations-for-equal-row", "construct-binary-search-tree-from-preorder-traversal"]}, {"contest_title": "\u7b2c 128 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 128", "contest_title_slug": "weekly-contest-128", "contest_id": 53, "contest_start_time": 1552789800, "contest_duration": 5400, "user_num": 1251, "question_slugs": ["complement-of-base-10-integer", "pairs-of-songs-with-total-durations-divisible-by-60", "capacity-to-ship-packages-within-d-days", "numbers-with-repeated-digits"]}, {"contest_title": "\u7b2c 129 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 129", "contest_title_slug": "weekly-contest-129", "contest_id": 54, "contest_start_time": 1553391000, "contest_duration": 5400, "user_num": 759, "question_slugs": ["partition-array-into-three-parts-with-equal-sum", "smallest-integer-divisible-by-k", "best-sightseeing-pair", "binary-string-with-substrings-representing-1-to-n"]}, {"contest_title": "\u7b2c 130 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 130", "contest_title_slug": "weekly-contest-130", "contest_id": 55, "contest_start_time": 1553999400, "contest_duration": 5400, "user_num": 1294, "question_slugs": ["binary-prefix-divisible-by-5", "convert-to-base-2", "next-greater-node-in-linked-list", "number-of-enclaves"]}, {"contest_title": "\u7b2c 131 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 131", "contest_title_slug": "weekly-contest-131", "contest_id": 56, "contest_start_time": 1554604200, "contest_duration": 5400, "user_num": 918, "question_slugs": ["remove-outermost-parentheses", "sum-of-root-to-leaf-binary-numbers", "camelcase-matching", "video-stitching"]}, {"contest_title": "\u7b2c 132 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 132", "contest_title_slug": "weekly-contest-132", "contest_id": 57, "contest_start_time": 1555209000, "contest_duration": 5400, "user_num": 1049, "question_slugs": ["divisor-game", "maximum-difference-between-node-and-ancestor", "longest-arithmetic-subsequence", "recover-a-tree-from-preorder-traversal"]}, {"contest_title": "\u7b2c 133 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 133", "contest_title_slug": "weekly-contest-133", "contest_id": 59, "contest_start_time": 1555813800, "contest_duration": 5400, "user_num": 999, "question_slugs": ["two-city-scheduling", "matrix-cells-in-distance-order", "maximum-sum-of-two-non-overlapping-subarrays", "stream-of-characters"]}, {"contest_title": "\u7b2c 134 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 134", "contest_title_slug": "weekly-contest-134", "contest_id": 64, "contest_start_time": 1556418600, "contest_duration": 5400, "user_num": 728, "question_slugs": ["moving-stones-until-consecutive", "coloring-a-border", "uncrossed-lines", "escape-a-large-maze"]}, {"contest_title": "\u7b2c 135 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 135", "contest_title_slug": "weekly-contest-135", "contest_id": 65, "contest_start_time": 1557023400, "contest_duration": 5400, "user_num": 548, "question_slugs": ["valid-boomerang", "binary-search-tree-to-greater-sum-tree", "minimum-score-triangulation-of-polygon", "moving-stones-until-consecutive-ii"]}, {"contest_title": "\u7b2c 136 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 136", "contest_title_slug": "weekly-contest-136", "contest_id": 66, "contest_start_time": 1557628200, "contest_duration": 5400, "user_num": 790, "question_slugs": ["robot-bounded-in-circle", "flower-planting-with-no-adjacent", "partition-array-for-maximum-sum", "longest-duplicate-substring"]}, {"contest_title": "\u7b2c 137 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 137", "contest_title_slug": "weekly-contest-137", "contest_id": 67, "contest_start_time": 1558233000, "contest_duration": 5400, "user_num": 766, "question_slugs": ["last-stone-weight", "remove-all-adjacent-duplicates-in-string", "longest-string-chain", "last-stone-weight-ii"]}, {"contest_title": "\u7b2c 138 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 138", "contest_title_slug": "weekly-contest-138", "contest_id": 68, "contest_start_time": 1558837800, "contest_duration": 5400, "user_num": 752, "question_slugs": ["height-checker", "grumpy-bookstore-owner", "previous-permutation-with-one-swap", "distant-barcodes"]}, {"contest_title": "\u7b2c 139 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 139", "contest_title_slug": "weekly-contest-139", "contest_id": 69, "contest_start_time": 1559442600, "contest_duration": 5400, "user_num": 785, "question_slugs": ["greatest-common-divisor-of-strings", "flip-columns-for-maximum-number-of-equal-rows", "adding-two-negabinary-numbers", "number-of-submatrices-that-sum-to-target"]}, {"contest_title": "\u7b2c 140 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 140", "contest_title_slug": "weekly-contest-140", "contest_id": 71, "contest_start_time": 1560047400, "contest_duration": 5400, "user_num": 660, "question_slugs": ["occurrences-after-bigram", "letter-tile-possibilities", "insufficient-nodes-in-root-to-leaf-paths", "smallest-subsequence-of-distinct-characters"]}, {"contest_title": "\u7b2c 141 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 141", "contest_title_slug": "weekly-contest-141", "contest_id": 72, "contest_start_time": 1560652200, "contest_duration": 5400, "user_num": 763, "question_slugs": ["duplicate-zeros", "largest-values-from-labels", "shortest-path-in-binary-matrix", "shortest-common-supersequence"]}, {"contest_title": "\u7b2c 142 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 142", "contest_title_slug": "weekly-contest-142", "contest_id": 74, "contest_start_time": 1561257000, "contest_duration": 5400, "user_num": 801, "question_slugs": ["statistics-from-a-large-sample", "car-pooling", "find-in-mountain-array", "brace-expansion-ii"]}, {"contest_title": "\u7b2c 143 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 143", "contest_title_slug": "weekly-contest-143", "contest_id": 84, "contest_start_time": 1561861800, "contest_duration": 5400, "user_num": 803, "question_slugs": ["distribute-candies-to-people", "path-in-zigzag-labelled-binary-tree", "filling-bookcase-shelves", "parsing-a-boolean-expression"]}, {"contest_title": "\u7b2c 144 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 144", "contest_title_slug": "weekly-contest-144", "contest_id": 86, "contest_start_time": 1562466600, "contest_duration": 5400, "user_num": 777, "question_slugs": ["defanging-an-ip-address", "corporate-flight-bookings", "delete-nodes-and-return-forest", "maximum-nesting-depth-of-two-valid-parentheses-strings"]}, {"contest_title": "\u7b2c 145 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 145", "contest_title_slug": "weekly-contest-145", "contest_id": 87, "contest_start_time": 1563071400, "contest_duration": 5400, "user_num": 1114, "question_slugs": ["relative-sort-array", "lowest-common-ancestor-of-deepest-leaves", "longest-well-performing-interval", "smallest-sufficient-team"]}, {"contest_title": "\u7b2c 146 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 146", "contest_title_slug": "weekly-contest-146", "contest_id": 89, "contest_start_time": 1563676200, "contest_duration": 5400, "user_num": 1189, "question_slugs": ["number-of-equivalent-domino-pairs", "shortest-path-with-alternating-colors", "minimum-cost-tree-from-leaf-values", "maximum-of-absolute-value-expression"]}, {"contest_title": "\u7b2c 147 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 147", "contest_title_slug": "weekly-contest-147", "contest_id": 90, "contest_start_time": 1564281000, "contest_duration": 5400, "user_num": 1132, "question_slugs": ["n-th-tribonacci-number", "alphabet-board-path", "largest-1-bordered-square", "stone-game-ii"]}, {"contest_title": "\u7b2c 148 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 148", "contest_title_slug": "weekly-contest-148", "contest_id": 93, "contest_start_time": 1564885800, "contest_duration": 5400, "user_num": 1251, "question_slugs": ["decrease-elements-to-make-array-zigzag", "binary-tree-coloring-game", "snapshot-array", "longest-chunked-palindrome-decomposition"]}, {"contest_title": "\u7b2c 149 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 149", "contest_title_slug": "weekly-contest-149", "contest_id": 94, "contest_start_time": 1565490600, "contest_duration": 5400, "user_num": 1351, "question_slugs": ["day-of-the-year", "number-of-dice-rolls-with-target-sum", "swap-for-longest-repeated-character-substring", "online-majority-element-in-subarray"]}, {"contest_title": "\u7b2c 150 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 150", "contest_title_slug": "weekly-contest-150", "contest_id": 96, "contest_start_time": 1566095400, "contest_duration": 5400, "user_num": 1473, "question_slugs": ["find-words-that-can-be-formed-by-characters", "maximum-level-sum-of-a-binary-tree", "as-far-from-land-as-possible", "last-substring-in-lexicographical-order"]}, {"contest_title": "\u7b2c 151 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 151", "contest_title_slug": "weekly-contest-151", "contest_id": 98, "contest_start_time": 1566700200, "contest_duration": 5400, "user_num": 1341, "question_slugs": ["invalid-transactions", "compare-strings-by-frequency-of-the-smallest-character", "remove-zero-sum-consecutive-nodes-from-linked-list", "dinner-plate-stacks"]}, {"contest_title": "\u7b2c 152 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 152", "contest_title_slug": "weekly-contest-152", "contest_id": 100, "contest_start_time": 1567305000, "contest_duration": 5400, "user_num": 1367, "question_slugs": ["prime-arrangements", "diet-plan-performance", "can-make-palindrome-from-substring", "number-of-valid-words-for-each-puzzle"]}, {"contest_title": "\u7b2c 153 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 153", "contest_title_slug": "weekly-contest-153", "contest_id": 102, "contest_start_time": 1567909800, "contest_duration": 5400, "user_num": 1434, "question_slugs": ["distance-between-bus-stops", "day-of-the-week", "maximum-subarray-sum-with-one-deletion", "make-array-strictly-increasing"]}, {"contest_title": "\u7b2c 154 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 154", "contest_title_slug": "weekly-contest-154", "contest_id": 106, "contest_start_time": 1568514600, "contest_duration": 5400, "user_num": 1299, "question_slugs": ["maximum-number-of-balloons", "reverse-substrings-between-each-pair-of-parentheses", "k-concatenation-maximum-sum", "critical-connections-in-a-network"]}, {"contest_title": "\u7b2c 155 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 155", "contest_title_slug": "weekly-contest-155", "contest_id": 107, "contest_start_time": 1569119400, "contest_duration": 5400, "user_num": 1603, "question_slugs": ["minimum-absolute-difference", "ugly-number-iii", "smallest-string-with-swaps", "sort-items-by-groups-respecting-dependencies"]}, {"contest_title": "\u7b2c 156 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 156", "contest_title_slug": "weekly-contest-156", "contest_id": 113, "contest_start_time": 1569724200, "contest_duration": 5400, "user_num": 1433, "question_slugs": ["unique-number-of-occurrences", "get-equal-substrings-within-budget", "remove-all-adjacent-duplicates-in-string-ii", "minimum-moves-to-reach-target-with-rotations"]}, {"contest_title": "\u7b2c 157 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 157", "contest_title_slug": "weekly-contest-157", "contest_id": 114, "contest_start_time": 1570329000, "contest_duration": 5400, "user_num": 1217, "question_slugs": ["minimum-cost-to-move-chips-to-the-same-position", "longest-arithmetic-subsequence-of-given-difference", "path-with-maximum-gold", "count-vowels-permutation"]}, {"contest_title": "\u7b2c 158 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 158", "contest_title_slug": "weekly-contest-158", "contest_id": 116, "contest_start_time": 1570933800, "contest_duration": 5400, "user_num": 1716, "question_slugs": ["split-a-string-in-balanced-strings", "queens-that-can-attack-the-king", "dice-roll-simulation", "maximum-equal-frequency"]}, {"contest_title": "\u7b2c 159 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 159", "contest_title_slug": "weekly-contest-159", "contest_id": 117, "contest_start_time": 1571538600, "contest_duration": 5400, "user_num": 1634, "question_slugs": ["check-if-it-is-a-straight-line", "remove-sub-folders-from-the-filesystem", "replace-the-substring-for-balanced-string", "maximum-profit-in-job-scheduling"]}, {"contest_title": "\u7b2c 160 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 160", "contest_title_slug": "weekly-contest-160", "contest_id": 119, "contest_start_time": 1572143400, "contest_duration": 5400, "user_num": 1692, "question_slugs": ["find-positive-integer-solution-for-a-given-equation", "circular-permutation-in-binary-representation", "maximum-length-of-a-concatenated-string-with-unique-characters", "tiling-a-rectangle-with-the-fewest-squares"]}, {"contest_title": "\u7b2c 161 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 161", "contest_title_slug": "weekly-contest-161", "contest_id": 120, "contest_start_time": 1572748200, "contest_duration": 5400, "user_num": 1610, "question_slugs": ["minimum-swaps-to-make-strings-equal", "count-number-of-nice-subarrays", "minimum-remove-to-make-valid-parentheses", "check-if-it-is-a-good-array"]}, {"contest_title": "\u7b2c 162 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 162", "contest_title_slug": "weekly-contest-162", "contest_id": 122, "contest_start_time": 1573353000, "contest_duration": 5400, "user_num": 1569, "question_slugs": ["cells-with-odd-values-in-a-matrix", "reconstruct-a-2-row-binary-matrix", "number-of-closed-islands", "maximum-score-words-formed-by-letters"]}, {"contest_title": "\u7b2c 163 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 163", "contest_title_slug": "weekly-contest-163", "contest_id": 123, "contest_start_time": 1573957800, "contest_duration": 5400, "user_num": 1605, "question_slugs": ["shift-2d-grid", "find-elements-in-a-contaminated-binary-tree", "greatest-sum-divisible-by-three", "minimum-moves-to-move-a-box-to-their-target-location"]}, {"contest_title": "\u7b2c 164 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 164", "contest_title_slug": "weekly-contest-164", "contest_id": 125, "contest_start_time": 1574562600, "contest_duration": 5400, "user_num": 1676, "question_slugs": ["minimum-time-visiting-all-points", "count-servers-that-communicate", "search-suggestions-system", "number-of-ways-to-stay-in-the-same-place-after-some-steps"]}, {"contest_title": "\u7b2c 165 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 165", "contest_title_slug": "weekly-contest-165", "contest_id": 128, "contest_start_time": 1575167400, "contest_duration": 5400, "user_num": 1660, "question_slugs": ["find-winner-on-a-tic-tac-toe-game", "number-of-burgers-with-no-waste-of-ingredients", "count-square-submatrices-with-all-ones", "palindrome-partitioning-iii"]}, {"contest_title": "\u7b2c 166 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 166", "contest_title_slug": "weekly-contest-166", "contest_id": 130, "contest_start_time": 1575772200, "contest_duration": 5400, "user_num": 1676, "question_slugs": ["subtract-the-product-and-sum-of-digits-of-an-integer", "group-the-people-given-the-group-size-they-belong-to", "find-the-smallest-divisor-given-a-threshold", "minimum-number-of-flips-to-convert-binary-matrix-to-zero-matrix"]}, {"contest_title": "\u7b2c 167 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 167", "contest_title_slug": "weekly-contest-167", "contest_id": 131, "contest_start_time": 1576377000, "contest_duration": 5400, "user_num": 1537, "question_slugs": ["convert-binary-number-in-a-linked-list-to-integer", "sequential-digits", "maximum-side-length-of-a-square-with-sum-less-than-or-equal-to-threshold", "shortest-path-in-a-grid-with-obstacles-elimination"]}, {"contest_title": "\u7b2c 168 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 168", "contest_title_slug": "weekly-contest-168", "contest_id": 133, "contest_start_time": 1576981800, "contest_duration": 5400, "user_num": 1553, "question_slugs": ["find-numbers-with-even-number-of-digits", "divide-array-in-sets-of-k-consecutive-numbers", "maximum-number-of-occurrences-of-a-substring", "maximum-candies-you-can-get-from-boxes"]}, {"contest_title": "\u7b2c 169 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 169", "contest_title_slug": "weekly-contest-169", "contest_id": 134, "contest_start_time": 1577586600, "contest_duration": 5400, "user_num": 1568, "question_slugs": ["find-n-unique-integers-sum-up-to-zero", "all-elements-in-two-binary-search-trees", "jump-game-iii", "verbal-arithmetic-puzzle"]}, {"contest_title": "\u7b2c 170 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 170", "contest_title_slug": "weekly-contest-170", "contest_id": 136, "contest_start_time": 1578191400, "contest_duration": 5400, "user_num": 1649, "question_slugs": ["decrypt-string-from-alphabet-to-integer-mapping", "xor-queries-of-a-subarray", "get-watched-videos-by-your-friends", "minimum-insertion-steps-to-make-a-string-palindrome"]}, {"contest_title": "\u7b2c 171 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 171", "contest_title_slug": "weekly-contest-171", "contest_id": 137, "contest_start_time": 1578796200, "contest_duration": 5400, "user_num": 1708, "question_slugs": ["convert-integer-to-the-sum-of-two-no-zero-integers", "minimum-flips-to-make-a-or-b-equal-to-c", "number-of-operations-to-make-network-connected", "minimum-distance-to-type-a-word-using-two-fingers"]}, {"contest_title": "\u7b2c 172 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 172", "contest_title_slug": "weekly-contest-172", "contest_id": 139, "contest_start_time": 1579401000, "contest_duration": 5400, "user_num": 1415, "question_slugs": ["maximum-69-number", "print-words-vertically", "delete-leaves-with-a-given-value", "minimum-number-of-taps-to-open-to-water-a-garden"]}, {"contest_title": "\u7b2c 173 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 173", "contest_title_slug": "weekly-contest-173", "contest_id": 142, "contest_start_time": 1580005800, "contest_duration": 5400, "user_num": 1072, "question_slugs": ["remove-palindromic-subsequences", "filter-restaurants-by-vegan-friendly-price-and-distance", "find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance", "minimum-difficulty-of-a-job-schedule"]}, {"contest_title": "\u7b2c 174 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 174", "contest_title_slug": "weekly-contest-174", "contest_id": 144, "contest_start_time": 1580610600, "contest_duration": 5400, "user_num": 1660, "question_slugs": ["the-k-weakest-rows-in-a-matrix", "reduce-array-size-to-the-half", "maximum-product-of-splitted-binary-tree", "jump-game-v"]}, {"contest_title": "\u7b2c 175 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 175", "contest_title_slug": "weekly-contest-175", "contest_id": 145, "contest_start_time": 1581215400, "contest_duration": 5400, "user_num": 2048, "question_slugs": ["check-if-n-and-its-double-exist", "minimum-number-of-steps-to-make-two-strings-anagram", "tweet-counts-per-frequency", "maximum-students-taking-exam"]}, {"contest_title": "\u7b2c 176 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 176", "contest_title_slug": "weekly-contest-176", "contest_id": 147, "contest_start_time": 1581820200, "contest_duration": 5400, "user_num": 2410, "question_slugs": ["count-negative-numbers-in-a-sorted-matrix", "product-of-the-last-k-numbers", "maximum-number-of-events-that-can-be-attended", "construct-target-array-with-multiple-sums"]}, {"contest_title": "\u7b2c 177 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 177", "contest_title_slug": "weekly-contest-177", "contest_id": 148, "contest_start_time": 1582425000, "contest_duration": 5400, "user_num": 2986, "question_slugs": ["number-of-days-between-two-dates", "validate-binary-tree-nodes", "closest-divisors", "largest-multiple-of-three"]}, {"contest_title": "\u7b2c 178 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 178", "contest_title_slug": "weekly-contest-178", "contest_id": 154, "contest_start_time": 1583029800, "contest_duration": 5400, "user_num": 3305, "question_slugs": ["how-many-numbers-are-smaller-than-the-current-number", "rank-teams-by-votes", "linked-list-in-binary-tree", "minimum-cost-to-make-at-least-one-valid-path-in-a-grid"]}, {"contest_title": "\u7b2c 179 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 179", "contest_title_slug": "weekly-contest-179", "contest_id": 156, "contest_start_time": 1583634600, "contest_duration": 5400, "user_num": 3606, "question_slugs": ["generate-a-string-with-characters-that-have-odd-counts", "number-of-times-binary-string-is-prefix-aligned", "time-needed-to-inform-all-employees", "frog-position-after-t-seconds"]}, {"contest_title": "\u7b2c 180 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 180", "contest_title_slug": "weekly-contest-180", "contest_id": 160, "contest_start_time": 1584239400, "contest_duration": 5400, "user_num": 3715, "question_slugs": ["lucky-numbers-in-a-matrix", "design-a-stack-with-increment-operation", "balance-a-binary-search-tree", "maximum-performance-of-a-team"]}, {"contest_title": "\u7b2c 181 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 181", "contest_title_slug": "weekly-contest-181", "contest_id": 162, "contest_start_time": 1584844200, "contest_duration": 5400, "user_num": 4149, "question_slugs": ["create-target-array-in-the-given-order", "four-divisors", "check-if-there-is-a-valid-path-in-a-grid", "longest-happy-prefix"]}, {"contest_title": "\u7b2c 182 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 182", "contest_title_slug": "weekly-contest-182", "contest_id": 166, "contest_start_time": 1585449000, "contest_duration": 5400, "user_num": 3911, "question_slugs": ["find-lucky-integer-in-an-array", "count-number-of-teams", "design-underground-system", "find-all-good-strings"]}, {"contest_title": "\u7b2c 183 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 183", "contest_title_slug": "weekly-contest-183", "contest_id": 168, "contest_start_time": 1586053800, "contest_duration": 5400, "user_num": 3756, "question_slugs": ["minimum-subsequence-in-non-increasing-order", "number-of-steps-to-reduce-a-number-in-binary-representation-to-one", "longest-happy-string", "stone-game-iii"]}, {"contest_title": "\u7b2c 184 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 184", "contest_title_slug": "weekly-contest-184", "contest_id": 175, "contest_start_time": 1586658600, "contest_duration": 5400, "user_num": 3847, "question_slugs": ["string-matching-in-an-array", "queries-on-a-permutation-with-key", "html-entity-parser", "number-of-ways-to-paint-n-3-grid"]}, {"contest_title": "\u7b2c 185 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 185", "contest_title_slug": "weekly-contest-185", "contest_id": 177, "contest_start_time": 1587263400, "contest_duration": 5400, "user_num": 5004, "question_slugs": ["reformat-the-string", "display-table-of-food-orders-in-a-restaurant", "minimum-number-of-frogs-croaking", "build-array-where-you-can-find-the-maximum-exactly-k-comparisons"]}, {"contest_title": "\u7b2c 186 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 186", "contest_title_slug": "weekly-contest-186", "contest_id": 185, "contest_start_time": 1587868200, "contest_duration": 5400, "user_num": 3108, "question_slugs": ["maximum-score-after-splitting-a-string", "maximum-points-you-can-obtain-from-cards", "diagonal-traverse-ii", "constrained-subsequence-sum"]}, {"contest_title": "\u7b2c 187 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 187", "contest_title_slug": "weekly-contest-187", "contest_id": 191, "contest_start_time": 1588473000, "contest_duration": 5400, "user_num": 3109, "question_slugs": ["destination-city", "check-if-all-1s-are-at-least-length-k-places-away", "longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit", "find-the-kth-smallest-sum-of-a-matrix-with-sorted-rows"]}, {"contest_title": "\u7b2c 188 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 188", "contest_title_slug": "weekly-contest-188", "contest_id": 195, "contest_start_time": 1589077800, "contest_duration": 5400, "user_num": 3982, "question_slugs": ["build-an-array-with-stack-operations", "count-triplets-that-can-form-two-arrays-of-equal-xor", "minimum-time-to-collect-all-apples-in-a-tree", "number-of-ways-of-cutting-a-pizza"]}, {"contest_title": "\u7b2c 189 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 189", "contest_title_slug": "weekly-contest-189", "contest_id": 197, "contest_start_time": 1589682600, "contest_duration": 5400, "user_num": 3692, "question_slugs": ["number-of-students-doing-homework-at-a-given-time", "rearrange-words-in-a-sentence", "people-whose-list-of-favorite-companies-is-not-a-subset-of-another-list", "maximum-number-of-darts-inside-of-a-circular-dartboard"]}, {"contest_title": "\u7b2c 190 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 190", "contest_title_slug": "weekly-contest-190", "contest_id": 201, "contest_start_time": 1590287400, "contest_duration": 5400, "user_num": 3352, "question_slugs": ["check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence", "maximum-number-of-vowels-in-a-substring-of-given-length", "pseudo-palindromic-paths-in-a-binary-tree", "max-dot-product-of-two-subsequences"]}, {"contest_title": "\u7b2c 191 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 191", "contest_title_slug": "weekly-contest-191", "contest_id": 203, "contest_start_time": 1590892200, "contest_duration": 5400, "user_num": 3687, "question_slugs": ["maximum-product-of-two-elements-in-an-array", "maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts", "reorder-routes-to-make-all-paths-lead-to-the-city-zero", "probability-of-a-two-boxes-having-the-same-number-of-distinct-balls"]}, {"contest_title": "\u7b2c 192 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 192", "contest_title_slug": "weekly-contest-192", "contest_id": 207, "contest_start_time": 1591497000, "contest_duration": 5400, "user_num": 3615, "question_slugs": ["shuffle-the-array", "the-k-strongest-values-in-an-array", "design-browser-history", "paint-house-iii"]}, {"contest_title": "\u7b2c 193 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 193", "contest_title_slug": "weekly-contest-193", "contest_id": 209, "contest_start_time": 1592101800, "contest_duration": 5400, "user_num": 3804, "question_slugs": ["running-sum-of-1d-array", "least-number-of-unique-integers-after-k-removals", "minimum-number-of-days-to-make-m-bouquets", "kth-ancestor-of-a-tree-node"]}, {"contest_title": "\u7b2c 194 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 194", "contest_title_slug": "weekly-contest-194", "contest_id": 213, "contest_start_time": 1592706600, "contest_duration": 5400, "user_num": 4378, "question_slugs": ["xor-operation-in-an-array", "making-file-names-unique", "avoid-flood-in-the-city", "find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree"]}, {"contest_title": "\u7b2c 195 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 195", "contest_title_slug": "weekly-contest-195", "contest_id": 215, "contest_start_time": 1593311400, "contest_duration": 5400, "user_num": 3401, "question_slugs": ["path-crossing", "check-if-array-pairs-are-divisible-by-k", "number-of-subsequences-that-satisfy-the-given-sum-condition", "max-value-of-equation"]}, {"contest_title": "\u7b2c 196 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 196", "contest_title_slug": "weekly-contest-196", "contest_id": 219, "contest_start_time": 1593916200, "contest_duration": 5400, "user_num": 5507, "question_slugs": ["can-make-arithmetic-progression-from-sequence", "last-moment-before-all-ants-fall-out-of-a-plank", "count-submatrices-with-all-ones", "minimum-possible-integer-after-at-most-k-adjacent-swaps-on-digits"]}, {"contest_title": "\u7b2c 197 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 197", "contest_title_slug": "weekly-contest-197", "contest_id": 221, "contest_start_time": 1594521000, "contest_duration": 5400, "user_num": 5275, "question_slugs": ["number-of-good-pairs", "number-of-substrings-with-only-1s", "path-with-maximum-probability", "best-position-for-a-service-centre"]}, {"contest_title": "\u7b2c 198 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 198", "contest_title_slug": "weekly-contest-198", "contest_id": 226, "contest_start_time": 1595125800, "contest_duration": 5400, "user_num": 5780, "question_slugs": ["water-bottles", "number-of-nodes-in-the-sub-tree-with-the-same-label", "maximum-number-of-non-overlapping-substrings", "find-a-value-of-a-mysterious-function-closest-to-target"]}, {"contest_title": "\u7b2c 199 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 199", "contest_title_slug": "weekly-contest-199", "contest_id": 228, "contest_start_time": 1595730600, "contest_duration": 5400, "user_num": 5232, "question_slugs": ["shuffle-string", "minimum-suffix-flips", "number-of-good-leaf-nodes-pairs", "string-compression-ii"]}, {"contest_title": "\u7b2c 200 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 200", "contest_title_slug": "weekly-contest-200", "contest_id": 235, "contest_start_time": 1596335400, "contest_duration": 5400, "user_num": 5476, "question_slugs": ["count-good-triplets", "find-the-winner-of-an-array-game", "minimum-swaps-to-arrange-a-binary-grid", "get-the-maximum-score"]}, {"contest_title": "\u7b2c 201 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 201", "contest_title_slug": "weekly-contest-201", "contest_id": 238, "contest_start_time": 1596940200, "contest_duration": 5400, "user_num": 5615, "question_slugs": ["make-the-string-great", "find-kth-bit-in-nth-binary-string", "maximum-number-of-non-overlapping-subarrays-with-sum-equals-target", "minimum-cost-to-cut-a-stick"]}, {"contest_title": "\u7b2c 202 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 202", "contest_title_slug": "weekly-contest-202", "contest_id": 242, "contest_start_time": 1597545000, "contest_duration": 5400, "user_num": 4990, "question_slugs": ["three-consecutive-odds", "minimum-operations-to-make-array-equal", "magnetic-force-between-two-balls", "minimum-number-of-days-to-eat-n-oranges"]}, {"contest_title": "\u7b2c 203 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 203", "contest_title_slug": "weekly-contest-203", "contest_id": 244, "contest_start_time": 1598149800, "contest_duration": 5400, "user_num": 5285, "question_slugs": ["most-visited-sector-in-a-circular-track", "maximum-number-of-coins-you-can-get", "find-latest-group-of-size-m", "stone-game-v"]}, {"contest_title": "\u7b2c 204 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 204", "contest_title_slug": "weekly-contest-204", "contest_id": 257, "contest_start_time": 1598754600, "contest_duration": 5400, "user_num": 4487, "question_slugs": ["detect-pattern-of-length-m-repeated-k-or-more-times", "maximum-length-of-subarray-with-positive-product", "minimum-number-of-days-to-disconnect-island", "number-of-ways-to-reorder-array-to-get-same-bst"]}, {"contest_title": "\u7b2c 205 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 205", "contest_title_slug": "weekly-contest-205", "contest_id": 260, "contest_start_time": 1599359400, "contest_duration": 5400, "user_num": 4176, "question_slugs": ["replace-all-s-to-avoid-consecutive-repeating-characters", "number-of-ways-where-square-of-number-is-equal-to-product-of-two-numbers", "minimum-time-to-make-rope-colorful", "remove-max-number-of-edges-to-keep-graph-fully-traversable"]}, {"contest_title": "\u7b2c 206 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 206", "contest_title_slug": "weekly-contest-206", "contest_id": 267, "contest_start_time": 1599964200, "contest_duration": 5400, "user_num": 4493, "question_slugs": ["special-positions-in-a-binary-matrix", "count-unhappy-friends", "min-cost-to-connect-all-points", "check-if-string-is-transformable-with-substring-sort-operations"]}, {"contest_title": "\u7b2c 207 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 207", "contest_title_slug": "weekly-contest-207", "contest_id": 278, "contest_start_time": 1600569000, "contest_duration": 5400, "user_num": 4116, "question_slugs": ["rearrange-spaces-between-words", "split-a-string-into-the-max-number-of-unique-substrings", "maximum-non-negative-product-in-a-matrix", "minimum-cost-to-connect-two-groups-of-points"]}, {"contest_title": "\u7b2c 208 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 208", "contest_title_slug": "weekly-contest-208", "contest_id": 289, "contest_start_time": 1601173800, "contest_duration": 5400, "user_num": 3582, "question_slugs": ["crawler-log-folder", "maximum-profit-of-operating-a-centennial-wheel", "throne-inheritance", "maximum-number-of-achievable-transfer-requests"]}, {"contest_title": "\u7b2c 209 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 209", "contest_title_slug": "weekly-contest-209", "contest_id": 291, "contest_start_time": 1601778600, "contest_duration": 5400, "user_num": 4023, "question_slugs": ["special-array-with-x-elements-greater-than-or-equal-x", "even-odd-tree", "maximum-number-of-visible-points", "minimum-one-bit-operations-to-make-integers-zero"]}, {"contest_title": "\u7b2c 210 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 210", "contest_title_slug": "weekly-contest-210", "contest_id": 295, "contest_start_time": 1602383400, "contest_duration": 5400, "user_num": 4007, "question_slugs": ["maximum-nesting-depth-of-the-parentheses", "maximal-network-rank", "split-two-strings-to-make-palindrome", "count-subtrees-with-max-distance-between-cities"]}, {"contest_title": "\u7b2c 211 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 211", "contest_title_slug": "weekly-contest-211", "contest_id": 297, "contest_start_time": 1602988200, "contest_duration": 5400, "user_num": 4034, "question_slugs": ["largest-substring-between-two-equal-characters", "lexicographically-smallest-string-after-applying-operations", "best-team-with-no-conflicts", "graph-connectivity-with-threshold"]}, {"contest_title": "\u7b2c 212 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 212", "contest_title_slug": "weekly-contest-212", "contest_id": 301, "contest_start_time": 1603593000, "contest_duration": 5400, "user_num": 4227, "question_slugs": ["slowest-key", "arithmetic-subarrays", "path-with-minimum-effort", "rank-transform-of-a-matrix"]}, {"contest_title": "\u7b2c 213 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 213", "contest_title_slug": "weekly-contest-213", "contest_id": 303, "contest_start_time": 1604197800, "contest_duration": 5400, "user_num": 3827, "question_slugs": ["check-array-formation-through-concatenation", "count-sorted-vowel-strings", "furthest-building-you-can-reach", "kth-smallest-instructions"]}, {"contest_title": "\u7b2c 214 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 214", "contest_title_slug": "weekly-contest-214", "contest_id": 307, "contest_start_time": 1604802600, "contest_duration": 5400, "user_num": 3598, "question_slugs": ["get-maximum-in-generated-array", "minimum-deletions-to-make-character-frequencies-unique", "sell-diminishing-valued-colored-balls", "create-sorted-array-through-instructions"]}, {"contest_title": "\u7b2c 215 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 215", "contest_title_slug": "weekly-contest-215", "contest_id": 309, "contest_start_time": 1605407400, "contest_duration": 5400, "user_num": 4429, "question_slugs": ["design-an-ordered-stream", "determine-if-two-strings-are-close", "minimum-operations-to-reduce-x-to-zero", "maximize-grid-happiness"]}, {"contest_title": "\u7b2c 216 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 216", "contest_title_slug": "weekly-contest-216", "contest_id": 313, "contest_start_time": 1606012200, "contest_duration": 5400, "user_num": 3857, "question_slugs": ["check-if-two-string-arrays-are-equivalent", "smallest-string-with-a-given-numeric-value", "ways-to-make-a-fair-array", "minimum-initial-energy-to-finish-tasks"]}, {"contest_title": "\u7b2c 217 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 217", "contest_title_slug": "weekly-contest-217", "contest_id": 315, "contest_start_time": 1606617000, "contest_duration": 5400, "user_num": 3745, "question_slugs": ["richest-customer-wealth", "find-the-most-competitive-subsequence", "minimum-moves-to-make-array-complementary", "minimize-deviation-in-array"]}, {"contest_title": "\u7b2c 218 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 218", "contest_title_slug": "weekly-contest-218", "contest_id": 319, "contest_start_time": 1607221800, "contest_duration": 5400, "user_num": 3762, "question_slugs": ["goal-parser-interpretation", "max-number-of-k-sum-pairs", "concatenation-of-consecutive-binary-numbers", "minimum-incompatibility"]}, {"contest_title": "\u7b2c 219 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 219", "contest_title_slug": "weekly-contest-219", "contest_id": 322, "contest_start_time": 1607826600, "contest_duration": 5400, "user_num": 3710, "question_slugs": ["count-of-matches-in-tournament", "partitioning-into-minimum-number-of-deci-binary-numbers", "stone-game-vii", "maximum-height-by-stacking-cuboids"]}, {"contest_title": "\u7b2c 220 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 220", "contest_title_slug": "weekly-contest-220", "contest_id": 326, "contest_start_time": 1608431400, "contest_duration": 5400, "user_num": 3691, "question_slugs": ["reformat-phone-number", "maximum-erasure-value", "jump-game-vi", "checking-existence-of-edge-length-limited-paths"]}, {"contest_title": "\u7b2c 221 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 221", "contest_title_slug": "weekly-contest-221", "contest_id": 328, "contest_start_time": 1609036200, "contest_duration": 5400, "user_num": 3398, "question_slugs": ["determine-if-string-halves-are-alike", "maximum-number-of-eaten-apples", "where-will-the-ball-fall", "maximum-xor-with-an-element-from-array"]}, {"contest_title": "\u7b2c 222 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 222", "contest_title_slug": "weekly-contest-222", "contest_id": 332, "contest_start_time": 1609641000, "contest_duration": 5400, "user_num": 3119, "question_slugs": ["maximum-units-on-a-truck", "count-good-meals", "ways-to-split-array-into-three-subarrays", "minimum-operations-to-make-a-subsequence"]}, {"contest_title": "\u7b2c 223 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 223", "contest_title_slug": "weekly-contest-223", "contest_id": 334, "contest_start_time": 1610245800, "contest_duration": 5400, "user_num": 3872, "question_slugs": ["decode-xored-array", "swapping-nodes-in-a-linked-list", "minimize-hamming-distance-after-swap-operations", "find-minimum-time-to-finish-all-jobs"]}, {"contest_title": "\u7b2c 224 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 224", "contest_title_slug": "weekly-contest-224", "contest_id": 338, "contest_start_time": 1610850600, "contest_duration": 5400, "user_num": 3795, "question_slugs": ["number-of-rectangles-that-can-form-the-largest-square", "tuple-with-same-product", "largest-submatrix-with-rearrangements", "cat-and-mouse-ii"]}, {"contest_title": "\u7b2c 225 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 225", "contest_title_slug": "weekly-contest-225", "contest_id": 340, "contest_start_time": 1611455400, "contest_duration": 5400, "user_num": 3853, "question_slugs": ["latest-time-by-replacing-hidden-digits", "change-minimum-characters-to-satisfy-one-of-three-conditions", "find-kth-largest-xor-coordinate-value", "building-boxes"]}, {"contest_title": "\u7b2c 226 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 226", "contest_title_slug": "weekly-contest-226", "contest_id": 344, "contest_start_time": 1612060200, "contest_duration": 5400, "user_num": 4034, "question_slugs": ["maximum-number-of-balls-in-a-box", "restore-the-array-from-adjacent-pairs", "can-you-eat-your-favorite-candy-on-your-favorite-day", "palindrome-partitioning-iv"]}, {"contest_title": "\u7b2c 227 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 227", "contest_title_slug": "weekly-contest-227", "contest_id": 346, "contest_start_time": 1612665000, "contest_duration": 5400, "user_num": 3546, "question_slugs": ["check-if-array-is-sorted-and-rotated", "maximum-score-from-removing-stones", "largest-merge-of-two-strings", "closest-subsequence-sum"]}, {"contest_title": "\u7b2c 228 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 228", "contest_title_slug": "weekly-contest-228", "contest_id": 350, "contest_start_time": 1613269800, "contest_duration": 5400, "user_num": 2484, "question_slugs": ["minimum-changes-to-make-alternating-binary-string", "count-number-of-homogenous-substrings", "minimum-limit-of-balls-in-a-bag", "minimum-degree-of-a-connected-trio-in-a-graph"]}, {"contest_title": "\u7b2c 229 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 229", "contest_title_slug": "weekly-contest-229", "contest_id": 352, "contest_start_time": 1613874600, "contest_duration": 5400, "user_num": 3484, "question_slugs": ["merge-strings-alternately", "minimum-number-of-operations-to-move-all-balls-to-each-box", "maximum-score-from-performing-multiplication-operations", "maximize-palindrome-length-from-subsequences"]}, {"contest_title": "\u7b2c 230 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 230", "contest_title_slug": "weekly-contest-230", "contest_id": 356, "contest_start_time": 1614479400, "contest_duration": 5400, "user_num": 3728, "question_slugs": ["count-items-matching-a-rule", "closest-dessert-cost", "equal-sum-arrays-with-minimum-number-of-operations", "car-fleet-ii"]}, {"contest_title": "\u7b2c 231 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 231", "contest_title_slug": "weekly-contest-231", "contest_id": 358, "contest_start_time": 1615084200, "contest_duration": 5400, "user_num": 4668, "question_slugs": ["check-if-binary-string-has-at-most-one-segment-of-ones", "minimum-elements-to-add-to-form-a-given-sum", "number-of-restricted-paths-from-first-to-last-node", "make-the-xor-of-all-segments-equal-to-zero"]}, {"contest_title": "\u7b2c 232 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 232", "contest_title_slug": "weekly-contest-232", "contest_id": 363, "contest_start_time": 1615689000, "contest_duration": 5400, "user_num": 4802, "question_slugs": ["check-if-one-string-swap-can-make-strings-equal", "find-center-of-star-graph", "maximum-average-pass-ratio", "maximum-score-of-a-good-subarray"]}, {"contest_title": "\u7b2c 233 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 233", "contest_title_slug": "weekly-contest-233", "contest_id": 371, "contest_start_time": 1616293800, "contest_duration": 5400, "user_num": 5010, "question_slugs": ["maximum-ascending-subarray-sum", "number-of-orders-in-the-backlog", "maximum-value-at-a-given-index-in-a-bounded-array", "count-pairs-with-xor-in-a-range"]}, {"contest_title": "\u7b2c 234 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 234", "contest_title_slug": "weekly-contest-234", "contest_id": 375, "contest_start_time": 1616898600, "contest_duration": 5400, "user_num": 4998, "question_slugs": ["number-of-different-integers-in-a-string", "minimum-number-of-operations-to-reinitialize-a-permutation", "evaluate-the-bracket-pairs-of-a-string", "maximize-number-of-nice-divisors"]}, {"contest_title": "\u7b2c 235 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 235", "contest_title_slug": "weekly-contest-235", "contest_id": 377, "contest_start_time": 1617503400, "contest_duration": 5400, "user_num": 4494, "question_slugs": ["truncate-sentence", "finding-the-users-active-minutes", "minimum-absolute-sum-difference", "number-of-different-subsequences-gcds"]}, {"contest_title": "\u7b2c 236 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 236", "contest_title_slug": "weekly-contest-236", "contest_id": 391, "contest_start_time": 1618108200, "contest_duration": 5400, "user_num": 5113, "question_slugs": ["sign-of-the-product-of-an-array", "find-the-winner-of-the-circular-game", "minimum-sideway-jumps", "finding-mk-average"]}, {"contest_title": "\u7b2c 237 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 237", "contest_title_slug": "weekly-contest-237", "contest_id": 393, "contest_start_time": 1618713000, "contest_duration": 5400, "user_num": 4577, "question_slugs": ["check-if-the-sentence-is-pangram", "maximum-ice-cream-bars", "single-threaded-cpu", "find-xor-sum-of-all-pairs-bitwise-and"]}, {"contest_title": "\u7b2c 238 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 238", "contest_title_slug": "weekly-contest-238", "contest_id": 397, "contest_start_time": 1619317800, "contest_duration": 5400, "user_num": 3978, "question_slugs": ["sum-of-digits-in-base-k", "frequency-of-the-most-frequent-element", "longest-substring-of-all-vowels-in-order", "maximum-building-height"]}, {"contest_title": "\u7b2c 239 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 239", "contest_title_slug": "weekly-contest-239", "contest_id": 399, "contest_start_time": 1619922600, "contest_duration": 5400, "user_num": 3907, "question_slugs": ["minimum-distance-to-the-target-element", "splitting-a-string-into-descending-consecutive-values", "minimum-adjacent-swaps-to-reach-the-kth-smallest-number", "minimum-interval-to-include-each-query"]}, {"contest_title": "\u7b2c 240 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 240", "contest_title_slug": "weekly-contest-240", "contest_id": 403, "contest_start_time": 1620527400, "contest_duration": 5400, "user_num": 4307, "question_slugs": ["maximum-population-year", "maximum-distance-between-a-pair-of-values", "maximum-subarray-min-product", "largest-color-value-in-a-directed-graph"]}, {"contest_title": "\u7b2c 241 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 241", "contest_title_slug": "weekly-contest-241", "contest_id": 405, "contest_start_time": 1621132200, "contest_duration": 5400, "user_num": 4491, "question_slugs": ["sum-of-all-subset-xor-totals", "minimum-number-of-swaps-to-make-the-binary-string-alternating", "finding-pairs-with-a-certain-sum", "number-of-ways-to-rearrange-sticks-with-k-sticks-visible"]}, {"contest_title": "\u7b2c 242 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 242", "contest_title_slug": "weekly-contest-242", "contest_id": 409, "contest_start_time": 1621737000, "contest_duration": 5400, "user_num": 4306, "question_slugs": ["longer-contiguous-segments-of-ones-than-zeros", "minimum-speed-to-arrive-on-time", "jump-game-vii", "stone-game-viii"]}, {"contest_title": "\u7b2c 243 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 243", "contest_title_slug": "weekly-contest-243", "contest_id": 411, "contest_start_time": 1622341800, "contest_duration": 5400, "user_num": 4493, "question_slugs": ["check-if-word-equals-summation-of-two-words", "maximum-value-after-insertion", "process-tasks-using-servers", "minimum-skips-to-arrive-at-meeting-on-time"]}, {"contest_title": "\u7b2c 244 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 244", "contest_title_slug": "weekly-contest-244", "contest_id": 415, "contest_start_time": 1622946600, "contest_duration": 5400, "user_num": 4430, "question_slugs": ["determine-whether-matrix-can-be-obtained-by-rotation", "reduction-operations-to-make-the-array-elements-equal", "minimum-number-of-flips-to-make-the-binary-string-alternating", "minimum-space-wasted-from-packaging"]}, {"contest_title": "\u7b2c 245 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 245", "contest_title_slug": "weekly-contest-245", "contest_id": 417, "contest_start_time": 1623551400, "contest_duration": 5400, "user_num": 4271, "question_slugs": ["redistribute-characters-to-make-all-strings-equal", "maximum-number-of-removable-characters", "merge-triplets-to-form-target-triplet", "the-earliest-and-latest-rounds-where-players-compete"]}, {"contest_title": "\u7b2c 246 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 246", "contest_title_slug": "weekly-contest-246", "contest_id": 422, "contest_start_time": 1624156200, "contest_duration": 5400, "user_num": 4136, "question_slugs": ["largest-odd-number-in-string", "the-number-of-full-rounds-you-have-played", "count-sub-islands", "minimum-absolute-difference-queries"]}, {"contest_title": "\u7b2c 247 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 247", "contest_title_slug": "weekly-contest-247", "contest_id": 426, "contest_start_time": 1624761000, "contest_duration": 5400, "user_num": 3981, "question_slugs": ["maximum-product-difference-between-two-pairs", "cyclically-rotating-a-grid", "number-of-wonderful-substrings", "count-ways-to-build-rooms-in-an-ant-colony"]}, {"contest_title": "\u7b2c 248 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 248", "contest_title_slug": "weekly-contest-248", "contest_id": 430, "contest_start_time": 1625365800, "contest_duration": 5400, "user_num": 4451, "question_slugs": ["build-array-from-permutation", "eliminate-maximum-number-of-monsters", "count-good-numbers", "longest-common-subpath"]}, {"contest_title": "\u7b2c 249 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 249", "contest_title_slug": "weekly-contest-249", "contest_id": 432, "contest_start_time": 1625970600, "contest_duration": 5400, "user_num": 4335, "question_slugs": ["concatenation-of-array", "unique-length-3-palindromic-subsequences", "painting-a-grid-with-three-different-colors", "merge-bsts-to-create-single-bst"]}, {"contest_title": "\u7b2c 250 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 250", "contest_title_slug": "weekly-contest-250", "contest_id": 436, "contest_start_time": 1626575400, "contest_duration": 5400, "user_num": 4315, "question_slugs": ["maximum-number-of-words-you-can-type", "add-minimum-number-of-rungs", "maximum-number-of-points-with-cost", "maximum-genetic-difference-query"]}, {"contest_title": "\u7b2c 251 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 251", "contest_title_slug": "weekly-contest-251", "contest_id": 438, "contest_start_time": 1627180200, "contest_duration": 5400, "user_num": 4747, "question_slugs": ["sum-of-digits-of-string-after-convert", "largest-number-after-mutating-substring", "maximum-compatibility-score-sum", "delete-duplicate-folders-in-system"]}, {"contest_title": "\u7b2c 252 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 252", "contest_title_slug": "weekly-contest-252", "contest_id": 442, "contest_start_time": 1627785000, "contest_duration": 5400, "user_num": 4647, "question_slugs": ["three-divisors", "maximum-number-of-weeks-for-which-you-can-work", "minimum-garden-perimeter-to-collect-enough-apples", "count-number-of-special-subsequences"]}, {"contest_title": "\u7b2c 253 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 253", "contest_title_slug": "weekly-contest-253", "contest_id": 444, "contest_start_time": 1628389800, "contest_duration": 5400, "user_num": 4570, "question_slugs": ["check-if-string-is-a-prefix-of-array", "remove-stones-to-minimize-the-total", "minimum-number-of-swaps-to-make-the-string-balanced", "find-the-longest-valid-obstacle-course-at-each-position"]}, {"contest_title": "\u7b2c 254 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 254", "contest_title_slug": "weekly-contest-254", "contest_id": 449, "contest_start_time": 1628994600, "contest_duration": 5400, "user_num": 4349, "question_slugs": ["number-of-strings-that-appear-as-substrings-in-word", "array-with-elements-not-equal-to-average-of-neighbors", "minimum-non-zero-product-of-the-array-elements", "last-day-where-you-can-still-cross"]}, {"contest_title": "\u7b2c 255 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 255", "contest_title_slug": "weekly-contest-255", "contest_id": 457, "contest_start_time": 1629599400, "contest_duration": 5400, "user_num": 4333, "question_slugs": ["find-greatest-common-divisor-of-array", "find-unique-binary-string", "minimize-the-difference-between-target-and-chosen-elements", "find-array-given-subset-sums"]}, {"contest_title": "\u7b2c 256 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 256", "contest_title_slug": "weekly-contest-256", "contest_id": 462, "contest_start_time": 1630204200, "contest_duration": 5400, "user_num": 4136, "question_slugs": ["minimum-difference-between-highest-and-lowest-of-k-scores", "find-the-kth-largest-integer-in-the-array", "minimum-number-of-work-sessions-to-finish-the-tasks", "number-of-unique-good-subsequences"]}, {"contest_title": "\u7b2c 257 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 257", "contest_title_slug": "weekly-contest-257", "contest_id": 464, "contest_start_time": 1630809000, "contest_duration": 5400, "user_num": 4278, "question_slugs": ["count-special-quadruplets", "the-number-of-weak-characters-in-the-game", "first-day-where-you-have-been-in-all-the-rooms", "gcd-sort-of-an-array"]}, {"contest_title": "\u7b2c 258 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 258", "contest_title_slug": "weekly-contest-258", "contest_id": 468, "contest_start_time": 1631413800, "contest_duration": 5400, "user_num": 4519, "question_slugs": ["reverse-prefix-of-word", "number-of-pairs-of-interchangeable-rectangles", "maximum-product-of-the-length-of-two-palindromic-subsequences", "smallest-missing-genetic-value-in-each-subtree"]}, {"contest_title": "\u7b2c 259 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 259", "contest_title_slug": "weekly-contest-259", "contest_id": 474, "contest_start_time": 1632018600, "contest_duration": 5400, "user_num": 3775, "question_slugs": ["final-value-of-variable-after-performing-operations", "sum-of-beauty-in-the-array", "detect-squares", "longest-subsequence-repeated-k-times"]}, {"contest_title": "\u7b2c 260 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 260", "contest_title_slug": "weekly-contest-260", "contest_id": 478, "contest_start_time": 1632623400, "contest_duration": 5400, "user_num": 3654, "question_slugs": ["maximum-difference-between-increasing-elements", "grid-game", "check-if-word-can-be-placed-in-crossword", "the-score-of-students-solving-math-expression"]}, {"contest_title": "\u7b2c 261 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 261", "contest_title_slug": "weekly-contest-261", "contest_id": 481, "contest_start_time": 1633228200, "contest_duration": 5400, "user_num": 3368, "question_slugs": ["minimum-moves-to-convert-string", "find-missing-observations", "stone-game-ix", "smallest-k-length-subsequence-with-occurrences-of-a-letter"]}, {"contest_title": "\u7b2c 262 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 262", "contest_title_slug": "weekly-contest-262", "contest_id": 485, "contest_start_time": 1633833000, "contest_duration": 5400, "user_num": 4261, "question_slugs": ["two-out-of-three", "minimum-operations-to-make-a-uni-value-grid", "stock-price-fluctuation", "partition-array-into-two-arrays-to-minimize-sum-difference"]}, {"contest_title": "\u7b2c 263 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 263", "contest_title_slug": "weekly-contest-263", "contest_id": 487, "contest_start_time": 1634437800, "contest_duration": 5400, "user_num": 4572, "question_slugs": ["check-if-numbers-are-ascending-in-a-sentence", "simple-bank-system", "count-number-of-maximum-bitwise-or-subsets", "second-minimum-time-to-reach-destination"]}, {"contest_title": "\u7b2c 264 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 264", "contest_title_slug": "weekly-contest-264", "contest_id": 491, "contest_start_time": 1635042600, "contest_duration": 5400, "user_num": 4659, "question_slugs": ["number-of-valid-words-in-a-sentence", "next-greater-numerically-balanced-number", "count-nodes-with-the-highest-score", "parallel-courses-iii"]}, {"contest_title": "\u7b2c 265 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 265", "contest_title_slug": "weekly-contest-265", "contest_id": 493, "contest_start_time": 1635647400, "contest_duration": 5400, "user_num": 4182, "question_slugs": ["smallest-index-with-equal-value", "find-the-minimum-and-maximum-number-of-nodes-between-critical-points", "minimum-operations-to-convert-number", "check-if-an-original-string-exists-given-two-encoded-strings"]}, {"contest_title": "\u7b2c 266 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 266", "contest_title_slug": "weekly-contest-266", "contest_id": 498, "contest_start_time": 1636252200, "contest_duration": 5400, "user_num": 4385, "question_slugs": ["count-vowel-substrings-of-a-string", "vowels-of-all-substrings", "minimized-maximum-of-products-distributed-to-any-store", "maximum-path-quality-of-a-graph"]}, {"contest_title": "\u7b2c 267 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 267", "contest_title_slug": "weekly-contest-267", "contest_id": 500, "contest_start_time": 1636857000, "contest_duration": 5400, "user_num": 4365, "question_slugs": ["time-needed-to-buy-tickets", "reverse-nodes-in-even-length-groups", "decode-the-slanted-ciphertext", "process-restricted-friend-requests"]}, {"contest_title": "\u7b2c 268 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 268", "contest_title_slug": "weekly-contest-268", "contest_id": 504, "contest_start_time": 1637461800, "contest_duration": 5400, "user_num": 4398, "question_slugs": ["two-furthest-houses-with-different-colors", "watering-plants", "range-frequency-queries", "sum-of-k-mirror-numbers"]}, {"contest_title": "\u7b2c 269 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 269", "contest_title_slug": "weekly-contest-269", "contest_id": 506, "contest_start_time": 1638066600, "contest_duration": 5400, "user_num": 4293, "question_slugs": ["find-target-indices-after-sorting-array", "k-radius-subarray-averages", "removing-minimum-and-maximum-from-array", "find-all-people-with-secret"]}, {"contest_title": "\u7b2c 270 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 270", "contest_title_slug": "weekly-contest-270", "contest_id": 510, "contest_start_time": 1638671400, "contest_duration": 5400, "user_num": 4748, "question_slugs": ["finding-3-digit-even-numbers", "delete-the-middle-node-of-a-linked-list", "step-by-step-directions-from-a-binary-tree-node-to-another", "valid-arrangement-of-pairs"]}, {"contest_title": "\u7b2c 271 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 271", "contest_title_slug": "weekly-contest-271", "contest_id": 512, "contest_start_time": 1639276200, "contest_duration": 5400, "user_num": 4562, "question_slugs": ["rings-and-rods", "sum-of-subarray-ranges", "watering-plants-ii", "maximum-fruits-harvested-after-at-most-k-steps"]}, {"contest_title": "\u7b2c 272 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 272", "contest_title_slug": "weekly-contest-272", "contest_id": 516, "contest_start_time": 1639881000, "contest_duration": 5400, "user_num": 4698, "question_slugs": ["find-first-palindromic-string-in-the-array", "adding-spaces-to-a-string", "number-of-smooth-descent-periods-of-a-stock", "minimum-operations-to-make-the-array-k-increasing"]}, {"contest_title": "\u7b2c 273 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 273", "contest_title_slug": "weekly-contest-273", "contest_id": 518, "contest_start_time": 1640485800, "contest_duration": 5400, "user_num": 4368, "question_slugs": ["a-number-after-a-double-reversal", "execution-of-all-suffix-instructions-staying-in-a-grid", "intervals-between-identical-elements", "recover-the-original-array"]}, {"contest_title": "\u7b2c 274 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 274", "contest_title_slug": "weekly-contest-274", "contest_id": 522, "contest_start_time": 1641090600, "contest_duration": 5400, "user_num": 4109, "question_slugs": ["check-if-all-as-appears-before-all-bs", "number-of-laser-beams-in-a-bank", "destroying-asteroids", "maximum-employees-to-be-invited-to-a-meeting"]}, {"contest_title": "\u7b2c 275 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 275", "contest_title_slug": "weekly-contest-275", "contest_id": 524, "contest_start_time": 1641695400, "contest_duration": 5400, "user_num": 4787, "question_slugs": ["check-if-every-row-and-column-contains-all-numbers", "minimum-swaps-to-group-all-1s-together-ii", "count-words-obtained-after-adding-a-letter", "earliest-possible-day-of-full-bloom"]}, {"contest_title": "\u7b2c 276 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 276", "contest_title_slug": "weekly-contest-276", "contest_id": 528, "contest_start_time": 1642300200, "contest_duration": 5400, "user_num": 5244, "question_slugs": ["divide-a-string-into-groups-of-size-k", "minimum-moves-to-reach-target-score", "solving-questions-with-brainpower", "maximum-running-time-of-n-computers"]}, {"contest_title": "\u7b2c 277 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 277", "contest_title_slug": "weekly-contest-277", "contest_id": 530, "contest_start_time": 1642905000, "contest_duration": 5400, "user_num": 5060, "question_slugs": ["count-elements-with-strictly-smaller-and-greater-elements", "rearrange-array-elements-by-sign", "find-all-lonely-numbers-in-the-array", "maximum-good-people-based-on-statements"]}, {"contest_title": "\u7b2c 278 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 278", "contest_title_slug": "weekly-contest-278", "contest_id": 534, "contest_start_time": 1643509800, "contest_duration": 5400, "user_num": 4643, "question_slugs": ["keep-multiplying-found-values-by-two", "all-divisions-with-the-highest-score-of-a-binary-array", "find-substring-with-given-hash-value", "groups-of-strings"]}, {"contest_title": "\u7b2c 279 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 279", "contest_title_slug": "weekly-contest-279", "contest_id": 536, "contest_start_time": 1644114600, "contest_duration": 5400, "user_num": 4132, "question_slugs": ["sort-even-and-odd-indices-independently", "smallest-value-of-the-rearranged-number", "design-bitset", "minimum-time-to-remove-all-cars-containing-illegal-goods"]}, {"contest_title": "\u7b2c 280 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 280", "contest_title_slug": "weekly-contest-280", "contest_id": 540, "contest_start_time": 1644719400, "contest_duration": 5400, "user_num": 5834, "question_slugs": ["count-operations-to-obtain-zero", "minimum-operations-to-make-the-array-alternating", "removing-minimum-number-of-magic-beans", "maximum-and-sum-of-array"]}, {"contest_title": "\u7b2c 281 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 281", "contest_title_slug": "weekly-contest-281", "contest_id": 542, "contest_start_time": 1645324200, "contest_duration": 6000, "user_num": 6005, "question_slugs": ["count-integers-with-even-digit-sum", "merge-nodes-in-between-zeros", "construct-string-with-repeat-limit", "count-array-pairs-divisible-by-k"]}, {"contest_title": "\u7b2c 282 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 282", "contest_title_slug": "weekly-contest-282", "contest_id": 546, "contest_start_time": 1645929000, "contest_duration": 5400, "user_num": 7164, "question_slugs": ["counting-words-with-a-given-prefix", "minimum-number-of-steps-to-make-two-strings-anagram-ii", "minimum-time-to-complete-trips", "minimum-time-to-finish-the-race"]}, {"contest_title": "\u7b2c 283 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 283", "contest_title_slug": "weekly-contest-283", "contest_id": 551, "contest_start_time": 1646533800, "contest_duration": 5400, "user_num": 7817, "question_slugs": ["cells-in-a-range-on-an-excel-sheet", "append-k-integers-with-minimal-sum", "create-binary-tree-from-descriptions", "replace-non-coprime-numbers-in-array"]}, {"contest_title": "\u7b2c 284 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 284", "contest_title_slug": "weekly-contest-284", "contest_id": 555, "contest_start_time": 1647138600, "contest_duration": 5400, "user_num": 8483, "question_slugs": ["find-all-k-distant-indices-in-an-array", "count-artifacts-that-can-be-extracted", "maximize-the-topmost-element-after-k-moves", "minimum-weighted-subgraph-with-the-required-paths"]}, {"contest_title": "\u7b2c 285 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 285", "contest_title_slug": "weekly-contest-285", "contest_id": 558, "contest_start_time": 1647743400, "contest_duration": 5400, "user_num": 7501, "question_slugs": ["count-hills-and-valleys-in-an-array", "count-collisions-on-a-road", "maximum-points-in-an-archery-competition", "longest-substring-of-one-repeating-character"]}, {"contest_title": "\u7b2c 286 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 286", "contest_title_slug": "weekly-contest-286", "contest_id": 564, "contest_start_time": 1648348200, "contest_duration": 5400, "user_num": 7248, "question_slugs": ["find-the-difference-of-two-arrays", "minimum-deletions-to-make-array-beautiful", "find-palindrome-with-fixed-length", "maximum-value-of-k-coins-from-piles"]}, {"contest_title": "\u7b2c 287 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 287", "contest_title_slug": "weekly-contest-287", "contest_id": 569, "contest_start_time": 1648953000, "contest_duration": 5400, "user_num": 6811, "question_slugs": ["minimum-number-of-operations-to-convert-time", "find-players-with-zero-or-one-losses", "maximum-candies-allocated-to-k-children", "encrypt-and-decrypt-strings"]}, {"contest_title": "\u7b2c 288 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 288", "contest_title_slug": "weekly-contest-288", "contest_id": 573, "contest_start_time": 1649557800, "contest_duration": 5400, "user_num": 6926, "question_slugs": ["largest-number-after-digit-swaps-by-parity", "minimize-result-by-adding-parentheses-to-expression", "maximum-product-after-k-increments", "maximum-total-beauty-of-the-gardens"]}, {"contest_title": "\u7b2c 289 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 289", "contest_title_slug": "weekly-contest-289", "contest_id": 576, "contest_start_time": 1650162600, "contest_duration": 5400, "user_num": 7293, "question_slugs": ["calculate-digit-sum-of-a-string", "minimum-rounds-to-complete-all-tasks", "maximum-trailing-zeros-in-a-cornered-path", "longest-path-with-different-adjacent-characters"]}, {"contest_title": "\u7b2c 290 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 290", "contest_title_slug": "weekly-contest-290", "contest_id": 582, "contest_start_time": 1650767400, "contest_duration": 5400, "user_num": 6275, "question_slugs": ["intersection-of-multiple-arrays", "count-lattice-points-inside-a-circle", "count-number-of-rectangles-containing-each-point", "number-of-flowers-in-full-bloom"]}, {"contest_title": "\u7b2c 291 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 291", "contest_title_slug": "weekly-contest-291", "contest_id": 587, "contest_start_time": 1651372200, "contest_duration": 5400, "user_num": 6574, "question_slugs": ["remove-digit-from-number-to-maximize-result", "minimum-consecutive-cards-to-pick-up", "k-divisible-elements-subarrays", "total-appeal-of-a-string"]}, {"contest_title": "\u7b2c 292 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 292", "contest_title_slug": "weekly-contest-292", "contest_id": 591, "contest_start_time": 1651977000, "contest_duration": 5400, "user_num": 6884, "question_slugs": ["largest-3-same-digit-number-in-string", "count-nodes-equal-to-average-of-subtree", "count-number-of-texts", "check-if-there-is-a-valid-parentheses-string-path"]}, {"contest_title": "\u7b2c 293 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 293", "contest_title_slug": "weekly-contest-293", "contest_id": 593, "contest_start_time": 1652581800, "contest_duration": 5400, "user_num": 7357, "question_slugs": ["find-resultant-array-after-removing-anagrams", "maximum-consecutive-floors-without-special-floors", "largest-combination-with-bitwise-and-greater-than-zero", "count-integers-in-intervals"]}, {"contest_title": "\u7b2c 294 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 294", "contest_title_slug": "weekly-contest-294", "contest_id": 599, "contest_start_time": 1653186600, "contest_duration": 5400, "user_num": 6640, "question_slugs": ["percentage-of-letter-in-string", "maximum-bags-with-full-capacity-of-rocks", "minimum-lines-to-represent-a-line-chart", "sum-of-total-strength-of-wizards"]}, {"contest_title": "\u7b2c 295 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 295", "contest_title_slug": "weekly-contest-295", "contest_id": 605, "contest_start_time": 1653791400, "contest_duration": 5400, "user_num": 6447, "question_slugs": ["rearrange-characters-to-make-target-string", "apply-discount-to-prices", "steps-to-make-array-non-decreasing", "minimum-obstacle-removal-to-reach-corner"]}, {"contest_title": "\u7b2c 296 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 296", "contest_title_slug": "weekly-contest-296", "contest_id": 609, "contest_start_time": 1654396200, "contest_duration": 5400, "user_num": 5721, "question_slugs": ["min-max-game", "partition-array-such-that-maximum-difference-is-k", "replace-elements-in-an-array", "design-a-text-editor"]}, {"contest_title": "\u7b2c 297 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 297", "contest_title_slug": "weekly-contest-297", "contest_id": 611, "contest_start_time": 1655001000, "contest_duration": 5400, "user_num": 5915, "question_slugs": ["calculate-amount-paid-in-taxes", "minimum-path-cost-in-a-grid", "fair-distribution-of-cookies", "naming-a-company"]}, {"contest_title": "\u7b2c 298 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 298", "contest_title_slug": "weekly-contest-298", "contest_id": 615, "contest_start_time": 1655605800, "contest_duration": 5400, "user_num": 6228, "question_slugs": ["greatest-english-letter-in-upper-and-lower-case", "sum-of-numbers-with-units-digit-k", "longest-binary-subsequence-less-than-or-equal-to-k", "selling-pieces-of-wood"]}, {"contest_title": "\u7b2c 299 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 299", "contest_title_slug": "weekly-contest-299", "contest_id": 618, "contest_start_time": 1656210600, "contest_duration": 5400, "user_num": 6108, "question_slugs": ["check-if-matrix-is-x-matrix", "count-number-of-ways-to-place-houses", "maximum-score-of-spliced-array", "minimum-score-after-removals-on-a-tree"]}, {"contest_title": "\u7b2c 300 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 300", "contest_title_slug": "weekly-contest-300", "contest_id": 647, "contest_start_time": 1656815400, "contest_duration": 5400, "user_num": 6792, "question_slugs": ["decode-the-message", "spiral-matrix-iv", "number-of-people-aware-of-a-secret", "number-of-increasing-paths-in-a-grid"]}, {"contest_title": "\u7b2c 301 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 301", "contest_title_slug": "weekly-contest-301", "contest_id": 649, "contest_start_time": 1657420200, "contest_duration": 5400, "user_num": 7133, "question_slugs": ["minimum-amount-of-time-to-fill-cups", "smallest-number-in-infinite-set", "move-pieces-to-obtain-a-string", "count-the-number-of-ideal-arrays"]}, {"contest_title": "\u7b2c 302 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 302", "contest_title_slug": "weekly-contest-302", "contest_id": 653, "contest_start_time": 1658025000, "contest_duration": 5400, "user_num": 7092, "question_slugs": ["maximum-number-of-pairs-in-array", "max-sum-of-a-pair-with-equal-sum-of-digits", "query-kth-smallest-trimmed-number", "minimum-deletions-to-make-array-divisible"]}, {"contest_title": "\u7b2c 303 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 303", "contest_title_slug": "weekly-contest-303", "contest_id": 655, "contest_start_time": 1658629800, "contest_duration": 5400, "user_num": 7032, "question_slugs": ["first-letter-to-appear-twice", "equal-row-and-column-pairs", "design-a-food-rating-system", "number-of-excellent-pairs"]}, {"contest_title": "\u7b2c 304 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 304", "contest_title_slug": "weekly-contest-304", "contest_id": 659, "contest_start_time": 1659234600, "contest_duration": 5400, "user_num": 7372, "question_slugs": ["make-array-zero-by-subtracting-equal-amounts", "maximum-number-of-groups-entering-a-competition", "find-closest-node-to-given-two-nodes", "longest-cycle-in-a-graph"]}, {"contest_title": "\u7b2c 305 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 305", "contest_title_slug": "weekly-contest-305", "contest_id": 663, "contest_start_time": 1659839400, "contest_duration": 5400, "user_num": 7465, "question_slugs": ["number-of-arithmetic-triplets", "reachable-nodes-with-restrictions", "check-if-there-is-a-valid-partition-for-the-array", "longest-ideal-subsequence"]}, {"contest_title": "\u7b2c 306 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 306", "contest_title_slug": "weekly-contest-306", "contest_id": 669, "contest_start_time": 1660444200, "contest_duration": 5400, "user_num": 7500, "question_slugs": ["largest-local-values-in-a-matrix", "node-with-highest-edge-score", "construct-smallest-number-from-di-string", "count-special-integers"]}, {"contest_title": "\u7b2c 307 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 307", "contest_title_slug": "weekly-contest-307", "contest_id": 671, "contest_start_time": 1661049000, "contest_duration": 5400, "user_num": 7064, "question_slugs": ["minimum-hours-of-training-to-win-a-competition", "largest-palindromic-number", "amount-of-time-for-binary-tree-to-be-infected", "find-the-k-sum-of-an-array"]}, {"contest_title": "\u7b2c 308 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 308", "contest_title_slug": "weekly-contest-308", "contest_id": 689, "contest_start_time": 1661653800, "contest_duration": 5400, "user_num": 6394, "question_slugs": ["longest-subsequence-with-limited-sum", "removing-stars-from-a-string", "minimum-amount-of-time-to-collect-garbage", "build-a-matrix-with-conditions"]}, {"contest_title": "\u7b2c 309 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 309", "contest_title_slug": "weekly-contest-309", "contest_id": 693, "contest_start_time": 1662258600, "contest_duration": 5400, "user_num": 7972, "question_slugs": ["check-distances-between-same-letters", "number-of-ways-to-reach-a-position-after-exactly-k-steps", "longest-nice-subarray", "meeting-rooms-iii"]}, {"contest_title": "\u7b2c 310 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 310", "contest_title_slug": "weekly-contest-310", "contest_id": 704, "contest_start_time": 1662863400, "contest_duration": 5400, "user_num": 6081, "question_slugs": ["most-frequent-even-element", "optimal-partition-of-string", "divide-intervals-into-minimum-number-of-groups", "longest-increasing-subsequence-ii"]}, {"contest_title": "\u7b2c 311 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 311", "contest_title_slug": "weekly-contest-311", "contest_id": 741, "contest_start_time": 1663468200, "contest_duration": 5400, "user_num": 6710, "question_slugs": ["smallest-even-multiple", "length-of-the-longest-alphabetical-continuous-substring", "reverse-odd-levels-of-binary-tree", "sum-of-prefix-scores-of-strings"]}, {"contest_title": "\u7b2c 312 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 312", "contest_title_slug": "weekly-contest-312", "contest_id": 746, "contest_start_time": 1664073000, "contest_duration": 5400, "user_num": 6638, "question_slugs": ["sort-the-people", "longest-subarray-with-maximum-bitwise-and", "find-all-good-indices", "number-of-good-paths"]}, {"contest_title": "\u7b2c 313 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 313", "contest_title_slug": "weekly-contest-313", "contest_id": 750, "contest_start_time": 1664677800, "contest_duration": 5400, "user_num": 5445, "question_slugs": ["number-of-common-factors", "maximum-sum-of-an-hourglass", "minimize-xor", "maximum-deletions-on-a-string"]}, {"contest_title": "\u7b2c 314 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 314", "contest_title_slug": "weekly-contest-314", "contest_id": 756, "contest_start_time": 1665282600, "contest_duration": 5400, "user_num": 4838, "question_slugs": ["the-employee-that-worked-on-the-longest-task", "find-the-original-array-of-prefix-xor", "using-a-robot-to-print-the-lexicographically-smallest-string", "paths-in-matrix-whose-sum-is-divisible-by-k"]}, {"contest_title": "\u7b2c 315 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 315", "contest_title_slug": "weekly-contest-315", "contest_id": 759, "contest_start_time": 1665887400, "contest_duration": 5400, "user_num": 6490, "question_slugs": ["largest-positive-integer-that-exists-with-its-negative", "count-number-of-distinct-integers-after-reverse-operations", "sum-of-number-and-its-reverse", "count-subarrays-with-fixed-bounds"]}, {"contest_title": "\u7b2c 316 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 316", "contest_title_slug": "weekly-contest-316", "contest_id": 764, "contest_start_time": 1666492200, "contest_duration": 5400, "user_num": 6387, "question_slugs": ["determine-if-two-events-have-conflict", "number-of-subarrays-with-gcd-equal-to-k", "minimum-cost-to-make-array-equal", "minimum-number-of-operations-to-make-arrays-similar"]}, {"contest_title": "\u7b2c 317 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 317", "contest_title_slug": "weekly-contest-317", "contest_id": 767, "contest_start_time": 1667097000, "contest_duration": 5400, "user_num": 5660, "question_slugs": ["average-value-of-even-numbers-that-are-divisible-by-three", "most-popular-video-creator", "minimum-addition-to-make-integer-beautiful", "height-of-binary-tree-after-subtree-removal-queries"]}, {"contest_title": "\u7b2c 318 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 318", "contest_title_slug": "weekly-contest-318", "contest_id": 771, "contest_start_time": 1667701800, "contest_duration": 5400, "user_num": 5670, "question_slugs": ["apply-operations-to-an-array", "maximum-sum-of-distinct-subarrays-with-length-k", "total-cost-to-hire-k-workers", "minimum-total-distance-traveled"]}, {"contest_title": "\u7b2c 319 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 319", "contest_title_slug": "weekly-contest-319", "contest_id": 773, "contest_start_time": 1668306600, "contest_duration": 5400, "user_num": 6175, "question_slugs": ["convert-the-temperature", "number-of-subarrays-with-lcm-equal-to-k", "minimum-number-of-operations-to-sort-a-binary-tree-by-level", "maximum-number-of-non-overlapping-palindrome-substrings"]}, {"contest_title": "\u7b2c 320 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 320", "contest_title_slug": "weekly-contest-320", "contest_id": 777, "contest_start_time": 1668911400, "contest_duration": 5400, "user_num": 5678, "question_slugs": ["number-of-unequal-triplets-in-array", "closest-nodes-queries-in-a-binary-search-tree", "minimum-fuel-cost-to-report-to-the-capital", "number-of-beautiful-partitions"]}, {"contest_title": "\u7b2c 321 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 321", "contest_title_slug": "weekly-contest-321", "contest_id": 779, "contest_start_time": 1669516200, "contest_duration": 5400, "user_num": 5115, "question_slugs": ["find-the-pivot-integer", "append-characters-to-string-to-make-subsequence", "remove-nodes-from-linked-list", "count-subarrays-with-median-k"]}, {"contest_title": "\u7b2c 322 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 322", "contest_title_slug": "weekly-contest-322", "contest_id": 783, "contest_start_time": 1670121000, "contest_duration": 5400, "user_num": 5085, "question_slugs": ["circular-sentence", "divide-players-into-teams-of-equal-skill", "minimum-score-of-a-path-between-two-cities", "divide-nodes-into-the-maximum-number-of-groups"]}, {"contest_title": "\u7b2c 323 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 323", "contest_title_slug": "weekly-contest-323", "contest_id": 785, "contest_start_time": 1670725800, "contest_duration": 5400, "user_num": 4671, "question_slugs": ["delete-greatest-value-in-each-row", "longest-square-streak-in-an-array", "design-memory-allocator", "maximum-number-of-points-from-grid-queries"]}, {"contest_title": "\u7b2c 324 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 324", "contest_title_slug": "weekly-contest-324", "contest_id": 790, "contest_start_time": 1671330600, "contest_duration": 5400, "user_num": 4167, "question_slugs": ["count-pairs-of-similar-strings", "smallest-value-after-replacing-with-sum-of-prime-factors", "add-edges-to-make-degrees-of-all-nodes-even", "cycle-length-queries-in-a-tree"]}, {"contest_title": "\u7b2c 325 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 325", "contest_title_slug": "weekly-contest-325", "contest_id": 795, "contest_start_time": 1671935400, "contest_duration": 5400, "user_num": 3530, "question_slugs": ["shortest-distance-to-target-string-in-a-circular-array", "take-k-of-each-character-from-left-and-right", "maximum-tastiness-of-candy-basket", "number-of-great-partitions"]}, {"contest_title": "\u7b2c 326 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 326", "contest_title_slug": "weekly-contest-326", "contest_id": 799, "contest_start_time": 1672540200, "contest_duration": 5400, "user_num": 3873, "question_slugs": ["count-the-digits-that-divide-a-number", "distinct-prime-factors-of-product-of-array", "partition-string-into-substrings-with-values-at-most-k", "closest-prime-numbers-in-range"]}, {"contest_title": "\u7b2c 327 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 327", "contest_title_slug": "weekly-contest-327", "contest_id": 801, "contest_start_time": 1673145000, "contest_duration": 5400, "user_num": 4518, "question_slugs": ["maximum-count-of-positive-integer-and-negative-integer", "maximal-score-after-applying-k-operations", "make-number-of-distinct-characters-equal", "time-to-cross-a-bridge"]}, {"contest_title": "\u7b2c 328 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 328", "contest_title_slug": "weekly-contest-328", "contest_id": 805, "contest_start_time": 1673749800, "contest_duration": 5400, "user_num": 4776, "question_slugs": ["difference-between-element-sum-and-digit-sum-of-an-array", "increment-submatrices-by-one", "count-the-number-of-good-subarrays", "difference-between-maximum-and-minimum-price-sum"]}, {"contest_title": "\u7b2c 329 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 329", "contest_title_slug": "weekly-contest-329", "contest_id": 807, "contest_start_time": 1674354600, "contest_duration": 5400, "user_num": 2591, "question_slugs": ["alternating-digit-sum", "sort-the-students-by-their-kth-score", "apply-bitwise-operations-to-make-strings-equal", "minimum-cost-to-split-an-array"]}, {"contest_title": "\u7b2c 330 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 330", "contest_title_slug": "weekly-contest-330", "contest_id": 811, "contest_start_time": 1674959400, "contest_duration": 5400, "user_num": 3399, "question_slugs": ["count-distinct-numbers-on-board", "count-collisions-of-monkeys-on-a-polygon", "put-marbles-in-bags", "count-increasing-quadruplets"]}, {"contest_title": "\u7b2c 331 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 331", "contest_title_slug": "weekly-contest-331", "contest_id": 813, "contest_start_time": 1675564200, "contest_duration": 5400, "user_num": 4256, "question_slugs": ["take-gifts-from-the-richest-pile", "count-vowel-strings-in-ranges", "house-robber-iv", "rearranging-fruits"]}, {"contest_title": "\u7b2c 332 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 332", "contest_title_slug": "weekly-contest-332", "contest_id": 817, "contest_start_time": 1676169000, "contest_duration": 5400, "user_num": 4547, "question_slugs": ["find-the-array-concatenation-value", "count-the-number-of-fair-pairs", "substring-xor-queries", "subsequence-with-the-minimum-score"]}, {"contest_title": "\u7b2c 333 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 333", "contest_title_slug": "weekly-contest-333", "contest_id": 819, "contest_start_time": 1676773800, "contest_duration": 5400, "user_num": 4969, "question_slugs": ["merge-two-2d-arrays-by-summing-values", "minimum-operations-to-reduce-an-integer-to-0", "count-the-number-of-square-free-subsets", "find-the-string-with-lcp"]}, {"contest_title": "\u7b2c 334 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 334", "contest_title_slug": "weekly-contest-334", "contest_id": 823, "contest_start_time": 1677378600, "contest_duration": 5400, "user_num": 5501, "question_slugs": ["left-and-right-sum-differences", "find-the-divisibility-array-of-a-string", "find-the-maximum-number-of-marked-indices", "minimum-time-to-visit-a-cell-in-a-grid"]}, {"contest_title": "\u7b2c 335 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 335", "contest_title_slug": "weekly-contest-335", "contest_id": 825, "contest_start_time": 1677983400, "contest_duration": 5400, "user_num": 6019, "question_slugs": ["pass-the-pillow", "kth-largest-sum-in-a-binary-tree", "split-the-array-to-make-coprime-products", "number-of-ways-to-earn-points"]}, {"contest_title": "\u7b2c 336 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 336", "contest_title_slug": "weekly-contest-336", "contest_id": 833, "contest_start_time": 1678588200, "contest_duration": 5400, "user_num": 5897, "question_slugs": ["count-the-number-of-vowel-strings-in-range", "rearrange-array-to-maximize-prefix-score", "count-the-number-of-beautiful-subarrays", "minimum-time-to-complete-all-tasks"]}, {"contest_title": "\u7b2c 337 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 337", "contest_title_slug": "weekly-contest-337", "contest_id": 839, "contest_start_time": 1679193000, "contest_duration": 5400, "user_num": 5628, "question_slugs": ["number-of-even-and-odd-bits", "check-knight-tour-configuration", "the-number-of-beautiful-subsets", "smallest-missing-non-negative-integer-after-operations"]}, {"contest_title": "\u7b2c 338 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 338", "contest_title_slug": "weekly-contest-338", "contest_id": 843, "contest_start_time": 1679797800, "contest_duration": 5400, "user_num": 5594, "question_slugs": ["k-items-with-the-maximum-sum", "prime-subtraction-operation", "minimum-operations-to-make-all-array-elements-equal", "collect-coins-in-a-tree"]}, {"contest_title": "\u7b2c 339 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 339", "contest_title_slug": "weekly-contest-339", "contest_id": 850, "contest_start_time": 1680402600, "contest_duration": 5400, "user_num": 5180, "question_slugs": ["find-the-longest-balanced-substring-of-a-binary-string", "convert-an-array-into-a-2d-array-with-conditions", "mice-and-cheese", "minimum-reverse-operations"]}, {"contest_title": "\u7b2c 340 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 340", "contest_title_slug": "weekly-contest-340", "contest_id": 854, "contest_start_time": 1681007400, "contest_duration": 5400, "user_num": 4937, "question_slugs": ["prime-in-diagonal", "sum-of-distances", "minimize-the-maximum-difference-of-pairs", "minimum-number-of-visited-cells-in-a-grid"]}, {"contest_title": "\u7b2c 341 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 341", "contest_title_slug": "weekly-contest-341", "contest_id": 856, "contest_start_time": 1681612200, "contest_duration": 5400, "user_num": 4792, "question_slugs": ["row-with-maximum-ones", "find-the-maximum-divisibility-score", "minimum-additions-to-make-valid-string", "minimize-the-total-price-of-the-trips"]}, {"contest_title": "\u7b2c 342 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 342", "contest_title_slug": "weekly-contest-342", "contest_id": 860, "contest_start_time": 1682217000, "contest_duration": 5400, "user_num": 3702, "question_slugs": ["calculate-delayed-arrival-time", "sum-multiples", "sliding-subarray-beauty", "minimum-number-of-operations-to-make-all-array-elements-equal-to-1"]}, {"contest_title": "\u7b2c 343 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 343", "contest_title_slug": "weekly-contest-343", "contest_id": 863, "contest_start_time": 1682821800, "contest_duration": 5400, "user_num": 3313, "question_slugs": ["determine-the-winner-of-a-bowling-game", "first-completely-painted-row-or-column", "minimum-cost-of-a-path-with-special-roads", "lexicographically-smallest-beautiful-string"]}, {"contest_title": "\u7b2c 344 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 344", "contest_title_slug": "weekly-contest-344", "contest_id": 867, "contest_start_time": 1683426600, "contest_duration": 5400, "user_num": 3986, "question_slugs": ["find-the-distinct-difference-array", "frequency-tracker", "number-of-adjacent-elements-with-the-same-color", "make-costs-of-paths-equal-in-a-binary-tree"]}, {"contest_title": "\u7b2c 345 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 345", "contest_title_slug": "weekly-contest-345", "contest_id": 870, "contest_start_time": 1684031400, "contest_duration": 5400, "user_num": 4165, "question_slugs": ["find-the-losers-of-the-circular-game", "neighboring-bitwise-xor", "maximum-number-of-moves-in-a-grid", "count-the-number-of-complete-components"]}, {"contest_title": "\u7b2c 346 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 346", "contest_title_slug": "weekly-contest-346", "contest_id": 874, "contest_start_time": 1684636200, "contest_duration": 5400, "user_num": 4035, "question_slugs": ["minimum-string-length-after-removing-substrings", "lexicographically-smallest-palindrome", "find-the-punishment-number-of-an-integer", "modify-graph-edge-weights"]}, {"contest_title": "\u7b2c 347 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 347", "contest_title_slug": "weekly-contest-347", "contest_id": 876, "contest_start_time": 1685241000, "contest_duration": 5400, "user_num": 3836, "question_slugs": ["remove-trailing-zeros-from-a-string", "difference-of-number-of-distinct-values-on-diagonals", "minimum-cost-to-make-all-characters-equal", "maximum-strictly-increasing-cells-in-a-matrix"]}, {"contest_title": "\u7b2c 348 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 348", "contest_title_slug": "weekly-contest-348", "contest_id": 880, "contest_start_time": 1685845800, "contest_duration": 5400, "user_num": 3909, "question_slugs": ["minimize-string-length", "semi-ordered-permutation", "sum-of-matrix-after-queries", "count-of-integers"]}, {"contest_title": "\u7b2c 349 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 349", "contest_title_slug": "weekly-contest-349", "contest_id": 882, "contest_start_time": 1686450600, "contest_duration": 5400, "user_num": 3714, "question_slugs": ["neither-minimum-nor-maximum", "lexicographically-smallest-string-after-substring-operation", "collecting-chocolates", "maximum-sum-queries"]}, {"contest_title": "\u7b2c 350 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 350", "contest_title_slug": "weekly-contest-350", "contest_id": 886, "contest_start_time": 1687055400, "contest_duration": 5400, "user_num": 3580, "question_slugs": ["total-distance-traveled", "find-the-value-of-the-partition", "special-permutations", "painting-the-walls"]}, {"contest_title": "\u7b2c 351 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 351", "contest_title_slug": "weekly-contest-351", "contest_id": 888, "contest_start_time": 1687660200, "contest_duration": 5400, "user_num": 2471, "question_slugs": ["number-of-beautiful-pairs", "minimum-operations-to-make-the-integer-zero", "ways-to-split-array-into-good-subarrays", "robot-collisions"]}, {"contest_title": "\u7b2c 352 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 352", "contest_title_slug": "weekly-contest-352", "contest_id": 892, "contest_start_time": 1688265000, "contest_duration": 5400, "user_num": 3437, "question_slugs": ["longest-even-odd-subarray-with-threshold", "prime-pairs-with-target-sum", "continuous-subarrays", "sum-of-imbalance-numbers-of-all-subarrays"]}, {"contest_title": "\u7b2c 353 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 353", "contest_title_slug": "weekly-contest-353", "contest_id": 894, "contest_start_time": 1688869800, "contest_duration": 5400, "user_num": 4113, "question_slugs": ["find-the-maximum-achievable-number", "maximum-number-of-jumps-to-reach-the-last-index", "longest-non-decreasing-subarray-from-two-arrays", "apply-operations-to-make-all-array-elements-equal-to-zero"]}, {"contest_title": "\u7b2c 354 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 354", "contest_title_slug": "weekly-contest-354", "contest_id": 898, "contest_start_time": 1689474600, "contest_duration": 5400, "user_num": 3957, "question_slugs": ["sum-of-squares-of-special-elements", "maximum-beauty-of-an-array-after-applying-operation", "minimum-index-of-a-valid-split", "length-of-the-longest-valid-substring"]}, {"contest_title": "\u7b2c 355 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 355", "contest_title_slug": "weekly-contest-355", "contest_id": 900, "contest_start_time": 1690079400, "contest_duration": 5400, "user_num": 4112, "question_slugs": ["split-strings-by-separator", "largest-element-in-an-array-after-merge-operations", "maximum-number-of-groups-with-increasing-length", "count-paths-that-can-form-a-palindrome-in-a-tree"]}, {"contest_title": "\u7b2c 356 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 356", "contest_title_slug": "weekly-contest-356", "contest_id": 904, "contest_start_time": 1690684200, "contest_duration": 5400, "user_num": 4082, "question_slugs": ["number-of-employees-who-met-the-target", "count-complete-subarrays-in-an-array", "shortest-string-that-contains-three-strings", "count-stepping-numbers-in-range"]}, {"contest_title": "\u7b2c 357 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 357", "contest_title_slug": "weekly-contest-357", "contest_id": 906, "contest_start_time": 1691289000, "contest_duration": 5400, "user_num": 4265, "question_slugs": ["faulty-keyboard", "check-if-it-is-possible-to-split-array", "find-the-safest-path-in-a-grid", "maximum-elegance-of-a-k-length-subsequence"]}, {"contest_title": "\u7b2c 358 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 358", "contest_title_slug": "weekly-contest-358", "contest_id": 910, "contest_start_time": 1691893800, "contest_duration": 5400, "user_num": 4475, "question_slugs": ["max-pair-sum-in-an-array", "double-a-number-represented-as-a-linked-list", "minimum-absolute-difference-between-elements-with-constraint", "apply-operations-to-maximize-score"]}, {"contest_title": "\u7b2c 359 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 359", "contest_title_slug": "weekly-contest-359", "contest_id": 913, "contest_start_time": 1692498600, "contest_duration": 5400, "user_num": 4101, "question_slugs": ["check-if-a-string-is-an-acronym-of-words", "determine-the-minimum-sum-of-a-k-avoiding-array", "maximize-the-profit-as-the-salesman", "find-the-longest-equal-subarray"]}, {"contest_title": "\u7b2c 360 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 360", "contest_title_slug": "weekly-contest-360", "contest_id": 918, "contest_start_time": 1693103400, "contest_duration": 5400, "user_num": 4496, "question_slugs": ["furthest-point-from-origin", "find-the-minimum-possible-sum-of-a-beautiful-array", "minimum-operations-to-form-subsequence-with-target-sum", "maximize-value-of-function-in-a-ball-passing-game"]}, {"contest_title": "\u7b2c 361 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 361", "contest_title_slug": "weekly-contest-361", "contest_id": 920, "contest_start_time": 1693708200, "contest_duration": 5400, "user_num": 4170, "question_slugs": ["count-symmetric-integers", "minimum-operations-to-make-a-special-number", "count-of-interesting-subarrays", "minimum-edge-weight-equilibrium-queries-in-a-tree"]}, {"contest_title": "\u7b2c 362 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 362", "contest_title_slug": "weekly-contest-362", "contest_id": 924, "contest_start_time": 1694313000, "contest_duration": 5400, "user_num": 4800, "question_slugs": ["points-that-intersect-with-cars", "determine-if-a-cell-is-reachable-at-a-given-time", "minimum-moves-to-spread-stones-over-grid", "string-transformation"]}, {"contest_title": "\u7b2c 363 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 363", "contest_title_slug": "weekly-contest-363", "contest_id": 926, "contest_start_time": 1694917800, "contest_duration": 5400, "user_num": 4768, "question_slugs": ["sum-of-values-at-indices-with-k-set-bits", "happy-students", "maximum-number-of-alloys", "maximum-element-sum-of-a-complete-subset-of-indices"]}, {"contest_title": "\u7b2c 364 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 364", "contest_title_slug": "weekly-contest-364", "contest_id": 930, "contest_start_time": 1695522600, "contest_duration": 5400, "user_num": 4304, "question_slugs": ["maximum-odd-binary-number", "beautiful-towers-i", "beautiful-towers-ii", "count-valid-paths-in-a-tree"]}, {"contest_title": "\u7b2c 365 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 365", "contest_title_slug": "weekly-contest-365", "contest_id": 932, "contest_start_time": 1696127400, "contest_duration": 5400, "user_num": 2909, "question_slugs": ["maximum-value-of-an-ordered-triplet-i", "maximum-value-of-an-ordered-triplet-ii", "minimum-size-subarray-in-infinite-array", "count-visited-nodes-in-a-directed-graph"]}, {"contest_title": "\u7b2c 366 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 366", "contest_title_slug": "weekly-contest-366", "contest_id": 936, "contest_start_time": 1696732200, "contest_duration": 5400, "user_num": 2790, "question_slugs": ["divisible-and-non-divisible-sums-difference", "minimum-processing-time", "apply-operations-to-make-two-strings-equal", "apply-operations-on-array-to-maximize-sum-of-squares"]}, {"contest_title": "\u7b2c 367 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 367", "contest_title_slug": "weekly-contest-367", "contest_id": 938, "contest_start_time": 1697337000, "contest_duration": 5400, "user_num": 4317, "question_slugs": ["find-indices-with-index-and-value-difference-i", "shortest-and-lexicographically-smallest-beautiful-string", "find-indices-with-index-and-value-difference-ii", "construct-product-matrix"]}, {"contest_title": "\u7b2c 368 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 368", "contest_title_slug": "weekly-contest-368", "contest_id": 942, "contest_start_time": 1697941800, "contest_duration": 5400, "user_num": 5002, "question_slugs": ["minimum-sum-of-mountain-triplets-i", "minimum-sum-of-mountain-triplets-ii", "minimum-number-of-groups-to-create-a-valid-assignment", "minimum-changes-to-make-k-semi-palindromes"]}, {"contest_title": "\u7b2c 369 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 369", "contest_title_slug": "weekly-contest-369", "contest_id": 945, "contest_start_time": 1698546600, "contest_duration": 5400, "user_num": 4121, "question_slugs": ["find-the-k-or-of-an-array", "minimum-equal-sum-of-two-arrays-after-replacing-zeros", "minimum-increment-operations-to-make-array-beautiful", "maximum-points-after-collecting-coins-from-all-nodes"]}, {"contest_title": "\u7b2c 370 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 370", "contest_title_slug": "weekly-contest-370", "contest_id": 950, "contest_start_time": 1699151400, "contest_duration": 5400, "user_num": 3983, "question_slugs": ["find-champion-i", "find-champion-ii", "maximum-score-after-applying-operations-on-a-tree", "maximum-balanced-subsequence-sum"]}, {"contest_title": "\u7b2c 371 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 371", "contest_title_slug": "weekly-contest-371", "contest_id": 952, "contest_start_time": 1699756200, "contest_duration": 5400, "user_num": 3637, "question_slugs": ["maximum-strong-pair-xor-i", "high-access-employees", "minimum-operations-to-maximize-last-elements-in-arrays", "maximum-strong-pair-xor-ii"]}, {"contest_title": "\u7b2c 372 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 372", "contest_title_slug": "weekly-contest-372", "contest_id": 956, "contest_start_time": 1700361000, "contest_duration": 5400, "user_num": 3920, "question_slugs": ["make-three-strings-equal", "separate-black-and-white-balls", "maximum-xor-product", "find-building-where-alice-and-bob-can-meet"]}, {"contest_title": "\u7b2c 373 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 373", "contest_title_slug": "weekly-contest-373", "contest_id": 958, "contest_start_time": 1700965800, "contest_duration": 5400, "user_num": 3577, "question_slugs": ["matrix-similarity-after-cyclic-shifts", "count-beautiful-substrings-i", "make-lexicographically-smallest-array-by-swapping-elements", "count-beautiful-substrings-ii"]}, {"contest_title": "\u7b2c 374 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 374", "contest_title_slug": "weekly-contest-374", "contest_id": 962, "contest_start_time": 1701570600, "contest_duration": 5400, "user_num": 4053, "question_slugs": ["find-the-peaks", "minimum-number-of-coins-to-be-added", "count-complete-substrings", "count-the-number-of-infection-sequences"]}, {"contest_title": "\u7b2c 375 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 375", "contest_title_slug": "weekly-contest-375", "contest_id": 964, "contest_start_time": 1702175400, "contest_duration": 5400, "user_num": 3518, "question_slugs": ["count-tested-devices-after-test-operations", "double-modular-exponentiation", "count-subarrays-where-max-element-appears-at-least-k-times", "count-the-number-of-good-partitions"]}, {"contest_title": "\u7b2c 376 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 376", "contest_title_slug": "weekly-contest-376", "contest_id": 968, "contest_start_time": 1702780200, "contest_duration": 5400, "user_num": 3409, "question_slugs": ["find-missing-and-repeated-values", "divide-array-into-arrays-with-max-difference", "minimum-cost-to-make-array-equalindromic", "apply-operations-to-maximize-frequency-score"]}, {"contest_title": "\u7b2c 377 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 377", "contest_title_slug": "weekly-contest-377", "contest_id": 970, "contest_start_time": 1703385000, "contest_duration": 5400, "user_num": 3148, "question_slugs": ["minimum-number-game", "maximum-square-area-by-removing-fences-from-a-field", "minimum-cost-to-convert-string-i", "minimum-cost-to-convert-string-ii"]}, {"contest_title": "\u7b2c 378 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 378", "contest_title_slug": "weekly-contest-378", "contest_id": 974, "contest_start_time": 1703989800, "contest_duration": 5400, "user_num": 2747, "question_slugs": ["check-if-bitwise-or-has-trailing-zeros", "find-longest-special-substring-that-occurs-thrice-i", "find-longest-special-substring-that-occurs-thrice-ii", "palindrome-rearrangement-queries"]}, {"contest_title": "\u7b2c 379 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 379", "contest_title_slug": "weekly-contest-379", "contest_id": 976, "contest_start_time": 1704594600, "contest_duration": 5400, "user_num": 3117, "question_slugs": ["maximum-area-of-longest-diagonal-rectangle", "minimum-moves-to-capture-the-queen", "maximum-size-of-a-set-after-removals", "maximize-the-number-of-partitions-after-operations"]}, {"contest_title": "\u7b2c 380 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 380", "contest_title_slug": "weekly-contest-380", "contest_id": 980, "contest_start_time": 1705199400, "contest_duration": 5400, "user_num": 3325, "question_slugs": ["count-elements-with-maximum-frequency", "find-beautiful-indices-in-the-given-array-i", "maximum-number-that-sum-of-the-prices-is-less-than-or-equal-to-k", "find-beautiful-indices-in-the-given-array-ii"]}, {"contest_title": "\u7b2c 381 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 381", "contest_title_slug": "weekly-contest-381", "contest_id": 982, "contest_start_time": 1705804200, "contest_duration": 5400, "user_num": 3737, "question_slugs": ["minimum-number-of-pushes-to-type-word-i", "count-the-number-of-houses-at-a-certain-distance-i", "minimum-number-of-pushes-to-type-word-ii", "count-the-number-of-houses-at-a-certain-distance-ii"]}, {"contest_title": "\u7b2c 382 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 382", "contest_title_slug": "weekly-contest-382", "contest_id": 986, "contest_start_time": 1706409000, "contest_duration": 5400, "user_num": 3134, "question_slugs": ["number-of-changing-keys", "find-the-maximum-number-of-elements-in-subset", "alice-and-bob-playing-flower-game", "minimize-or-of-remaining-elements-using-operations"]}, {"contest_title": "\u7b2c 383 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 383", "contest_title_slug": "weekly-contest-383", "contest_id": 988, "contest_start_time": 1707013800, "contest_duration": 5400, "user_num": 2691, "question_slugs": ["ant-on-the-boundary", "minimum-time-to-revert-word-to-initial-state-i", "find-the-grid-of-region-average", "minimum-time-to-revert-word-to-initial-state-ii"]}, {"contest_title": "\u7b2c 384 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 384", "contest_title_slug": "weekly-contest-384", "contest_id": 992, "contest_start_time": 1707618600, "contest_duration": 5400, "user_num": 1652, "question_slugs": ["modify-the-matrix", "number-of-subarrays-that-match-a-pattern-i", "maximum-palindromes-after-operations", "number-of-subarrays-that-match-a-pattern-ii"]}, {"contest_title": "\u7b2c 385 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 385", "contest_title_slug": "weekly-contest-385", "contest_id": 994, "contest_start_time": 1708223400, "contest_duration": 5400, "user_num": 2382, "question_slugs": ["count-prefix-and-suffix-pairs-i", "find-the-length-of-the-longest-common-prefix", "most-frequent-prime", "count-prefix-and-suffix-pairs-ii"]}, {"contest_title": "\u7b2c 386 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 386", "contest_title_slug": "weekly-contest-386", "contest_id": 998, "contest_start_time": 1708828200, "contest_duration": 5400, "user_num": 2731, "question_slugs": ["split-the-array", "find-the-largest-area-of-square-inside-two-rectangles", "earliest-second-to-mark-indices-i", "earliest-second-to-mark-indices-ii"]}, {"contest_title": "\u7b2c 387 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 387", "contest_title_slug": "weekly-contest-387", "contest_id": 1000, "contest_start_time": 1709433000, "contest_duration": 5400, "user_num": 3694, "question_slugs": ["distribute-elements-into-two-arrays-i", "count-submatrices-with-top-left-element-and-sum-less-than-k", "minimum-operations-to-write-the-letter-y-on-a-grid", "distribute-elements-into-two-arrays-ii"]}, {"contest_title": "\u7b2c 388 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 388", "contest_title_slug": "weekly-contest-388", "contest_id": 1004, "contest_start_time": 1710037800, "contest_duration": 5400, "user_num": 4291, "question_slugs": ["apple-redistribution-into-boxes", "maximize-happiness-of-selected-children", "shortest-uncommon-substring-in-an-array", "maximum-strength-of-k-disjoint-subarrays"]}, {"contest_title": "\u7b2c 389 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 389", "contest_title_slug": "weekly-contest-389", "contest_id": 1006, "contest_start_time": 1710642600, "contest_duration": 5400, "user_num": 4561, "question_slugs": ["existence-of-a-substring-in-a-string-and-its-reverse", "count-substrings-starting-and-ending-with-given-character", "minimum-deletions-to-make-string-k-special", "minimum-moves-to-pick-k-ones"]}, {"contest_title": "\u7b2c 390 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 390", "contest_title_slug": "weekly-contest-390", "contest_id": 1011, "contest_start_time": 1711247400, "contest_duration": 5400, "user_num": 4817, "question_slugs": ["maximum-length-substring-with-two-occurrences", "apply-operations-to-make-sum-of-array-greater-than-or-equal-to-k", "most-frequent-ids", "longest-common-suffix-queries"]}, {"contest_title": "\u7b2c 391 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 391", "contest_title_slug": "weekly-contest-391", "contest_id": 1014, "contest_start_time": 1711852200, "contest_duration": 5400, "user_num": 4180, "question_slugs": ["harshad-number", "water-bottles-ii", "count-alternating-subarrays", "minimize-manhattan-distances"]}, {"contest_title": "\u7b2c 392 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 392", "contest_title_slug": "weekly-contest-392", "contest_id": 1018, "contest_start_time": 1712457000, "contest_duration": 5400, "user_num": 3193, "question_slugs": ["longest-strictly-increasing-or-strictly-decreasing-subarray", "lexicographically-smallest-string-after-operations-with-constraint", "minimum-operations-to-make-median-of-array-equal-to-k", "minimum-cost-walk-in-weighted-graph"]}, {"contest_title": "\u7b2c 393 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 393", "contest_title_slug": "weekly-contest-393", "contest_id": 1020, "contest_start_time": 1713061800, "contest_duration": 5400, "user_num": 4218, "question_slugs": ["latest-time-you-can-obtain-after-replacing-characters", "maximum-prime-difference", "kth-smallest-amount-with-single-denomination-combination", "minimum-sum-of-values-by-dividing-array"]}, {"contest_title": "\u7b2c 394 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 394", "contest_title_slug": "weekly-contest-394", "contest_id": 1024, "contest_start_time": 1713666600, "contest_duration": 5400, "user_num": 3957, "question_slugs": ["count-the-number-of-special-characters-i", "count-the-number-of-special-characters-ii", "minimum-number-of-operations-to-satisfy-conditions", "find-edges-in-shortest-paths"]}, {"contest_title": "\u7b2c 395 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 395", "contest_title_slug": "weekly-contest-395", "contest_id": 1026, "contest_start_time": 1714271400, "contest_duration": 5400, "user_num": 2968, "question_slugs": ["find-the-integer-added-to-array-i", "find-the-integer-added-to-array-ii", "minimum-array-end", "find-the-median-of-the-uniqueness-array"]}, {"contest_title": "\u7b2c 396 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 396", "contest_title_slug": "weekly-contest-396", "contest_id": 1030, "contest_start_time": 1714876200, "contest_duration": 5400, "user_num": 2931, "question_slugs": ["valid-word", "minimum-number-of-operations-to-make-word-k-periodic", "minimum-length-of-anagram-concatenation", "minimum-cost-to-equalize-array"]}, {"contest_title": "\u7b2c 397 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 397", "contest_title_slug": "weekly-contest-397", "contest_id": 1032, "contest_start_time": 1715481000, "contest_duration": 5400, "user_num": 3365, "question_slugs": ["permutation-difference-between-two-strings", "taking-maximum-energy-from-the-mystic-dungeon", "maximum-difference-score-in-a-grid", "find-the-minimum-cost-array-permutation"]}, {"contest_title": "\u7b2c 398 \u573a\u5468\u8d5b", "contest_title_en": "Weekly Contest 398", "contest_title_slug": "weekly-contest-398", "contest_id": 1036, "contest_start_time": 1716085800, "contest_duration": 5400, "user_num": 3606, "question_slugs": ["special-array-i", "special-array-ii", "sum-of-digit-differences-of-all-pairs", "find-number-of-ways-to-reach-the-k-th-stair"]}, {"contest_title": "\u7b2c 1 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 1", "contest_title_slug": "biweekly-contest-1", "contest_id": 70, "contest_start_time": 1559399400, "contest_duration": 7200, "user_num": 197, "question_slugs": ["fixed-point", "index-pairs-of-a-string", "campus-bikes-ii", "digit-count-in-range"]}, {"contest_title": "\u7b2c 2 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 2", "contest_title_slug": "biweekly-contest-2", "contest_id": 73, "contest_start_time": 1560609000, "contest_duration": 5400, "user_num": 256, "question_slugs": ["sum-of-digits-in-the-minimum-number", "high-five", "brace-expansion", "confusing-number-ii"]}, {"contest_title": "\u7b2c 3 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 3", "contest_title_slug": "biweekly-contest-3", "contest_id": 85, "contest_start_time": 1561818600, "contest_duration": 5400, "user_num": 312, "question_slugs": ["two-sum-less-than-k", "find-k-length-substrings-with-no-repeated-characters", "the-earliest-moment-when-everyone-become-friends", "path-with-maximum-minimum-value"]}, {"contest_title": "\u7b2c 4 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 4", "contest_title_slug": "biweekly-contest-4", "contest_id": 88, "contest_start_time": 1563028200, "contest_duration": 5400, "user_num": 438, "question_slugs": ["number-of-days-in-a-month", "remove-vowels-from-a-string", "maximum-average-subtree", "divide-array-into-increasing-sequences"]}, {"contest_title": "\u7b2c 5 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 5", "contest_title_slug": "biweekly-contest-5", "contest_id": 91, "contest_start_time": 1564237800, "contest_duration": 5400, "user_num": 495, "question_slugs": ["largest-unique-number", "armstrong-number", "connecting-cities-with-minimum-cost", "parallel-courses"]}, {"contest_title": "\u7b2c 6 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 6", "contest_title_slug": "biweekly-contest-6", "contest_id": 95, "contest_start_time": 1565447400, "contest_duration": 5400, "user_num": 513, "question_slugs": ["check-if-a-number-is-majority-element-in-a-sorted-array", "minimum-swaps-to-group-all-1s-together", "analyze-user-website-visit-pattern", "string-transforms-into-another-string"]}, {"contest_title": "\u7b2c 7 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 7", "contest_title_slug": "biweekly-contest-7", "contest_id": 99, "contest_start_time": 1566657000, "contest_duration": 5400, "user_num": 561, "question_slugs": ["single-row-keyboard", "design-file-system", "minimum-cost-to-connect-sticks", "optimize-water-distribution-in-a-village"]}, {"contest_title": "\u7b2c 8 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 8", "contest_title_slug": "biweekly-contest-8", "contest_id": 103, "contest_start_time": 1567866600, "contest_duration": 5400, "user_num": 630, "question_slugs": ["count-substrings-with-only-one-distinct-letter", "before-and-after-puzzle", "shortest-distance-to-target-color", "maximum-number-of-ones"]}, {"contest_title": "\u7b2c 9 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 9", "contest_title_slug": "biweekly-contest-9", "contest_id": 108, "contest_start_time": 1569076200, "contest_duration": 5700, "user_num": 929, "question_slugs": ["how-many-apples-can-you-put-into-the-basket", "minimum-knight-moves", "find-smallest-common-element-in-all-rows", "minimum-time-to-build-blocks"]}, {"contest_title": "\u7b2c 10 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 10", "contest_title_slug": "biweekly-contest-10", "contest_id": 115, "contest_start_time": 1570285800, "contest_duration": 5400, "user_num": 738, "question_slugs": ["intersection-of-three-sorted-arrays", "two-sum-bsts", "stepping-numbers", "valid-palindrome-iii"]}, {"contest_title": "\u7b2c 11 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 11", "contest_title_slug": "biweekly-contest-11", "contest_id": 118, "contest_start_time": 1571495400, "contest_duration": 5400, "user_num": 913, "question_slugs": ["missing-number-in-arithmetic-progression", "meeting-scheduler", "toss-strange-coins", "divide-chocolate"]}, {"contest_title": "\u7b2c 12 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 12", "contest_title_slug": "biweekly-contest-12", "contest_id": 121, "contest_start_time": 1572705000, "contest_duration": 5400, "user_num": 911, "question_slugs": ["design-a-leaderboard", "array-transformation", "tree-diameter", "palindrome-removal"]}, {"contest_title": "\u7b2c 13 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 13", "contest_title_slug": "biweekly-contest-13", "contest_id": 124, "contest_start_time": 1573914600, "contest_duration": 5400, "user_num": 810, "question_slugs": ["encode-number", "smallest-common-region", "synonymous-sentences", "handshakes-that-dont-cross"]}, {"contest_title": "\u7b2c 14 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 14", "contest_title_slug": "biweekly-contest-14", "contest_id": 129, "contest_start_time": 1575124200, "contest_duration": 5400, "user_num": 871, "question_slugs": ["hexspeak", "remove-interval", "delete-tree-nodes", "number-of-ships-in-a-rectangle"]}, {"contest_title": "\u7b2c 15 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 15", "contest_title_slug": "biweekly-contest-15", "contest_id": 132, "contest_start_time": 1576333800, "contest_duration": 5400, "user_num": 797, "question_slugs": ["element-appearing-more-than-25-in-sorted-array", "remove-covered-intervals", "iterator-for-combination", "minimum-falling-path-sum-ii"]}, {"contest_title": "\u7b2c 16 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 16", "contest_title_slug": "biweekly-contest-16", "contest_id": 135, "contest_start_time": 1577543400, "contest_duration": 5400, "user_num": 822, "question_slugs": ["replace-elements-with-greatest-element-on-right-side", "sum-of-mutated-array-closest-to-target", "deepest-leaves-sum", "number-of-paths-with-max-score"]}, {"contest_title": "\u7b2c 17 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 17", "contest_title_slug": "biweekly-contest-17", "contest_id": 138, "contest_start_time": 1578753000, "contest_duration": 5400, "user_num": 897, "question_slugs": ["decompress-run-length-encoded-list", "matrix-block-sum", "sum-of-nodes-with-even-valued-grandparent", "distinct-echo-substrings"]}, {"contest_title": "\u7b2c 18 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 18", "contest_title_slug": "biweekly-contest-18", "contest_id": 143, "contest_start_time": 1579962600, "contest_duration": 5400, "user_num": 587, "question_slugs": ["rank-transform-of-an-array", "break-a-palindrome", "sort-the-matrix-diagonally", "reverse-subarray-to-maximize-array-value"]}, {"contest_title": "\u7b2c 19 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 19", "contest_title_slug": "biweekly-contest-19", "contest_id": 146, "contest_start_time": 1581172200, "contest_duration": 5400, "user_num": 1120, "question_slugs": ["number-of-steps-to-reduce-a-number-to-zero", "number-of-sub-arrays-of-size-k-and-average-greater-than-or-equal-to-threshold", "angle-between-hands-of-a-clock", "jump-game-iv"]}, {"contest_title": "\u7b2c 20 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 20", "contest_title_slug": "biweekly-contest-20", "contest_id": 149, "contest_start_time": 1582381800, "contest_duration": 5400, "user_num": 1541, "question_slugs": ["sort-integers-by-the-number-of-1-bits", "apply-discount-every-n-orders", "number-of-substrings-containing-all-three-characters", "count-all-valid-pickup-and-delivery-options"]}, {"contest_title": "\u7b2c 21 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 21", "contest_title_slug": "biweekly-contest-21", "contest_id": 157, "contest_start_time": 1583591400, "contest_duration": 5400, "user_num": 1913, "question_slugs": ["increasing-decreasing-string", "find-the-longest-substring-containing-vowels-in-even-counts", "longest-zigzag-path-in-a-binary-tree", "maximum-sum-bst-in-binary-tree"]}, {"contest_title": "\u7b2c 22 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 22", "contest_title_slug": "biweekly-contest-22", "contest_id": 163, "contest_start_time": 1584801000, "contest_duration": 5400, "user_num": 2042, "question_slugs": ["find-the-distance-value-between-two-arrays", "cinema-seat-allocation", "sort-integers-by-the-power-value", "pizza-with-3n-slices"]}, {"contest_title": "\u7b2c 23 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 23", "contest_title_slug": "biweekly-contest-23", "contest_id": 169, "contest_start_time": 1586010600, "contest_duration": 5400, "user_num": 2045, "question_slugs": ["count-largest-group", "construct-k-palindrome-strings", "circle-and-rectangle-overlapping", "reducing-dishes"]}, {"contest_title": "\u7b2c 24 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 24", "contest_title_slug": "biweekly-contest-24", "contest_id": 178, "contest_start_time": 1587220200, "contest_duration": 5400, "user_num": 1898, "question_slugs": ["minimum-value-to-get-positive-step-by-step-sum", "find-the-minimum-number-of-fibonacci-numbers-whose-sum-is-k", "the-k-th-lexicographical-string-of-all-happy-strings-of-length-n", "restore-the-array"]}, {"contest_title": "\u7b2c 25 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 25", "contest_title_slug": "biweekly-contest-25", "contest_id": 192, "contest_start_time": 1588429800, "contest_duration": 5400, "user_num": 1832, "question_slugs": ["kids-with-the-greatest-number-of-candies", "max-difference-you-can-get-from-changing-an-integer", "check-if-a-string-can-break-another-string", "number-of-ways-to-wear-different-hats-to-each-other"]}, {"contest_title": "\u7b2c 26 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 26", "contest_title_slug": "biweekly-contest-26", "contest_id": 198, "contest_start_time": 1589639400, "contest_duration": 5400, "user_num": 1971, "question_slugs": ["consecutive-characters", "simplified-fractions", "count-good-nodes-in-binary-tree", "form-largest-integer-with-digits-that-add-up-to-target"]}, {"contest_title": "\u7b2c 27 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 27", "contest_title_slug": "biweekly-contest-27", "contest_id": 204, "contest_start_time": 1590849000, "contest_duration": 5400, "user_num": 1966, "question_slugs": ["make-two-arrays-equal-by-reversing-subarrays", "check-if-a-string-contains-all-binary-codes-of-size-k", "course-schedule-iv", "cherry-pickup-ii"]}, {"contest_title": "\u7b2c 28 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 28", "contest_title_slug": "biweekly-contest-28", "contest_id": 210, "contest_start_time": 1592058600, "contest_duration": 5400, "user_num": 2144, "question_slugs": ["final-prices-with-a-special-discount-in-a-shop", "subrectangle-queries", "find-two-non-overlapping-sub-arrays-each-with-target-sum", "allocate-mailboxes"]}, {"contest_title": "\u7b2c 29 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 29", "contest_title_slug": "biweekly-contest-29", "contest_id": 216, "contest_start_time": 1593268200, "contest_duration": 5400, "user_num": 2260, "question_slugs": ["average-salary-excluding-the-minimum-and-maximum-salary", "the-kth-factor-of-n", "longest-subarray-of-1s-after-deleting-one-element", "parallel-courses-ii"]}, {"contest_title": "\u7b2c 30 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 30", "contest_title_slug": "biweekly-contest-30", "contest_id": 222, "contest_start_time": 1594477800, "contest_duration": 5400, "user_num": 2545, "question_slugs": ["reformat-date", "range-sum-of-sorted-subarray-sums", "minimum-difference-between-largest-and-smallest-value-in-three-moves", "stone-game-iv"]}, {"contest_title": "\u7b2c 31 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 31", "contest_title_slug": "biweekly-contest-31", "contest_id": 232, "contest_start_time": 1595687400, "contest_duration": 5400, "user_num": 2767, "question_slugs": ["count-odd-numbers-in-an-interval-range", "number-of-sub-arrays-with-odd-sum", "number-of-good-ways-to-split-a-string", "minimum-number-of-increments-on-subarrays-to-form-a-target-array"]}, {"contest_title": "\u7b2c 32 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 32", "contest_title_slug": "biweekly-contest-32", "contest_id": 237, "contest_start_time": 1596897000, "contest_duration": 5400, "user_num": 2957, "question_slugs": ["kth-missing-positive-number", "can-convert-string-in-k-moves", "minimum-insertions-to-balance-a-parentheses-string", "find-longest-awesome-substring"]}, {"contest_title": "\u7b2c 33 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 33", "contest_title_slug": "biweekly-contest-33", "contest_id": 241, "contest_start_time": 1598106600, "contest_duration": 5400, "user_num": 3304, "question_slugs": ["thousand-separator", "minimum-number-of-vertices-to-reach-all-nodes", "minimum-numbers-of-function-calls-to-make-target-array", "detect-cycles-in-2d-grid"]}, {"contest_title": "\u7b2c 34 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 34", "contest_title_slug": "biweekly-contest-34", "contest_id": 256, "contest_start_time": 1599316200, "contest_duration": 5400, "user_num": 2842, "question_slugs": ["matrix-diagonal-sum", "number-of-ways-to-split-a-string", "shortest-subarray-to-be-removed-to-make-array-sorted", "count-all-possible-routes"]}, {"contest_title": "\u7b2c 35 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 35", "contest_title_slug": "biweekly-contest-35", "contest_id": 266, "contest_start_time": 1600525800, "contest_duration": 5400, "user_num": 2839, "question_slugs": ["sum-of-all-odd-length-subarrays", "maximum-sum-obtained-of-any-permutation", "make-sum-divisible-by-p", "strange-printer-ii"]}, {"contest_title": "\u7b2c 36 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 36", "contest_title_slug": "biweekly-contest-36", "contest_id": 288, "contest_start_time": 1601735400, "contest_duration": 5400, "user_num": 2204, "question_slugs": ["design-parking-system", "alert-using-same-key-card-three-or-more-times-in-a-one-hour-period", "find-valid-matrix-given-row-and-column-sums", "find-servers-that-handled-most-number-of-requests"]}, {"contest_title": "\u7b2c 37 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 37", "contest_title_slug": "biweekly-contest-37", "contest_id": 294, "contest_start_time": 1602945000, "contest_duration": 5400, "user_num": 2104, "question_slugs": ["mean-of-array-after-removing-some-elements", "coordinate-with-maximum-network-quality", "number-of-sets-of-k-non-overlapping-line-segments", "fancy-sequence"]}, {"contest_title": "\u7b2c 38 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 38", "contest_title_slug": "biweekly-contest-38", "contest_id": 300, "contest_start_time": 1604154600, "contest_duration": 5400, "user_num": 2004, "question_slugs": ["sort-array-by-increasing-frequency", "widest-vertical-area-between-two-points-containing-no-points", "count-substrings-that-differ-by-one-character", "number-of-ways-to-form-a-target-string-given-a-dictionary"]}, {"contest_title": "\u7b2c 39 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 39", "contest_title_slug": "biweekly-contest-39", "contest_id": 306, "contest_start_time": 1605364200, "contest_duration": 5400, "user_num": 2069, "question_slugs": ["defuse-the-bomb", "minimum-deletions-to-make-string-balanced", "minimum-jumps-to-reach-home", "distribute-repeating-integers"]}, {"contest_title": "\u7b2c 40 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 40", "contest_title_slug": "biweekly-contest-40", "contest_id": 312, "contest_start_time": 1606573800, "contest_duration": 5400, "user_num": 1891, "question_slugs": ["maximum-repeating-substring", "merge-in-between-linked-lists", "design-front-middle-back-queue", "minimum-number-of-removals-to-make-mountain-array"]}, {"contest_title": "\u7b2c 41 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 41", "contest_title_slug": "biweekly-contest-41", "contest_id": 318, "contest_start_time": 1607783400, "contest_duration": 5400, "user_num": 1660, "question_slugs": ["count-the-number-of-consistent-strings", "sum-of-absolute-differences-in-a-sorted-array", "stone-game-vi", "delivering-boxes-from-storage-to-ports"]}, {"contest_title": "\u7b2c 42 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 42", "contest_title_slug": "biweekly-contest-42", "contest_id": 325, "contest_start_time": 1608993000, "contest_duration": 5400, "user_num": 1578, "question_slugs": ["number-of-students-unable-to-eat-lunch", "average-waiting-time", "maximum-binary-string-after-change", "minimum-adjacent-swaps-for-k-consecutive-ones"]}, {"contest_title": "\u7b2c 43 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 43", "contest_title_slug": "biweekly-contest-43", "contest_id": 331, "contest_start_time": 1610202600, "contest_duration": 5400, "user_num": 1631, "question_slugs": ["calculate-money-in-leetcode-bank", "maximum-score-from-removing-substrings", "construct-the-lexicographically-largest-valid-sequence", "number-of-ways-to-reconstruct-a-tree"]}, {"contest_title": "\u7b2c 44 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 44", "contest_title_slug": "biweekly-contest-44", "contest_id": 337, "contest_start_time": 1611412200, "contest_duration": 5400, "user_num": 1826, "question_slugs": ["find-the-highest-altitude", "minimum-number-of-people-to-teach", "decode-xored-permutation", "count-ways-to-make-array-with-product"]}, {"contest_title": "\u7b2c 45 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 45", "contest_title_slug": "biweekly-contest-45", "contest_id": 343, "contest_start_time": 1612621800, "contest_duration": 5400, "user_num": 1676, "question_slugs": ["sum-of-unique-elements", "maximum-absolute-sum-of-any-subarray", "minimum-length-of-string-after-deleting-similar-ends", "maximum-number-of-events-that-can-be-attended-ii"]}, {"contest_title": "\u7b2c 46 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 46", "contest_title_slug": "biweekly-contest-46", "contest_id": 349, "contest_start_time": 1613831400, "contest_duration": 5400, "user_num": 1647, "question_slugs": ["longest-nice-substring", "form-array-by-concatenating-subarrays-of-another-array", "map-of-highest-peak", "tree-of-coprimes"]}, {"contest_title": "\u7b2c 47 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 47", "contest_title_slug": "biweekly-contest-47", "contest_id": 355, "contest_start_time": 1615041000, "contest_duration": 5400, "user_num": 3085, "question_slugs": ["find-nearest-point-that-has-the-same-x-or-y-coordinate", "check-if-number-is-a-sum-of-powers-of-three", "sum-of-beauty-of-all-substrings", "count-pairs-of-nodes"]}, {"contest_title": "\u7b2c 48 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 48", "contest_title_slug": "biweekly-contest-48", "contest_id": 362, "contest_start_time": 1616250600, "contest_duration": 5400, "user_num": 2853, "question_slugs": ["second-largest-digit-in-a-string", "design-authentication-manager", "maximum-number-of-consecutive-values-you-can-make", "maximize-score-after-n-operations"]}, {"contest_title": "\u7b2c 49 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 49", "contest_title_slug": "biweekly-contest-49", "contest_id": 374, "contest_start_time": 1617460200, "contest_duration": 5400, "user_num": 3193, "question_slugs": ["determine-color-of-a-chessboard-square", "sentence-similarity-iii", "count-nice-pairs-in-an-array", "maximum-number-of-groups-getting-fresh-donuts"]}, {"contest_title": "\u7b2c 50 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 50", "contest_title_slug": "biweekly-contest-50", "contest_id": 390, "contest_start_time": 1618669800, "contest_duration": 5400, "user_num": 3608, "question_slugs": ["minimum-operations-to-make-the-array-increasing", "queries-on-number-of-points-inside-a-circle", "maximum-xor-for-each-query", "minimum-number-of-operations-to-make-string-sorted"]}, {"contest_title": "\u7b2c 51 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 51", "contest_title_slug": "biweekly-contest-51", "contest_id": 396, "contest_start_time": 1619879400, "contest_duration": 5400, "user_num": 2675, "question_slugs": ["replace-all-digits-with-characters", "seat-reservation-manager", "maximum-element-after-decreasing-and-rearranging", "closest-room"]}, {"contest_title": "\u7b2c 52 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 52", "contest_title_slug": "biweekly-contest-52", "contest_id": 402, "contest_start_time": 1621089000, "contest_duration": 5400, "user_num": 2930, "question_slugs": ["sorting-the-sentence", "incremental-memory-leak", "rotating-the-box", "sum-of-floored-pairs"]}, {"contest_title": "\u7b2c 53 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 53", "contest_title_slug": "biweekly-contest-53", "contest_id": 408, "contest_start_time": 1622298600, "contest_duration": 5400, "user_num": 3069, "question_slugs": ["substrings-of-size-three-with-distinct-characters", "minimize-maximum-pair-sum-in-array", "get-biggest-three-rhombus-sums-in-a-grid", "minimum-xor-sum-of-two-arrays"]}, {"contest_title": "\u7b2c 54 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 54", "contest_title_slug": "biweekly-contest-54", "contest_id": 414, "contest_start_time": 1623508200, "contest_duration": 5400, "user_num": 2479, "question_slugs": ["check-if-all-the-integers-in-a-range-are-covered", "find-the-student-that-will-replace-the-chalk", "largest-magic-square", "minimum-cost-to-change-the-final-value-of-expression"]}, {"contest_title": "\u7b2c 55 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 55", "contest_title_slug": "biweekly-contest-55", "contest_id": 421, "contest_start_time": 1624717800, "contest_duration": 5400, "user_num": 3277, "question_slugs": ["remove-one-element-to-make-the-array-strictly-increasing", "remove-all-occurrences-of-a-substring", "maximum-alternating-subsequence-sum", "design-movie-rental-system"]}, {"contest_title": "\u7b2c 56 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 56", "contest_title_slug": "biweekly-contest-56", "contest_id": 429, "contest_start_time": 1625927400, "contest_duration": 5400, "user_num": 2760, "question_slugs": ["count-square-sum-triples", "nearest-exit-from-entrance-in-maze", "sum-game", "minimum-cost-to-reach-destination-in-time"]}, {"contest_title": "\u7b2c 57 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 57", "contest_title_slug": "biweekly-contest-57", "contest_id": 435, "contest_start_time": 1627137000, "contest_duration": 5400, "user_num": 2933, "question_slugs": ["check-if-all-characters-have-equal-number-of-occurrences", "the-number-of-the-smallest-unoccupied-chair", "describe-the-painting", "number-of-visible-people-in-a-queue"]}, {"contest_title": "\u7b2c 58 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 58", "contest_title_slug": "biweekly-contest-58", "contest_id": 441, "contest_start_time": 1628346600, "contest_duration": 5400, "user_num": 2889, "question_slugs": ["delete-characters-to-make-fancy-string", "check-if-move-is-legal", "minimum-total-space-wasted-with-k-resizing-operations", "maximum-product-of-the-length-of-two-palindromic-substrings"]}, {"contest_title": "\u7b2c 59 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 59", "contest_title_slug": "biweekly-contest-59", "contest_id": 448, "contest_start_time": 1629556200, "contest_duration": 5400, "user_num": 3030, "question_slugs": ["minimum-time-to-type-word-using-special-typewriter", "maximum-matrix-sum", "number-of-ways-to-arrive-at-destination", "number-of-ways-to-separate-numbers"]}, {"contest_title": "\u7b2c 60 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 60", "contest_title_slug": "biweekly-contest-60", "contest_id": 461, "contest_start_time": 1630765800, "contest_duration": 5400, "user_num": 2848, "question_slugs": ["find-the-middle-index-in-array", "find-all-groups-of-farmland", "operations-on-tree", "the-number-of-good-subsets"]}, {"contest_title": "\u7b2c 61 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 61", "contest_title_slug": "biweekly-contest-61", "contest_id": 467, "contest_start_time": 1631975400, "contest_duration": 5400, "user_num": 2534, "question_slugs": ["count-number-of-pairs-with-absolute-difference-k", "find-original-array-from-doubled-array", "maximum-earnings-from-taxi", "minimum-number-of-operations-to-make-array-continuous"]}, {"contest_title": "\u7b2c 62 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 62", "contest_title_slug": "biweekly-contest-62", "contest_id": 477, "contest_start_time": 1633185000, "contest_duration": 5400, "user_num": 2619, "question_slugs": ["convert-1d-array-into-2d-array", "number-of-pairs-of-strings-with-concatenation-equal-to-target", "maximize-the-confusion-of-an-exam", "maximum-number-of-ways-to-partition-an-array"]}, {"contest_title": "\u7b2c 63 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 63", "contest_title_slug": "biweekly-contest-63", "contest_id": 484, "contest_start_time": 1634394600, "contest_duration": 5400, "user_num": 2828, "question_slugs": ["minimum-number-of-moves-to-seat-everyone", "remove-colored-pieces-if-both-neighbors-are-the-same-color", "the-time-when-the-network-becomes-idle", "kth-smallest-product-of-two-sorted-arrays"]}, {"contest_title": "\u7b2c 64 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 64", "contest_title_slug": "biweekly-contest-64", "contest_id": 490, "contest_start_time": 1635604200, "contest_duration": 5400, "user_num": 2838, "question_slugs": ["kth-distinct-string-in-an-array", "two-best-non-overlapping-events", "plates-between-candles", "number-of-valid-move-combinations-on-chessboard"]}, {"contest_title": "\u7b2c 65 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 65", "contest_title_slug": "biweekly-contest-65", "contest_id": 497, "contest_start_time": 1636813800, "contest_duration": 5400, "user_num": 2676, "question_slugs": ["check-whether-two-strings-are-almost-equivalent", "walking-robot-simulation-ii", "most-beautiful-item-for-each-query", "maximum-number-of-tasks-you-can-assign"]}, {"contest_title": "\u7b2c 66 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 66", "contest_title_slug": "biweekly-contest-66", "contest_id": 503, "contest_start_time": 1638023400, "contest_duration": 5400, "user_num": 2803, "question_slugs": ["count-common-words-with-one-occurrence", "minimum-number-of-food-buckets-to-feed-the-hamsters", "minimum-cost-homecoming-of-a-robot-in-a-grid", "count-fertile-pyramids-in-a-land"]}, {"contest_title": "\u7b2c 67 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 67", "contest_title_slug": "biweekly-contest-67", "contest_id": 509, "contest_start_time": 1639233000, "contest_duration": 5400, "user_num": 2923, "question_slugs": ["find-subsequence-of-length-k-with-the-largest-sum", "find-good-days-to-rob-the-bank", "detonate-the-maximum-bombs", "sequentially-ordinal-rank-tracker"]}, {"contest_title": "\u7b2c 68 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 68", "contest_title_slug": "biweekly-contest-68", "contest_id": 515, "contest_start_time": 1640442600, "contest_duration": 5400, "user_num": 2854, "question_slugs": ["maximum-number-of-words-found-in-sentences", "find-all-possible-recipes-from-given-supplies", "check-if-a-parentheses-string-can-be-valid", "abbreviating-the-product-of-a-range"]}, {"contest_title": "\u7b2c 69 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 69", "contest_title_slug": "biweekly-contest-69", "contest_id": 521, "contest_start_time": 1641652200, "contest_duration": 5400, "user_num": 3360, "question_slugs": ["capitalize-the-title", "maximum-twin-sum-of-a-linked-list", "longest-palindrome-by-concatenating-two-letter-words", "stamping-the-grid"]}, {"contest_title": "\u7b2c 70 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 70", "contest_title_slug": "biweekly-contest-70", "contest_id": 527, "contest_start_time": 1642861800, "contest_duration": 5400, "user_num": 3640, "question_slugs": ["minimum-cost-of-buying-candies-with-discount", "count-the-hidden-sequences", "k-highest-ranked-items-within-a-price-range", "number-of-ways-to-divide-a-long-corridor"]}, {"contest_title": "\u7b2c 71 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 71", "contest_title_slug": "biweekly-contest-71", "contest_id": 533, "contest_start_time": 1644071400, "contest_duration": 5400, "user_num": 3028, "question_slugs": ["minimum-sum-of-four-digit-number-after-splitting-digits", "partition-array-according-to-given-pivot", "minimum-cost-to-set-cooking-time", "minimum-difference-in-sums-after-removal-of-elements"]}, {"contest_title": "\u7b2c 72 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 72", "contest_title_slug": "biweekly-contest-72", "contest_id": 539, "contest_start_time": 1645281000, "contest_duration": 5400, "user_num": 4400, "question_slugs": ["count-equal-and-divisible-pairs-in-an-array", "find-three-consecutive-integers-that-sum-to-a-given-number", "maximum-split-of-positive-even-integers", "count-good-triplets-in-an-array"]}, {"contest_title": "\u7b2c 73 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 73", "contest_title_slug": "biweekly-contest-73", "contest_id": 545, "contest_start_time": 1646490600, "contest_duration": 5400, "user_num": 5132, "question_slugs": ["most-frequent-number-following-key-in-an-array", "sort-the-jumbled-numbers", "all-ancestors-of-a-node-in-a-directed-acyclic-graph", "minimum-number-of-moves-to-make-palindrome"]}, {"contest_title": "\u7b2c 74 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 74", "contest_title_slug": "biweekly-contest-74", "contest_id": 554, "contest_start_time": 1647700200, "contest_duration": 5400, "user_num": 5442, "question_slugs": ["divide-array-into-equal-pairs", "maximize-number-of-subsequences-in-a-string", "minimum-operations-to-halve-array-sum", "minimum-white-tiles-after-covering-with-carpets"]}, {"contest_title": "\u7b2c 75 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 75", "contest_title_slug": "biweekly-contest-75", "contest_id": 563, "contest_start_time": 1648909800, "contest_duration": 5400, "user_num": 4335, "question_slugs": ["minimum-bit-flips-to-convert-number", "find-triangular-sum-of-an-array", "number-of-ways-to-select-buildings", "sum-of-scores-of-built-strings"]}, {"contest_title": "\u7b2c 76 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 76", "contest_title_slug": "biweekly-contest-76", "contest_id": 572, "contest_start_time": 1650119400, "contest_duration": 5400, "user_num": 4477, "question_slugs": ["find-closest-number-to-zero", "number-of-ways-to-buy-pens-and-pencils", "design-an-atm-machine", "maximum-score-of-a-node-sequence"]}, {"contest_title": "\u7b2c 77 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 77", "contest_title_slug": "biweekly-contest-77", "contest_id": 581, "contest_start_time": 1651329000, "contest_duration": 5400, "user_num": 4211, "question_slugs": ["count-prefixes-of-a-given-string", "minimum-average-difference", "count-unguarded-cells-in-the-grid", "escape-the-spreading-fire"]}, {"contest_title": "\u7b2c 78 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 78", "contest_title_slug": "biweekly-contest-78", "contest_id": 590, "contest_start_time": 1652538600, "contest_duration": 5400, "user_num": 4347, "question_slugs": ["find-the-k-beauty-of-a-number", "number-of-ways-to-split-array", "maximum-white-tiles-covered-by-a-carpet", "substring-with-largest-variance"]}, {"contest_title": "\u7b2c 79 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 79", "contest_title_slug": "biweekly-contest-79", "contest_id": 598, "contest_start_time": 1653748200, "contest_duration": 5400, "user_num": 4250, "question_slugs": ["check-if-number-has-equal-digit-count-and-digit-value", "sender-with-largest-word-count", "maximum-total-importance-of-roads", "booking-concert-tickets-in-groups"]}, {"contest_title": "\u7b2c 80 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 80", "contest_title_slug": "biweekly-contest-80", "contest_id": 608, "contest_start_time": 1654957800, "contest_duration": 5400, "user_num": 3949, "question_slugs": ["strong-password-checker-ii", "successful-pairs-of-spells-and-potions", "match-substring-after-replacement", "count-subarrays-with-score-less-than-k"]}, {"contest_title": "\u7b2c 81 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 81", "contest_title_slug": "biweekly-contest-81", "contest_id": 614, "contest_start_time": 1656167400, "contest_duration": 5400, "user_num": 3847, "question_slugs": ["count-asterisks", "count-unreachable-pairs-of-nodes-in-an-undirected-graph", "maximum-xor-after-operations", "number-of-distinct-roll-sequences"]}, {"contest_title": "\u7b2c 82 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 82", "contest_title_slug": "biweekly-contest-82", "contest_id": 646, "contest_start_time": 1657377000, "contest_duration": 5400, "user_num": 4144, "question_slugs": ["evaluate-boolean-binary-tree", "the-latest-time-to-catch-a-bus", "minimum-sum-of-squared-difference", "subarray-with-elements-greater-than-varying-threshold"]}, {"contest_title": "\u7b2c 83 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 83", "contest_title_slug": "biweekly-contest-83", "contest_id": 652, "contest_start_time": 1658586600, "contest_duration": 5400, "user_num": 4437, "question_slugs": ["best-poker-hand", "number-of-zero-filled-subarrays", "design-a-number-container-system", "shortest-impossible-sequence-of-rolls"]}, {"contest_title": "\u7b2c 84 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 84", "contest_title_slug": "biweekly-contest-84", "contest_id": 658, "contest_start_time": 1659796200, "contest_duration": 5400, "user_num": 4574, "question_slugs": ["merge-similar-items", "count-number-of-bad-pairs", "task-scheduler-ii", "minimum-replacements-to-sort-the-array"]}, {"contest_title": "\u7b2c 85 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 85", "contest_title_slug": "biweekly-contest-85", "contest_id": 668, "contest_start_time": 1661005800, "contest_duration": 5400, "user_num": 4193, "question_slugs": ["minimum-recolors-to-get-k-consecutive-black-blocks", "time-needed-to-rearrange-a-binary-string", "shifting-letters-ii", "maximum-segment-sum-after-removals"]}, {"contest_title": "\u7b2c 86 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 86", "contest_title_slug": "biweekly-contest-86", "contest_id": 688, "contest_start_time": 1662215400, "contest_duration": 5400, "user_num": 4401, "question_slugs": ["find-subarrays-with-equal-sum", "strictly-palindromic-number", "maximum-rows-covered-by-columns", "maximum-number-of-robots-within-budget"]}, {"contest_title": "\u7b2c 87 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 87", "contest_title_slug": "biweekly-contest-87", "contest_id": 703, "contest_start_time": 1663425000, "contest_duration": 5400, "user_num": 4005, "question_slugs": ["count-days-spent-together", "maximum-matching-of-players-with-trainers", "smallest-subarrays-with-maximum-bitwise-or", "minimum-money-required-before-transactions"]}, {"contest_title": "\u7b2c 88 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 88", "contest_title_slug": "biweekly-contest-88", "contest_id": 745, "contest_start_time": 1664634600, "contest_duration": 5400, "user_num": 3905, "question_slugs": ["remove-letter-to-equalize-frequency", "longest-uploaded-prefix", "bitwise-xor-of-all-pairings", "number-of-pairs-satisfying-inequality"]}, {"contest_title": "\u7b2c 89 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 89", "contest_title_slug": "biweekly-contest-89", "contest_id": 755, "contest_start_time": 1665844200, "contest_duration": 5400, "user_num": 3984, "question_slugs": ["number-of-valid-clock-times", "range-product-queries-of-powers", "minimize-maximum-of-array", "create-components-with-same-value"]}, {"contest_title": "\u7b2c 90 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 90", "contest_title_slug": "biweekly-contest-90", "contest_id": 763, "contest_start_time": 1667053800, "contest_duration": 5400, "user_num": 3624, "question_slugs": ["odd-string-difference", "words-within-two-edits-of-dictionary", "destroy-sequential-targets", "next-greater-element-iv"]}, {"contest_title": "\u7b2c 91 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 91", "contest_title_slug": "biweekly-contest-91", "contest_id": 770, "contest_start_time": 1668263400, "contest_duration": 5400, "user_num": 3535, "question_slugs": ["number-of-distinct-averages", "count-ways-to-build-good-strings", "most-profitable-path-in-a-tree", "split-message-based-on-limit"]}, {"contest_title": "\u7b2c 92 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 92", "contest_title_slug": "biweekly-contest-92", "contest_id": 776, "contest_start_time": 1669473000, "contest_duration": 5400, "user_num": 3055, "question_slugs": ["minimum-cuts-to-divide-a-circle", "difference-between-ones-and-zeros-in-row-and-column", "minimum-penalty-for-a-shop", "count-palindromic-subsequences"]}, {"contest_title": "\u7b2c 93 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 93", "contest_title_slug": "biweekly-contest-93", "contest_id": 782, "contest_start_time": 1670682600, "contest_duration": 5400, "user_num": 2929, "question_slugs": ["maximum-value-of-a-string-in-an-array", "maximum-star-sum-of-a-graph", "frog-jump-ii", "minimum-total-cost-to-make-arrays-unequal"]}, {"contest_title": "\u7b2c 94 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 94", "contest_title_slug": "biweekly-contest-94", "contest_id": 789, "contest_start_time": 1671892200, "contest_duration": 5400, "user_num": 2298, "question_slugs": ["maximum-enemy-forts-that-can-be-captured", "reward-top-k-students", "minimize-the-maximum-of-two-arrays", "count-anagrams"]}, {"contest_title": "\u7b2c 95 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 95", "contest_title_slug": "biweekly-contest-95", "contest_id": 798, "contest_start_time": 1673101800, "contest_duration": 5400, "user_num": 2880, "question_slugs": ["categorize-box-according-to-criteria", "find-consecutive-integers-from-a-data-stream", "find-xor-beauty-of-array", "maximize-the-minimum-powered-city"]}, {"contest_title": "\u7b2c 96 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 96", "contest_title_slug": "biweekly-contest-96", "contest_id": 804, "contest_start_time": 1674311400, "contest_duration": 5400, "user_num": 2103, "question_slugs": ["minimum-common-value", "minimum-operations-to-make-array-equal-ii", "maximum-subsequence-score", "check-if-point-is-reachable"]}, {"contest_title": "\u7b2c 97 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 97", "contest_title_slug": "biweekly-contest-97", "contest_id": 810, "contest_start_time": 1675521000, "contest_duration": 5400, "user_num": 2631, "question_slugs": ["separate-the-digits-in-an-array", "maximum-number-of-integers-to-choose-from-a-range-i", "maximize-win-from-two-segments", "disconnect-path-in-a-binary-matrix-by-at-most-one-flip"]}, {"contest_title": "\u7b2c 98 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 98", "contest_title_slug": "biweekly-contest-98", "contest_id": 816, "contest_start_time": 1676730600, "contest_duration": 5400, "user_num": 3250, "question_slugs": ["maximum-difference-by-remapping-a-digit", "minimum-score-by-changing-two-elements", "minimum-impossible-or", "handling-sum-queries-after-update"]}, {"contest_title": "\u7b2c 99 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 99", "contest_title_slug": "biweekly-contest-99", "contest_id": 822, "contest_start_time": 1677940200, "contest_duration": 5400, "user_num": 3467, "question_slugs": ["split-with-minimum-sum", "count-total-number-of-colored-cells", "count-ways-to-group-overlapping-ranges", "count-number-of-possible-root-nodes"]}, {"contest_title": "\u7b2c 100 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 100", "contest_title_slug": "biweekly-contest-100", "contest_id": 832, "contest_start_time": 1679149800, "contest_duration": 5400, "user_num": 3639, "question_slugs": ["distribute-money-to-maximum-children", "maximize-greatness-of-an-array", "find-score-of-an-array-after-marking-all-elements", "minimum-time-to-repair-cars"]}, {"contest_title": "\u7b2c 101 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 101", "contest_title_slug": "biweekly-contest-101", "contest_id": 842, "contest_start_time": 1680359400, "contest_duration": 5400, "user_num": 3353, "question_slugs": ["form-smallest-number-from-two-digit-arrays", "find-the-substring-with-maximum-cost", "make-k-subarray-sums-equal", "shortest-cycle-in-a-graph"]}, {"contest_title": "\u7b2c 102 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 102", "contest_title_slug": "biweekly-contest-102", "contest_id": 853, "contest_start_time": 1681569000, "contest_duration": 5400, "user_num": 3058, "question_slugs": ["find-the-width-of-columns-of-a-grid", "find-the-score-of-all-prefixes-of-an-array", "cousins-in-binary-tree-ii", "design-graph-with-shortest-path-calculator"]}, {"contest_title": "\u7b2c 103 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 103", "contest_title_slug": "biweekly-contest-103", "contest_id": 859, "contest_start_time": 1682778600, "contest_duration": 5400, "user_num": 2299, "question_slugs": ["maximum-sum-with-exactly-k-elements", "find-the-prefix-common-array-of-two-arrays", "maximum-number-of-fish-in-a-grid", "make-array-empty"]}, {"contest_title": "\u7b2c 104 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 104", "contest_title_slug": "biweekly-contest-104", "contest_id": 866, "contest_start_time": 1683988200, "contest_duration": 5400, "user_num": 2519, "question_slugs": ["number-of-senior-citizens", "sum-in-a-matrix", "maximum-or", "power-of-heroes"]}, {"contest_title": "\u7b2c 105 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 105", "contest_title_slug": "biweekly-contest-105", "contest_id": 873, "contest_start_time": 1685197800, "contest_duration": 5400, "user_num": 2604, "question_slugs": ["buy-two-chocolates", "extra-characters-in-a-string", "maximum-strength-of-a-group", "greatest-common-divisor-traversal"]}, {"contest_title": "\u7b2c 106 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 106", "contest_title_slug": "biweekly-contest-106", "contest_id": 879, "contest_start_time": 1686407400, "contest_duration": 5400, "user_num": 2346, "question_slugs": ["check-if-the-number-is-fascinating", "find-the-longest-semi-repetitive-substring", "movement-of-robots", "find-a-good-subset-of-the-matrix"]}, {"contest_title": "\u7b2c 107 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 107", "contest_title_slug": "biweekly-contest-107", "contest_id": 885, "contest_start_time": 1687617000, "contest_duration": 5400, "user_num": 1870, "question_slugs": ["find-maximum-number-of-string-pairs", "construct-the-longest-new-string", "decremental-string-concatenation", "count-zero-request-servers"]}, {"contest_title": "\u7b2c 108 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 108", "contest_title_slug": "biweekly-contest-108", "contest_id": 891, "contest_start_time": 1688826600, "contest_duration": 5400, "user_num": 2349, "question_slugs": ["longest-alternating-subarray", "relocate-marbles", "partition-string-into-minimum-beautiful-substrings", "number-of-black-blocks"]}, {"contest_title": "\u7b2c 109 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 109", "contest_title_slug": "biweekly-contest-109", "contest_id": 897, "contest_start_time": 1690036200, "contest_duration": 5400, "user_num": 2461, "question_slugs": ["check-if-array-is-good", "sort-vowels-in-a-string", "visit-array-positions-to-maximize-score", "ways-to-express-an-integer-as-sum-of-powers"]}, {"contest_title": "\u7b2c 110 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 110", "contest_title_slug": "biweekly-contest-110", "contest_id": 903, "contest_start_time": 1691245800, "contest_duration": 5400, "user_num": 2546, "question_slugs": ["account-balance-after-rounded-purchase", "insert-greatest-common-divisors-in-linked-list", "minimum-seconds-to-equalize-a-circular-array", "minimum-time-to-make-array-sum-at-most-x"]}, {"contest_title": "\u7b2c 111 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 111", "contest_title_slug": "biweekly-contest-111", "contest_id": 909, "contest_start_time": 1692455400, "contest_duration": 5400, "user_num": 2787, "question_slugs": ["count-pairs-whose-sum-is-less-than-target", "make-string-a-subsequence-using-cyclic-increments", "sorting-three-groups", "number-of-beautiful-integers-in-the-range"]}, {"contest_title": "\u7b2c 112 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 112", "contest_title_slug": "biweekly-contest-112", "contest_id": 917, "contest_start_time": 1693665000, "contest_duration": 5400, "user_num": 2900, "question_slugs": ["check-if-strings-can-be-made-equal-with-operations-i", "check-if-strings-can-be-made-equal-with-operations-ii", "maximum-sum-of-almost-unique-subarray", "count-k-subsequences-of-a-string-with-maximum-beauty"]}, {"contest_title": "\u7b2c 113 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 113", "contest_title_slug": "biweekly-contest-113", "contest_id": 923, "contest_start_time": 1694874600, "contest_duration": 5400, "user_num": 3028, "question_slugs": ["minimum-right-shifts-to-sort-the-array", "minimum-array-length-after-pair-removals", "count-pairs-of-points-with-distance-k", "minimum-edge-reversals-so-every-node-is-reachable"]}, {"contest_title": "\u7b2c 114 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 114", "contest_title_slug": "biweekly-contest-114", "contest_id": 929, "contest_start_time": 1696084200, "contest_duration": 5400, "user_num": 2406, "question_slugs": ["minimum-operations-to-collect-elements", "minimum-number-of-operations-to-make-array-empty", "split-array-into-maximum-number-of-subarrays", "maximum-number-of-k-divisible-components"]}, {"contest_title": "\u7b2c 115 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 115", "contest_title_slug": "biweekly-contest-115", "contest_id": 935, "contest_start_time": 1697293800, "contest_duration": 5400, "user_num": 2809, "question_slugs": ["last-visited-integers", "longest-unequal-adjacent-groups-subsequence-i", "longest-unequal-adjacent-groups-subsequence-ii", "count-of-sub-multisets-with-bounded-sum"]}, {"contest_title": "\u7b2c 116 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 116", "contest_title_slug": "biweekly-contest-116", "contest_id": 941, "contest_start_time": 1698503400, "contest_duration": 5400, "user_num": 2904, "question_slugs": ["subarrays-distinct-element-sum-of-squares-i", "minimum-number-of-changes-to-make-binary-string-beautiful", "length-of-the-longest-subsequence-that-sums-to-target", "subarrays-distinct-element-sum-of-squares-ii"]}, {"contest_title": "\u7b2c 117 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 117", "contest_title_slug": "biweekly-contest-117", "contest_id": 949, "contest_start_time": 1699713000, "contest_duration": 5400, "user_num": 2629, "question_slugs": ["distribute-candies-among-children-i", "distribute-candies-among-children-ii", "number-of-strings-which-can-be-rearranged-to-contain-substring", "maximum-spending-after-buying-items"]}, {"contest_title": "\u7b2c 118 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 118", "contest_title_slug": "biweekly-contest-118", "contest_id": 955, "contest_start_time": 1700922600, "contest_duration": 5400, "user_num": 2425, "question_slugs": ["find-words-containing-character", "maximize-area-of-square-hole-in-grid", "minimum-number-of-coins-for-fruits", "find-maximum-non-decreasing-array-length"]}, {"contest_title": "\u7b2c 119 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 119", "contest_title_slug": "biweekly-contest-119", "contest_id": 961, "contest_start_time": 1702132200, "contest_duration": 5400, "user_num": 2472, "question_slugs": ["find-common-elements-between-two-arrays", "remove-adjacent-almost-equal-characters", "length-of-longest-subarray-with-at-most-k-frequency", "number-of-possible-sets-of-closing-branches"]}, {"contest_title": "\u7b2c 120 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 120", "contest_title_slug": "biweekly-contest-120", "contest_id": 967, "contest_start_time": 1703341800, "contest_duration": 5400, "user_num": 2542, "question_slugs": ["count-the-number-of-incremovable-subarrays-i", "find-polygon-with-the-largest-perimeter", "count-the-number-of-incremovable-subarrays-ii", "find-number-of-coins-to-place-in-tree-nodes"]}, {"contest_title": "\u7b2c 121 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 121", "contest_title_slug": "biweekly-contest-121", "contest_id": 973, "contest_start_time": 1704551400, "contest_duration": 5400, "user_num": 2218, "question_slugs": ["smallest-missing-integer-greater-than-sequential-prefix-sum", "minimum-number-of-operations-to-make-array-xor-equal-to-k", "minimum-number-of-operations-to-make-x-and-y-equal", "count-the-number-of-powerful-integers"]}, {"contest_title": "\u7b2c 122 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 122", "contest_title_slug": "biweekly-contest-122", "contest_id": 979, "contest_start_time": 1705761000, "contest_duration": 5400, "user_num": 2547, "question_slugs": ["divide-an-array-into-subarrays-with-minimum-cost-i", "find-if-array-can-be-sorted", "minimize-length-of-array-using-operations", "divide-an-array-into-subarrays-with-minimum-cost-ii"]}, {"contest_title": "\u7b2c 123 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 123", "contest_title_slug": "biweekly-contest-123", "contest_id": 985, "contest_start_time": 1706970600, "contest_duration": 5400, "user_num": 2209, "question_slugs": ["type-of-triangle", "find-the-number-of-ways-to-place-people-i", "maximum-good-subarray-sum", "find-the-number-of-ways-to-place-people-ii"]}, {"contest_title": "\u7b2c 124 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 124", "contest_title_slug": "biweekly-contest-124", "contest_id": 991, "contest_start_time": 1708180200, "contest_duration": 5400, "user_num": 1861, "question_slugs": ["maximum-number-of-operations-with-the-same-score-i", "apply-operations-to-make-string-empty", "maximum-number-of-operations-with-the-same-score-ii", "maximize-consecutive-elements-in-an-array-after-modification"]}, {"contest_title": "\u7b2c 125 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 125", "contest_title_slug": "biweekly-contest-125", "contest_id": 997, "contest_start_time": 1709389800, "contest_duration": 5400, "user_num": 2599, "question_slugs": ["minimum-operations-to-exceed-threshold-value-i", "minimum-operations-to-exceed-threshold-value-ii", "count-pairs-of-connectable-servers-in-a-weighted-tree-network", "find-the-maximum-sum-of-node-values"]}, {"contest_title": "\u7b2c 126 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 126", "contest_title_slug": "biweekly-contest-126", "contest_id": 1003, "contest_start_time": 1710599400, "contest_duration": 5400, "user_num": 3234, "question_slugs": ["find-the-sum-of-encrypted-integers", "mark-elements-on-array-by-performing-queries", "replace-question-marks-in-string-to-minimize-its-value", "find-the-sum-of-the-power-of-all-subsequences"]}, {"contest_title": "\u7b2c 127 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 127", "contest_title_slug": "biweekly-contest-127", "contest_id": 1010, "contest_start_time": 1711809000, "contest_duration": 5400, "user_num": 2950, "question_slugs": ["shortest-subarray-with-or-at-least-k-i", "minimum-levels-to-gain-more-points", "shortest-subarray-with-or-at-least-k-ii", "find-the-sum-of-subsequence-powers"]}, {"contest_title": "\u7b2c 128 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 128", "contest_title_slug": "biweekly-contest-128", "contest_id": 1017, "contest_start_time": 1713018600, "contest_duration": 5400, "user_num": 2653, "question_slugs": ["score-of-a-string", "minimum-rectangles-to-cover-points", "minimum-time-to-visit-disappearing-nodes", "find-the-number-of-subarrays-where-boundary-elements-are-maximum"]}, {"contest_title": "\u7b2c 129 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 129", "contest_title_slug": "biweekly-contest-129", "contest_id": 1023, "contest_start_time": 1714228200, "contest_duration": 5400, "user_num": 2510, "question_slugs": ["make-a-square-with-the-same-color", "right-triangles", "find-all-possible-stable-binary-arrays-i", "find-all-possible-stable-binary-arrays-ii"]}, {"contest_title": "\u7b2c 130 \u573a\u53cc\u5468\u8d5b", "contest_title_en": "Biweekly Contest 130", "contest_title_slug": "biweekly-contest-130", "contest_id": 1029, "contest_start_time": 1715437800, "contest_duration": 5400, "user_num": 2604, "question_slugs": ["check-if-grid-satisfies-conditions", "maximum-points-inside-the-square", "minimum-substring-partition-of-equal-character-frequency", "find-products-of-elements-of-big-array"]}] \ No newline at end of file From 4db3cd413b718b03f0d6570b4b74df7ef6a4d403 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 20 May 2024 09:04:05 +0100 Subject: [PATCH 13/31] feat: add swift implementation to lcof problem: No.06 (#2853) --- .../README.md" | 27 +++++++++++++++++++ .../Solution.swift" | 22 +++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" index bfa8e8184131e..ca4eae5ad4265 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" @@ -402,6 +402,33 @@ var reversePrint = function (head) { }; ``` +#### Swift + +```swift +/* public class ListNode { +* public var val: Int +* public var next: ListNode? +* public init(_ val: Int) { +* self.val = val +* self.next = nil +* } +* } +*/ + +class Solution { + func reversePrint(_ head: ListNode?) -> [Int] { + var stack = [Int]() + var current = head + while let node = current { + stack.append(node.val) + current = node.next + } + + return stack.reversed() + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.swift" new file mode 100644 index 0000000000000..f076edd505df9 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.swift" @@ -0,0 +1,22 @@ +/* public class ListNode { +* public var val: Int +* public var next: ListNode? +* public init(_ val: Int) { +* self.val = val +* self.next = nil +* } +* } +*/ + +class Solution { + func reversePrint(_ head: ListNode?) -> [Int] { + var stack = [Int]() + var current = head + while let node = current { + stack.append(node.val) + current = node.next + } + + return stack.reversed() + } +} \ No newline at end of file From d2ee6aad7c3c9e33f1c878a26a216656d32894aa Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 20 May 2024 09:04:16 +0100 Subject: [PATCH 14/31] feat: add swift implementation to lcof problem: No.07 (#2854) --- .../README.md" | 44 +++++++++++++++++++ .../Solution.swift" | 39 ++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23007. \351\207\215\345\273\272\344\272\214\345\217\211\346\240\221/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23007. \351\207\215\345\273\272\344\272\214\345\217\211\346\240\221/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23007. \351\207\215\345\273\272\344\272\214\345\217\211\346\240\221/README.md" index d7ae1aa3cb80c..5139b8a574f28 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23007. \351\207\215\345\273\272\344\272\214\345\217\211\346\240\221/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23007. \351\207\215\345\273\272\344\272\214\345\217\211\346\240\221/README.md" @@ -350,6 +350,50 @@ public class Solution { } ``` +#### Swift + +```swift +/* public class TreeNode { +* public var val: Int +* public var left: TreeNode? +* public var right: TreeNode? +* public init(_ val: Int) { +* self.val = val +* self.left = nil +* self.right = nil +* } +* } +*/ + +class Solution { + private var d = [Int: Int]() + private var preorder: [Int] = [] + private var inorder: [Int] = [] + + func buildTree(_ preorder: [Int], _ inorder: [Int]) -> TreeNode? { + let n = inorder.count + for i in 0.. TreeNode? { + if n < 1 { + return nil + } + let k = d[preorder[i]]! + let l = k - j + let root = TreeNode(preorder[i]) + root.left = dfs(i + 1, j, l) + root.right = dfs(i + 1 + l, k + 1, n - l - 1) + return root + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23007. \351\207\215\345\273\272\344\272\214\345\217\211\346\240\221/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23007. \351\207\215\345\273\272\344\272\214\345\217\211\346\240\221/Solution.swift" new file mode 100644 index 0000000000000..61d06b294616f --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23007. \351\207\215\345\273\272\344\272\214\345\217\211\346\240\221/Solution.swift" @@ -0,0 +1,39 @@ +/* public class TreeNode { +* public var val: Int +* public var left: TreeNode? +* public var right: TreeNode? +* public init(_ val: Int) { +* self.val = val +* self.left = nil +* self.right = nil +* } +* } +*/ + +class Solution { + private var d = [Int: Int]() + private var preorder: [Int] = [] + private var inorder: [Int] = [] + + func buildTree(_ preorder: [Int], _ inorder: [Int]) -> TreeNode? { + let n = inorder.count + for i in 0.. TreeNode? { + if n < 1 { + return nil + } + let k = d[preorder[i]]! + let l = k - j + let root = TreeNode(preorder[i]) + root.left = dfs(i + 1, j, l) + root.right = dfs(i + 1 + l, k + 1, n - l - 1) + return root + } +} \ No newline at end of file From 5cc631517b373c96d6765088689b6e158d672c7b Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 20 May 2024 09:06:19 +0100 Subject: [PATCH 15/31] feat: add swift implementation to lcof problem: No.09 (#2855) --- .../README.md" | 32 +++++++++++++++++++ .../Solution.swift" | 20 ++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23009. \347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23009. \347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23009. \347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227/README.md" index be00711a0bbf9..696d6fbb87275 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23009. \347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23009. \347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227/README.md" @@ -336,6 +336,38 @@ public class CQueue { */ ``` +#### Swift + +```swift +class CQueue { + private var stk1: [Int] = [] + private var stk2: [Int] = [] + + init() { + } + + func appendTail(_ value: Int) { + stk1.append(value) + } + + func deleteHead() -> Int { + if stk2.isEmpty { + while !stk1.isEmpty { + stk2.append(stk1.removeLast()) + } + } + return stk2.isEmpty ? -1 : stk2.removeLast() + } +} + +/** + * Your CQueue object will be instantiated and called as such: + * let obj = CQueue(); + * obj.appendTail(value); + * let param_2 = obj.DeleteHead(); + */ +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23009. \347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23009. \347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227/Solution.swift" new file mode 100644 index 0000000000000..9d6664ec61f43 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23009. \347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227/Solution.swift" @@ -0,0 +1,20 @@ +class CQueue { + private var stk1: [Int] = [] + private var stk2: [Int] = [] + + init() { + } + + func appendTail(_ value: Int) { + stk1.append(value) + } + + func deleteHead() -> Int { + if stk2.isEmpty { + while !stk1.isEmpty { + stk2.append(stk1.removeLast()) + } + } + return stk2.isEmpty ? -1 : stk2.removeLast() + } +} \ No newline at end of file From d451882565efacb1d9b8eaacbf75c385ec32d255 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 20 May 2024 09:06:32 +0100 Subject: [PATCH 16/31] feat: add swift implementation to lcof problem: No.10.1 (#2856) --- .../README.md" | 19 +++++++++++++++++++ .../Solution.swift" | 14 ++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/README.md" index 7d38e46f39ac0..d60943d259517 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/README.md" @@ -177,6 +177,25 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + func fib(_ n: Int) -> Int { + var a = 0 + var b = 1 + var count = n + while count > 0 { + let c = (a + b) % 1000000007 + a = b + b = c + count -= 1 + } + return a + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/Solution.swift" new file mode 100644 index 0000000000000..29af382ba2350 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/Solution.swift" @@ -0,0 +1,14 @@ +class Solution { + func fib(_ n: Int) -> Int { + var a = 0 + var b = 1 + var count = n + while count > 0 { + let c = (a + b) % 1000000007 + a = b + b = c + count -= 1 + } + return a + } +} \ No newline at end of file From 98beaf48778d2502c350b5376140dc9ce329827f Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 20 May 2024 09:06:49 +0100 Subject: [PATCH 17/31] feat: add swift implementation to lcof problem: No.10.2 (#2857) --- .../README.md" | 19 +++++++++++++++++++ .../Solution.swift" | 14 ++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/README.md" index f28acba85bfa2..01475610f3ea3 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/README.md" @@ -174,6 +174,25 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + func numWays(_ n: Int) -> Int { + var a = 1 + var b = 1 + var count = n + while count > 0 { + let c = (a + b) % 1000000007 + a = b + b = c + count -= 1 + } + return a + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/Solution.swift" new file mode 100644 index 0000000000000..b1f1da425d858 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/Solution.swift" @@ -0,0 +1,14 @@ +class Solution { + func numWays(_ n: Int) -> Int { + var a = 1 + var b = 1 + var count = n + while count > 0 { + let c = (a + b) % 1000000007 + a = b + b = c + count -= 1 + } + return a + } +} \ No newline at end of file From 5f6a3af42d18e9b83c6e58bb0951cbf0e3bf92fa Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 20 May 2024 09:07:30 +0100 Subject: [PATCH 18/31] feat: add swift implementation to lcof problem: No.11 (#2858) --- .../README.md" | 22 +++++++++++++++++++ .../Solution.swift" | 17 ++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" index 2f94ffeb0654b..c64a354d3ac76 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" @@ -206,6 +206,28 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + func minArray(_ numbers: [Int]) -> Int { + var l = 0 + var r = numbers.count - 1 + while l < r { + let m = (l + r) / 2 + if numbers[m] > numbers[r] { + l = m + 1 + } else if numbers[m] < numbers[r] { + r = m + } else { + r -= 1 + } + } + return numbers[l] + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/Solution.swift" new file mode 100644 index 0000000000000..c4451dc48bee1 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/Solution.swift" @@ -0,0 +1,17 @@ +class Solution { + func minArray(_ numbers: [Int]) -> Int { + var l = 0 + var r = numbers.count - 1 + while l < r { + let m = (l + r) / 2 + if numbers[m] > numbers[r] { + l = m + 1 + } else if numbers[m] < numbers[r] { + r = m + } else { + r -= 1 + } + } + return numbers[l] + } +} \ No newline at end of file From df9bd5d8f322d29577aa214022cb1afc0fbb2eef Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Mon, 20 May 2024 18:07:49 +0800 Subject: [PATCH 19/31] feat: add sql solution to lc problem: No.3156 (#2859) No.3156.Employee Task Duration and Concurrent Tasks --- .../README.md | 158 ++++++++++++++++++ .../README_EN.md | 157 +++++++++++++++++ .../Solution.sql | 35 ++++ solution/DATABASE_README.md | 1 + solution/DATABASE_README_EN.md | 1 + solution/README.md | 1 + solution/README_EN.md | 1 + 7 files changed, 354 insertions(+) create mode 100644 solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/README.md create mode 100644 solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/README_EN.md create mode 100644 solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/Solution.sql diff --git a/solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/README.md b/solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/README.md new file mode 100644 index 0000000000000..85075e66e2fc2 --- /dev/null +++ b/solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/README.md @@ -0,0 +1,158 @@ +--- +comments: true +difficulty: 困难 +edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3156.Employee%20Task%20Duration%20and%20Concurrent%20Tasks/README.md +--- + + + +# [3156. 员工任务持续时间和并发任务 🔒](https://leetcode.cn/problems/employee-task-duration-and-concurrent-tasks) + +[English Version](/solution/3100-3199/3156.Employee%20Task%20Duration%20and%20Concurrent%20Tasks/README_EN.md) + +## 题目描述 + + + +

    表:Tasks

    + +
    ++---------------+----------+
    +| Column Name   | Type     |
    ++---------------+----------+
    +| task_id       | int      |
    +| employee_id   | int      |
    +| start_time    | datetime |
    +| end_time      | datetime |
    ++---------------+----------+
    +(task_id, employee_id) 是这张表的主键。
    +这张表的每一行包含任务标识,员工标识和每个任务的开始和结束时间。
    +
    + +

    编写一个解决方案来查找 每个 员工的任务 总持续时间 以及员工在任何时间点处理的 最大并发任务数。总时长应该 舍入 到最近的 整小时

    + +

    返回结果表以 employee_id 升序 排序。

    + +

    结果格式如下所示。

    + +

     

    + +

    示例:

    + +
    +

    输入:

    + +

    Tasks 表:

    + +
    ++---------+-------------+---------------------+---------------------+
    +| task_id | employee_id | start_time          | end_time            |
    ++---------+-------------+---------------------+---------------------+
    +| 1       | 1001        | 2023-05-01 08:00:00 | 2023-05-01 09:00:00 |
    +| 2       | 1001        | 2023-05-01 08:30:00 | 2023-05-01 10:30:00 |
    +| 3       | 1001        | 2023-05-01 11:00:00 | 2023-05-01 12:00:00 |
    +| 7       | 1001        | 2023-05-01 13:00:00 | 2023-05-01 15:30:00 |
    +| 4       | 1002        | 2023-05-01 09:00:00 | 2023-05-01 10:00:00 |
    +| 5       | 1002        | 2023-05-01 09:30:00 | 2023-05-01 11:30:00 |
    +| 6       | 1003        | 2023-05-01 14:00:00 | 2023-05-01 16:00:00 |
    ++---------+-------------+---------------------+---------------------+
    +
    + +

    输出:

    + +
    ++-------------+------------------+----------------------+
    +| employee_id | total_task_hours | max_concurrent_tasks |
    ++-------------+------------------+----------------------+
    +| 1001        | 6                | 2                    |
    +| 1002        | 2                | 2                    |
    +| 1003        | 2                | 1                    |
    ++-------------+------------------+----------------------+
    +
    + +

    解释:

    + +
      +
    • 对于员工 ID 1001: +
        +
      • 任务 1 和任务 2 从 08:30 到 09:00 重叠(30 分钟)。
      • +
      • 任务 7 持续时间为 150 分钟(2 小时 30 分钟)。
      • +
      • 总工作小时:60(任务 1)+ 120(任务 2)+ 60(任务 3)+ 150(任务 7)- 30(重叠)= 360 分钟 = 6 小时。
      • +
      • 最大并发任务:2 (重叠期间)。
      • +
      +
    • +
    • 对于员工 ID 1002: +
        +
      • 任务 4 和任务 5 从 09:30 到 10:00 重叠(30 分钟)。
      • +
      • 总工作时间:60 (任务 4)+ 120(任务 5)- 30(重叠)= 150 分钟 = 2 小时 30 分钟。
      • +
      • 总工作小时:(舍入后):2 小时。
      • +
      • 最大并发任务:2 (重叠期间)。
      • +
      +
    • +
    • 对于员工 ID 1003: +
        +
      • 没有重叠的工作。
      • +
      • 总工作时间:120 分钟 = 2 小时。
      • +
      • 最大并发任务:1。
      • +
      +
    • +
    + +

    注意:输出表以 employee_id 升序排序。

    +
    + + + +## 解法 + + + +### 方法一 + + + +#### MySQL + +```sql +# Write your MySQL query statement below +WITH + T AS ( + SELECT DISTINCT employee_id, start_time AS st + FROM Tasks + UNION DISTINCT + SELECT DISTINCT employee_id, end_time AS st + FROM Tasks + ), + P AS ( + SELECT + *, + LEAD(st) OVER ( + PARTITION BY employee_id + ORDER BY st + ) AS ed + FROM T + ), + S AS ( + SELECT + P.*, + COUNT(1) AS concurrent_count + FROM + P + INNER JOIN Tasks USING (employee_id) + WHERE P.st >= Tasks.start_time AND P.ed <= Tasks.end_time + GROUP BY 1, 2, 3 + ) +SELECT + employee_id, + FLOOR(SUM(TIME_TO_SEC(TIMEDIFF(ed, st)) / 3600)) AS total_task_hours, + MAX(concurrent_count) AS max_concurrent_tasks +FROM S +GROUP BY 1 +ORDER BY 1; +``` + + + + + + diff --git a/solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/README_EN.md b/solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/README_EN.md new file mode 100644 index 0000000000000..90360d766c490 --- /dev/null +++ b/solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/README_EN.md @@ -0,0 +1,157 @@ +--- +comments: true +difficulty: Hard +edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3156.Employee%20Task%20Duration%20and%20Concurrent%20Tasks/README_EN.md +--- + + + +# [3156. Employee Task Duration and Concurrent Tasks 🔒](https://leetcode.com/problems/employee-task-duration-and-concurrent-tasks) + +[中文文档](/solution/3100-3199/3156.Employee%20Task%20Duration%20and%20Concurrent%20Tasks/README.md) + +## Description + + + +

    Table: Tasks

    + +
    ++---------------+----------+
    +| Column Name   | Type     |
    ++---------------+----------+
    +| task_id       | int      |
    +| employee_id   | int      |
    +| start_time    | datetime |
    +| end_time      | datetime |
    ++---------------+----------+
    +(task_id, employee_id) is the primary key for this table.
    +Each row in this table contains the task identifier, the employee identifier, and the start and end times of each task.
    +
    + +

    Write a solution to find the total duration of tasks for each employee and the maximum number of concurrent tasks an employee handled at any point in time. The total duration should be rounded down to the nearest number of full hours.

    + +

    Return the result table ordered by employee_id ascending order.

    + +

    The result format is in the following example.

    + +

     

    +

    Example:

    + +
    +

    Input:

    + +

    Tasks table:

    + +
    ++---------+-------------+---------------------+---------------------+
    +| task_id | employee_id | start_time          | end_time            |
    ++---------+-------------+---------------------+---------------------+
    +| 1       | 1001        | 2023-05-01 08:00:00 | 2023-05-01 09:00:00 |
    +| 2       | 1001        | 2023-05-01 08:30:00 | 2023-05-01 10:30:00 |
    +| 3       | 1001        | 2023-05-01 11:00:00 | 2023-05-01 12:00:00 |
    +| 7       | 1001        | 2023-05-01 13:00:00 | 2023-05-01 15:30:00 |
    +| 4       | 1002        | 2023-05-01 09:00:00 | 2023-05-01 10:00:00 |
    +| 5       | 1002        | 2023-05-01 09:30:00 | 2023-05-01 11:30:00 |
    +| 6       | 1003        | 2023-05-01 14:00:00 | 2023-05-01 16:00:00 |
    ++---------+-------------+---------------------+---------------------+
    +
    + +

    Output:

    + +
    ++-------------+------------------+----------------------+
    +| employee_id | total_task_hours | max_concurrent_tasks |
    ++-------------+------------------+----------------------+
    +| 1001        | 6                | 2                    |
    +| 1002        | 2                | 2                    |
    +| 1003        | 2                | 1                    |
    ++-------------+------------------+----------------------+
    +
    + +

    Explanation:

    + +
      +
    • For employee ID 1001: +
        +
      • Task 1 and Task 2 overlap from 08:30 to 09:00 (30 minutes).
      • +
      • Task 7 has a duration of 150 minutes (2 hours and 30 minutes).
      • +
      • Total task time: 60 (Task 1) + 120 (Task 2) + 60 (Task 3) + 150 (Task 7) - 30 (overlap) = 360 minutes = 6 hours.
      • +
      • Maximum concurrent tasks: 2 (during the overlap period).
      • +
      +
    • +
    • For employee ID 1002: +
        +
      • Task 4 and Task 5 overlap from 09:30 to 10:00 (30 minutes).
      • +
      • Total task time: 60 (Task 4) + 120 (Task 5) - 30 (overlap) = 150 minutes = 2 hours and 30 minutes.
      • +
      • Total task hours (rounded down): 2 hours.
      • +
      • Maximum concurrent tasks: 2 (during the overlap period).
      • +
      +
    • +
    • For employee ID 1003: +
        +
      • No overlapping tasks.
      • +
      • Total task time: 120 minutes = 2 hours.
      • +
      • Maximum concurrent tasks: 1.
      • +
      +
    • +
    + +

    Note: Output table is ordered by employee_id in ascending order.

    +
    + + + +## Solutions + + + +### Solution 1 + + + +#### MySQL + +```sql +# Write your MySQL query statement below +WITH + T AS ( + SELECT DISTINCT employee_id, start_time AS st + FROM Tasks + UNION DISTINCT + SELECT DISTINCT employee_id, end_time AS st + FROM Tasks + ), + P AS ( + SELECT + *, + LEAD(st) OVER ( + PARTITION BY employee_id + ORDER BY st + ) AS ed + FROM T + ), + S AS ( + SELECT + P.*, + COUNT(1) AS concurrent_count + FROM + P + INNER JOIN Tasks USING (employee_id) + WHERE P.st >= Tasks.start_time AND P.ed <= Tasks.end_time + GROUP BY 1, 2, 3 + ) +SELECT + employee_id, + FLOOR(SUM(TIME_TO_SEC(TIMEDIFF(ed, st)) / 3600)) AS total_task_hours, + MAX(concurrent_count) AS max_concurrent_tasks +FROM S +GROUP BY 1 +ORDER BY 1; +``` + + + + + + diff --git a/solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/Solution.sql b/solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/Solution.sql new file mode 100644 index 0000000000000..3c9461aba42d2 --- /dev/null +++ b/solution/3100-3199/3156.Employee Task Duration and Concurrent Tasks/Solution.sql @@ -0,0 +1,35 @@ +# Write your MySQL query statement below +WITH + T AS ( + SELECT DISTINCT employee_id, start_time AS st + FROM Tasks + UNION DISTINCT + SELECT DISTINCT employee_id, end_time AS st + FROM Tasks + ), + P AS ( + SELECT + *, + LEAD(st) OVER ( + PARTITION BY employee_id + ORDER BY st + ) AS ed + FROM T + ), + S AS ( + SELECT + P.*, + COUNT(1) AS concurrent_count + FROM + P + INNER JOIN Tasks USING (employee_id) + WHERE P.st >= Tasks.start_time AND P.ed <= Tasks.end_time + GROUP BY 1, 2, 3 + ) +SELECT + employee_id, + FLOOR(SUM(TIME_TO_SEC(TIMEDIFF(ed, st)) / 3600)) AS total_task_hours, + MAX(concurrent_count) AS max_concurrent_tasks +FROM S +GROUP BY 1 +ORDER BY 1; diff --git a/solution/DATABASE_README.md b/solution/DATABASE_README.md index e151fb4fff2c0..febf28a9e8112 100644 --- a/solution/DATABASE_README.md +++ b/solution/DATABASE_README.md @@ -279,6 +279,7 @@ | 3126 | [服务器利用时间](/solution/3100-3199/3126.Server%20Utilization%20Time/README.md) | `数据库` | 中等 | 🔒 | | 3140 | [连续空余座位 II](/solution/3100-3199/3140.Consecutive%20Available%20Seats%20II/README.md) | `数据库` | 中等 | 🔒 | | 3150 | [无效的推文 II](/solution/3100-3199/3150.Invalid%20Tweets%20II/README.md) | `数据库` | 简单 | 🔒 | +| 3156 | [员工任务持续时间和并发任务](/solution/3100-3199/3156.Employee%20Task%20Duration%20and%20Concurrent%20Tasks/README.md) | | 困难 | 🔒 | ## 版权 diff --git a/solution/DATABASE_README_EN.md b/solution/DATABASE_README_EN.md index 428dfd4774b82..a63f183d24af9 100644 --- a/solution/DATABASE_README_EN.md +++ b/solution/DATABASE_README_EN.md @@ -277,6 +277,7 @@ Press Control + F(or Command + F on | 3126 | [Server Utilization Time](/solution/3100-3199/3126.Server%20Utilization%20Time/README_EN.md) | `Database` | Medium | 🔒 | | 3140 | [Consecutive Available Seats II](/solution/3100-3199/3140.Consecutive%20Available%20Seats%20II/README_EN.md) | `Database` | Medium | 🔒 | | 3150 | [Invalid Tweets II](/solution/3100-3199/3150.Invalid%20Tweets%20II/README_EN.md) | `Database` | Easy | 🔒 | +| 3156 | [Employee Task Duration and Concurrent Tasks](/solution/3100-3199/3156.Employee%20Task%20Duration%20and%20Concurrent%20Tasks/README_EN.md) | | Hard | 🔒 | ## Copyright diff --git a/solution/README.md b/solution/README.md index 86297bb930075..f7ba10d162899 100644 --- a/solution/README.md +++ b/solution/README.md @@ -3166,6 +3166,7 @@ | 3153 | [所有数对中数位不同之和](/solution/3100-3199/3153.Sum%20of%20Digit%20Differences%20of%20All%20Pairs/README.md) | | 中等 | 第 398 场周赛 | | 3154 | [到达第 K 级台阶的方案数](/solution/3100-3199/3154.Find%20Number%20of%20Ways%20to%20Reach%20the%20K-th%20Stair/README.md) | | 困难 | 第 398 场周赛 | | 3155 | [Maximum Number of Upgradable Servers](/solution/3100-3199/3155.Maximum%20Number%20of%20Upgradable%20Servers/README.md) | | 中等 | 🔒 | +| 3156 | [员工任务持续时间和并发任务](/solution/3100-3199/3156.Employee%20Task%20Duration%20and%20Concurrent%20Tasks/README.md) | | 困难 | 🔒 | ## 版权 diff --git a/solution/README_EN.md b/solution/README_EN.md index b9f7cf205c6e6..69f5b93f8ca70 100644 --- a/solution/README_EN.md +++ b/solution/README_EN.md @@ -3164,6 +3164,7 @@ Press Control + F(or Command + F on | 3153 | [Sum of Digit Differences of All Pairs](/solution/3100-3199/3153.Sum%20of%20Digit%20Differences%20of%20All%20Pairs/README_EN.md) | | Medium | Weekly Contest 398 | | 3154 | [Find Number of Ways to Reach the K-th Stair](/solution/3100-3199/3154.Find%20Number%20of%20Ways%20to%20Reach%20the%20K-th%20Stair/README_EN.md) | | Hard | Weekly Contest 398 | | 3155 | [Maximum Number of Upgradable Servers](/solution/3100-3199/3155.Maximum%20Number%20of%20Upgradable%20Servers/README_EN.md) | | Medium | 🔒 | +| 3156 | [Employee Task Duration and Concurrent Tasks](/solution/3100-3199/3156.Employee%20Task%20Duration%20and%20Concurrent%20Tasks/README_EN.md) | | Hard | 🔒 | ## Copyright From 14c808599983c7d2f7a1354d52c64e0b4e6713a1 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Mon, 20 May 2024 19:09:56 +0800 Subject: [PATCH 20/31] feat: add solutions to lcp problem: No.80 (#2860) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LCP 80.生物进化录 --- .../README.md" | 106 ++++++++++++++++++ .../Solution.cpp" | 27 +++++ .../Solution.go" | 20 ++++ .../Solution.java" | 22 ++++ .../Solution.py" | 11 ++ 5 files changed, 186 insertions(+) create mode 100644 "lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.cpp" create mode 100644 "lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.go" create mode 100644 "lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.java" create mode 100644 "lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.py" diff --git "a/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/README.md" "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/README.md" index 5c4e27a793e7f..b2ce4b4fb2eb2 100644 --- "a/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/README.md" +++ "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/README.md" @@ -54,4 +54,110 @@ edit_url: https://github.com/doocs/leetcode/edit/main/lcp/LCP%2080.%20%E7%94%9F% +### 方法一:DFS + + + +#### Python3 + +```python +class Solution: + def evolutionaryRecord(self, parents: List[int]) -> str: + def dfs(i: int) -> str: + t = sorted(dfs(j) for j in g[i]) + return "0" + "".join(t) + "1" + + n = len(parents) + g = [[] for _ in range(n)] + for i in range(1, n): + g[parents[i]].append(i) + return dfs(0)[1:].rstrip("1") +``` + +#### Java + +```java +class Solution { + private List[] g; + + public String evolutionaryRecord(int[] parents) { + int n = parents.length; + g = new List[n]; + Arrays.setAll(g, k -> new ArrayList<>()); + for (int i = 1; i < n; ++i) { + g[parents[i]].add(i); + } + return dfs(0).substring(1).replaceAll("1+$", ""); + } + + private String dfs(int i) { + List t = new ArrayList<>(); + for (int j : g[i]) { + t.add(dfs(j)); + } + Collections.sort(t); + return "0" + String.join("", t) + "1"; + } +} +``` + +#### C++ + +```cpp +class Solution { +public: + string evolutionaryRecord(vector& parents) { + int n = parents.size(); + vector> g(n); + for (int i = 1; i < n; ++i) { + g[parents[i]].push_back(i); + } + + function dfs = [&](int i) -> string { + vector t; + for (int j : g[i]) { + t.push_back(dfs(j)); + } + sort(t.begin(), t.end()); + string res = "0"; + for (const string& s : t) { + res += s; + } + res += "1"; + return res; + }; + + string ans = dfs(0); + return ans.substr(1, ans.find_last_not_of('1')); + } +}; +``` + +#### Go + +```go +func evolutionaryRecord(parents []int) string { + n := len(parents) + g := make([][]int, n) + for i := 1; i < n; i++ { + g[parents[i]] = append(g[parents[i]], i) + } + + var dfs func(int) string + dfs = func(i int) string { + var t []string + for _, j := range g[i] { + t = append(t, dfs(j)) + } + sort.Strings(t) + return "0" + strings.Join(t, "") + "1" + } + + ans := dfs(0)[1:] + return strings.TrimRight(ans, "1") +} +``` + + + diff --git "a/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.cpp" "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.cpp" new file mode 100644 index 0000000000000..21bc9ee1528df --- /dev/null +++ "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.cpp" @@ -0,0 +1,27 @@ +class Solution { +public: + string evolutionaryRecord(vector& parents) { + int n = parents.size(); + vector> g(n); + for (int i = 1; i < n; ++i) { + g[parents[i]].push_back(i); + } + + function dfs = [&](int i) -> string { + vector t; + for (int j : g[i]) { + t.push_back(dfs(j)); + } + sort(t.begin(), t.end()); + string res = "0"; + for (const string& s : t) { + res += s; + } + res += "1"; + return res; + }; + + string ans = dfs(0); + return ans.substr(1, ans.find_last_not_of('1')); + } +}; \ No newline at end of file diff --git "a/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.go" "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.go" new file mode 100644 index 0000000000000..b3eca5d0f8d72 --- /dev/null +++ "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.go" @@ -0,0 +1,20 @@ +func evolutionaryRecord(parents []int) string { + n := len(parents) + g := make([][]int, n) + for i := 1; i < n; i++ { + g[parents[i]] = append(g[parents[i]], i) + } + + var dfs func(int) string + dfs = func(i int) string { + var t []string + for _, j := range g[i] { + t = append(t, dfs(j)) + } + sort.Strings(t) + return "0" + strings.Join(t, "") + "1" + } + + ans := dfs(0)[1:] + return strings.TrimRight(ans, "1") +} \ No newline at end of file diff --git "a/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.java" "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.java" new file mode 100644 index 0000000000000..00697fa95d929 --- /dev/null +++ "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.java" @@ -0,0 +1,22 @@ +class Solution { + private List[] g; + + public String evolutionaryRecord(int[] parents) { + int n = parents.length; + g = new List[n]; + Arrays.setAll(g, k -> new ArrayList<>()); + for (int i = 1; i < n; ++i) { + g[parents[i]].add(i); + } + return dfs(0).substring(1).replaceAll("1+$", ""); + } + + private String dfs(int i) { + List t = new ArrayList<>(); + for (int j : g[i]) { + t.add(dfs(j)); + } + Collections.sort(t); + return "0" + String.join("", t) + "1"; + } +} \ No newline at end of file diff --git "a/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.py" "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.py" new file mode 100644 index 0000000000000..bfe508233641a --- /dev/null +++ "b/lcp/LCP 80. \347\224\237\347\211\251\350\277\233\345\214\226\345\275\225/Solution.py" @@ -0,0 +1,11 @@ +class Solution: + def evolutionaryRecord(self, parents: List[int]) -> str: + def dfs(i: int) -> str: + t = sorted(dfs(j) for j in g[i]) + return "0" + "".join(t) + "1" + + n = len(parents) + g = [[] for _ in range(n)] + for i in range(1, n): + g[parents[i]].append(i) + return dfs(0)[1:].rstrip("1") From feae0f632baa19f40c5956a5fc0cddf243de34db Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Tue, 21 May 2024 08:54:19 +0800 Subject: [PATCH 21/31] feat: update solutions to lc/lcof problems (#2861) --- .../README.md" | 126 ++++---- .../Solution.cpp" | 8 +- .../Solution.cs" | 26 +- .../Solution.js" | 14 +- .../Solution.rs" | 8 +- .../Solution.ts" | 8 +- .../Solution2.cpp" | 8 +- .../README.md" | 6 +- .../README.md" | 285 +++--------------- .../Solution.cpp" | 24 +- .../Solution.java" | 26 +- .../Solution.js" | 14 +- .../Solution.py" | 22 +- .../Solution.rs" | 27 -- .../Solution.ts" | 25 +- .../Solution2.cpp" | 22 -- .../Solution2.go" | 27 -- .../Solution2.java" | 22 -- .../Solution2.py" | 17 -- .../Solution2.rs" | 19 -- .../README.md" | 167 +++++++--- .../Solution.cpp" | 8 +- .../Solution.cs" | 26 +- .../Solution.go" | 8 +- .../Solution.java" | 8 +- .../Solution.js" | 16 +- .../Solution.py" | 6 +- .../Solution.rs" | 12 +- .../Solution.ts" | 16 +- .../Solution2.cs" | 14 + .../Solution2.js" | 17 ++ .../Solution2.rs" | 9 + .../Solution2.ts" | 13 + .../2700-2799/2705.Compact Object/README.md | 4 +- .../2705.Compact Object/README_EN.md | 4 +- .../2700-2799/2705.Compact Object/Solution.js | 2 +- .../2700-2799/2705.Compact Object/Solution.ts | 2 +- 37 files changed, 399 insertions(+), 667 deletions(-) delete mode 100644 "lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.rs" delete mode 100644 "lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.cpp" delete mode 100644 "lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.go" delete mode 100644 "lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.java" delete mode 100644 "lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.py" delete mode 100644 "lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.rs" create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.cs" create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.js" create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.rs" create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.ts" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" index ca4eae5ad4265..8c91b95205c74 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" @@ -100,9 +100,11 @@ class Solution { class Solution { public: vector reversePrint(ListNode* head) { - if (!head) return {}; - vector ans = reversePrint(head->next); - ans.push_back(head->val); + vector ans; + for (; head; head = head->next) { + ans.push_back(head->val); + } + reverse(ans.begin(), ans.end()); return ans; } }; @@ -145,11 +147,11 @@ func reversePrint(head *ListNode) (ans []int) { */ function reversePrint(head: ListNode | null): number[] { - let ans: number[] = []; - for (; !!head; head = head.next) { - ans.unshift(head.val); + const ans: number[] = []; + for (; head; head = head.next) { + ans.push(head.val); } - return ans; + return ans.reverse(); } ``` @@ -174,14 +176,14 @@ function reversePrint(head: ListNode | null): number[] { // } impl Solution { pub fn reverse_print(head: Option>) -> Vec { - let mut arr: Vec = vec![]; + let mut ans: Vec = vec![]; let mut cur = head; while let Some(node) = cur { - arr.push(node.val); + ans.push(node.val); cur = node.next; } - arr.reverse(); - arr + ans.reverse(); + ans } } ``` @@ -191,9 +193,9 @@ impl Solution { ```js /** * Definition for singly-linked list. - * function ListNode(val) { - * this.val = val; - * this.next = null; + * function ListNode(val, next) { + * this.val = (val===undefined ? 0 : val) + * this.next = (next===undefined ? null : next) * } */ /** @@ -201,11 +203,11 @@ impl Solution { * @return {number[]} */ var reversePrint = function (head) { - let ans = []; - for (; !!head; head = head.next) { - ans.unshift(head.val); + const ans = []; + for (; head; head = head.next) { + ans.push(head.val); } - return ans; + return ans.reverse(); }; ``` @@ -217,20 +219,49 @@ var reversePrint = function (head) { * public class ListNode { * public int val; * public ListNode next; - * public ListNode(int x) { val = x; } + * public ListNode(int val=0, ListNode next=null) { + * this.val = val; + * this.next = next; + * } * } */ - public class Solution { - public int[] ReversePrint(ListNode head) { - List ans = new List(); - while (head != null) { - ans.Add(head.val); - head = head.next; - } - ans.Reverse(); - return ans.ToArray(); - } - } +public class Solution { + public int[] ReversePrint(ListNode head) { + List ans = new List(); + for (; head != null; head = head.next) { + ans.Add(head.val); + } + ans.Reverse(); + return ans.ToArray(); + } +} +``` + +#### Swift + +```swift +/* public class ListNode { +* public var val: Int +* public var next: ListNode? +* public init(_ val: Int) { +* self.val = val +* self.next = nil +* } +* } +*/ + +class Solution { + func reversePrint(_ head: ListNode?) -> [Int] { + var stack = [Int]() + var current = head + while let node = current { + stack.append(node.val) + current = node.next + } + + return stack.reversed() + } +} ``` @@ -308,11 +339,11 @@ class Solution { class Solution { public: vector reversePrint(ListNode* head) { - vector ans; - for (; head; head = head->next) { - ans.push_back(head->val); + if (!head) { + return {}; } - reverse(ans.begin(), ans.end()); + vector ans = reversePrint(head->next); + ans.push_back(head->val); return ans; } }; @@ -402,33 +433,6 @@ var reversePrint = function (head) { }; ``` -#### Swift - -```swift -/* public class ListNode { -* public var val: Int -* public var next: ListNode? -* public init(_ val: Int) { -* self.val = val -* self.next = nil -* } -* } -*/ - -class Solution { - func reversePrint(_ head: ListNode?) -> [Int] { - var stack = [Int]() - var current = head - while let node = current { - stack.append(node.val) - current = node.next - } - - return stack.reversed() - } -} -``` - diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cpp" index fed6a7be480fb..aa0ba71ca67d1 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cpp" +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cpp" @@ -9,9 +9,11 @@ class Solution { public: vector reversePrint(ListNode* head) { - if (!head) return {}; - vector ans = reversePrint(head->next); - ans.push_back(head->val); + vector ans; + for (; head; head = head->next) { + ans.push_back(head->val); + } + reverse(ans.begin(), ans.end()); return ans; } }; \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cs" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cs" index 84ebd3e236c03..d0a5931f85d89 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cs" +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cs" @@ -3,17 +3,19 @@ * public class ListNode { * public int val; * public ListNode next; - * public ListNode(int x) { val = x; } + * public ListNode(int val=0, ListNode next=null) { + * this.val = val; + * this.next = next; + * } * } */ - public class Solution { - public int[] ReversePrint(ListNode head) { - List ans = new List(); - while (head != null) { - ans.Add(head.val); - head = head.next; - } - ans.Reverse(); - return ans.ToArray(); - } - } +public class Solution { + public int[] ReversePrint(ListNode head) { + List ans = new List(); + for (; head != null; head = head.next) { + ans.Add(head.val); + } + ans.Reverse(); + return ans.ToArray(); + } +} \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.js" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.js" index 942f407ce2d0b..b08a54a39f51b 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.js" +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.js" @@ -1,8 +1,8 @@ /** * Definition for singly-linked list. - * function ListNode(val) { - * this.val = val; - * this.next = null; + * function ListNode(val, next) { + * this.val = (val===undefined ? 0 : val) + * this.next = (next===undefined ? null : next) * } */ /** @@ -10,9 +10,9 @@ * @return {number[]} */ var reversePrint = function (head) { - let ans = []; - for (; !!head; head = head.next) { - ans.unshift(head.val); + const ans = []; + for (; head; head = head.next) { + ans.push(head.val); } - return ans; + return ans.reverse(); }; diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.rs" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.rs" index 61c6f8a5fc4a4..add24be94ef3f 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.rs" +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.rs" @@ -16,13 +16,13 @@ // } impl Solution { pub fn reverse_print(head: Option>) -> Vec { - let mut arr: Vec = vec![]; + let mut ans: Vec = vec![]; let mut cur = head; while let Some(node) = cur { - arr.push(node.val); + ans.push(node.val); cur = node.next; } - arr.reverse(); - arr + ans.reverse(); + ans } } diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.ts" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.ts" index 302215e466d87..8ac4602a8a883 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.ts" +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.ts" @@ -11,9 +11,9 @@ */ function reversePrint(head: ListNode | null): number[] { - let ans: number[] = []; - for (; !!head; head = head.next) { - ans.unshift(head.val); + const ans: number[] = []; + for (; head; head = head.next) { + ans.push(head.val); } - return ans; + return ans.reverse(); } diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution2.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution2.cpp" index aa0ba71ca67d1..0867de0723098 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution2.cpp" +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution2.cpp" @@ -9,11 +9,11 @@ class Solution { public: vector reversePrint(ListNode* head) { - vector ans; - for (; head; head = head->next) { - ans.push_back(head->val); + if (!head) { + return {}; } - reverse(ans.begin(), ans.end()); + vector ans = reversePrint(head->next); + ans.push_back(head->val); return ans; } }; \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" index c64a354d3ac76..ad4c6421ed926 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" @@ -52,8 +52,6 @@ edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9 时间复杂度 $(\log n)$,空间复杂度 $O(1)$。其中 $n$ 为数组长度。 -注意,我们也可以每次取中间元素 `numbers[mid]` 与左端元素 `numbers[l]` 比较,但需要考虑当前 $[l,..r]$ 区间内的元素是否已经有序,即是否满足 `numbers[l] < numbers[r]`,如果满足,直接返回 `numbers[l]` 即可。其它情况与上述方法类似。 - #### Python3 @@ -234,7 +232,9 @@ class Solution { -### 方法二 +### 方法二:二分查找(写法二) + +注意,我们也可以每次取中间元素 `numbers[mid]` 与左端元素 `numbers[l]` 比较,但需要考虑当前 $[l,..r]$ 区间内的元素是否已经有序,即是否满足 `numbers[l] < numbers[r]`,如果满足,直接返回 `numbers[l]` 即可。其它情况与方法一类似。 diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/README.md" index 23012d40d2e97..0c3ffee1042ac 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/README.md" @@ -56,27 +56,17 @@ edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9 ```python class Solution: def movingCount(self, m: int, n: int, k: int) -> int: - def f(x): - s = 0 - while x: - s += x % 10 - x //= 10 - return s + def f(x: int) -> int: + return x // 10 + x % 10 def dfs(i, j): + if i >= m or j >= n or f(i) + f(j) > k or (i, j) in vis: + return 0 vis.add((i, j)) - nonlocal ans - ans += 1 - for a, b in pairwise(dirs): - x, y = i + a, j + b - if 0 <= x < m and 0 <= y < n and f(x) + f(y) <= k and (x, y) not in vis: - dfs(x, y) + return 1 + dfs(i + 1, j) + dfs(i, j + 1) vis = set() - ans = 0 - dirs = (0, 1, 0) - dfs(0, 0) - return ans + return dfs(0, 0) ``` #### Java @@ -87,35 +77,21 @@ class Solution { private int m; private int n; private int k; - private int ans; public int movingCount(int m, int n, int k) { this.m = m; this.n = n; this.k = k; vis = new boolean[m][n]; - dfs(0, 0); - return ans; - } - - private void dfs(int i, int j) { - vis[i][j] = true; - ++ans; - int[] dirs = {1, 0, 1}; - for (int l = 0; l < 2; ++l) { - int x = i + dirs[l], y = j + dirs[l + 1]; - if (x >= 0 && x < m && y >= 0 && y < n && f(x) + f(y) <= k && !vis[x][y]) { - dfs(x, y); - } - } + return dfs(0, 0); } - private int f(int x) { - int s = 0; - for (; x > 0; x /= 10) { - s += x % 10; + private int dfs(int i, int j) { + if (i >= m || j >= n || vis[i][j] || (i % 10 + i / 10 + j % 10 + j / 10) > k) { + return 0; } - return s; + vis[i][j] = true; + return 1 + dfs(i + 1, j) + dfs(i, j + 1); } } ``` @@ -128,27 +104,17 @@ public: int movingCount(int m, int n, int k) { bool vis[m][n]; memset(vis, false, sizeof vis); - int ans = 0; - int dirs[3] = {1, 0, 1}; auto f = [](int x) { - int s = 0; - for (; x; x /= 10) { - s += x % 10; - } - return s; + return x / 10 + x % 10; }; - function dfs = [&](int i, int j) { - vis[i][j] = true; - ++ans; - for (int l = 0; l < 2; ++l) { - int x = i + dirs[l], y = j + dirs[l + 1]; - if (x >= 0 && x < m && y >= 0 && y < n && f(x) + f(y) <= k && !vis[x][y]) { - dfs(x, y); - } + function dfs = [&](int i, int j) -> int { + if (i < 0 || i >= m || j < 0 || j >= n || vis[i][j] || f(i) + f(j) > k) { + return false; } + vis[i][j] = true; + return 1 + dfs(i + 1, j) + dfs(i, j + 1); }; - dfs(0, 0); - return ans; + return dfs(0, 0); } }; ``` @@ -177,55 +143,18 @@ func movingCount(m int, n int, k int) int { ```ts function movingCount(m: number, n: number, k: number): number { - const set = new Set(); - const dfs = (i: number, j: number) => { - const key = `${i},${j}`; - if ( - i === m || - j === n || - set.has(key) || - `${i}${j}`.split('').reduce((r, v) => r + Number(v), 0) > k - ) { - return; - } - set.add(key); - dfs(i + 1, j); - dfs(i, j + 1); + const vis: boolean[] = Array(m * n).fill(false); + const f = (x: number): number => { + return ((x / 10) | 0) + (x % 10); }; - dfs(0, 0); - return set.size; -} -``` - -#### Rust - -```rust -use std::collections::{ HashSet, VecDeque }; -impl Solution { - pub fn moving_count(m: i32, n: i32, k: i32) -> i32 { - let mut set = HashSet::new(); - let mut queue = VecDeque::new(); - queue.push_back([0, 0]); - while let Some([i, j]) = queue.pop_front() { - let key = format!("{},{}", i, j); - if - i == m || - j == n || - set.contains(&key) || - k < - format!("{}{}", i, j) - .chars() - .map(|c| c.to_string().parse::().unwrap()) - .sum::() - { - continue; - } - set.insert(key); - queue.push_back([i + 1, j]); - queue.push_back([i, j + 1]); + const dfs = (i: number, j: number): number => { + if (i >= m || j >= n || vis[i * n + j] || f(i) + f(j) > k) { + return 0; } - set.len() as i32 - } + vis[i * n + j] = true; + return 1 + dfs(i + 1, j) + dfs(i, j + 1); + }; + return dfs(0, 0); } ``` @@ -239,14 +168,12 @@ impl Solution { * @return {number} */ var movingCount = function (m, n, k) { - const vis = new Array(m * n).fill(false); - let dfs = function (i, j) { - if ( - i >= m || - j >= n || - vis[i * n + j] || - (i % 10) + Math.floor(i / 10) + (j % 10) + Math.floor(j / 10) > k - ) { + const vis = Array(m * n).fill(false); + const f = x => { + return ((x / 10) | 0) + (x % 10); + }; + const dfs = (i, j) => { + if (i >= m || j >= n || vis[i * n + j] || f(i) + f(j) > k) { return 0; } vis[i * n + j] = true; @@ -279,146 +206,4 @@ public class Solution { - - -### 方法二 - - - -#### Python3 - -```python -class Solution: - def movingCount(self, m: int, n: int, k: int) -> int: - def f(x): - s = 0 - while x: - s += x % 10 - x //= 10 - return s - - def dfs(i, j): - if not (0 <= i < m) or not (0 <= j < n) or f(i) + f(j) > k or (i, j) in vis: - return 0 - vis.add((i, j)) - return 1 + dfs(i + 1, j) + dfs(i, j + 1) - - vis = set() - return dfs(0, 0) -``` - -#### Java - -```java -class Solution { - private boolean[][] vis; - private int m; - private int n; - private int k; - - public int movingCount(int m, int n, int k) { - this.m = m; - this.n = n; - this.k = k; - vis = new boolean[m][n]; - return dfs(0, 0); - } - - private int dfs(int i, int j) { - if (i >= m || j >= n || vis[i][j] || (i % 10 + i / 10 + j % 10 + j / 10) > k) { - return 0; - } - vis[i][j] = true; - return 1 + dfs(i + 1, j) + dfs(i, j + 1); - } -} -``` - -#### C++ - -```cpp -class Solution { -public: - int movingCount(int m, int n, int k) { - bool vis[m][n]; - memset(vis, false, sizeof vis); - auto f = [](int x) { - int s = 0; - for (; x; x /= 10) { - s += x % 10; - } - return s; - }; - function dfs = [&](int i, int j) -> int { - if (i < 0 || i >= m || j < 0 || j >= n || vis[i][j] || f(i) + f(j) > k) { - return false; - } - vis[i][j] = true; - return 1 + dfs(i + 1, j) + dfs(i, j + 1); - }; - return dfs(0, 0); - } -}; -``` - -#### Go - -```go -func movingCount(m int, n int, k int) (ans int) { - f := func(x int) (s int) { - for ; x > 0; x /= 10 { - s += x % 10 - } - return - } - vis := make([][]bool, m) - for i := range vis { - vis[i] = make([]bool, n) - } - - dirs := [3]int{1, 0, 1} - var dfs func(i, j int) - dfs = func(i, j int) { - vis[i][j] = true - ans++ - for l := 0; l < 2; l++ { - x, y := i+dirs[l], j+dirs[l+1] - if x >= 0 && x < m && y >= 0 && y < n && f(x)+f(y) <= k && !vis[x][y] { - dfs(x, y) - } - } - } - dfs(0, 0) - return -} -``` - -#### Rust - -```rust -impl Solution { - fn dfs(sign: &mut Vec>, k: usize, i: usize, j: usize) -> i32 { - if - i == sign.len() || - j == sign[0].len() || - sign[i][j] || - (j % 10) + ((j / 10) % 10) + (i % 10) + ((i / 10) % 10) > k - { - return 0; - } - sign[i][j] = true; - 1 + Self::dfs(sign, k, i + 1, j) + Self::dfs(sign, k, i, j + 1) - } - - pub fn moving_count(m: i32, n: i32, k: i32) -> i32 { - let mut sign = vec![vec![false; n as usize]; m as usize]; - Self::dfs(&mut sign, k as usize, 0, 0) - } -} -``` - - - - - diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.cpp" index 5493e23c6bf66..5879e9f242b77 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.cpp" +++ "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.cpp" @@ -3,26 +3,16 @@ class Solution { int movingCount(int m, int n, int k) { bool vis[m][n]; memset(vis, false, sizeof vis); - int ans = 0; - int dirs[3] = {1, 0, 1}; auto f = [](int x) { - int s = 0; - for (; x; x /= 10) { - s += x % 10; - } - return s; + return x / 10 + x % 10; }; - function dfs = [&](int i, int j) { - vis[i][j] = true; - ++ans; - for (int l = 0; l < 2; ++l) { - int x = i + dirs[l], y = j + dirs[l + 1]; - if (x >= 0 && x < m && y >= 0 && y < n && f(x) + f(y) <= k && !vis[x][y]) { - dfs(x, y); - } + function dfs = [&](int i, int j) -> int { + if (i < 0 || i >= m || j < 0 || j >= n || vis[i][j] || f(i) + f(j) > k) { + return false; } + vis[i][j] = true; + return 1 + dfs(i + 1, j) + dfs(i, j + 1); }; - dfs(0, 0); - return ans; + return dfs(0, 0); } }; \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.java" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.java" index 585ca76d088c6..e06104fcec7fa 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.java" +++ "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.java" @@ -3,34 +3,20 @@ class Solution { private int m; private int n; private int k; - private int ans; public int movingCount(int m, int n, int k) { this.m = m; this.n = n; this.k = k; vis = new boolean[m][n]; - dfs(0, 0); - return ans; + return dfs(0, 0); } - private void dfs(int i, int j) { - vis[i][j] = true; - ++ans; - int[] dirs = {1, 0, 1}; - for (int l = 0; l < 2; ++l) { - int x = i + dirs[l], y = j + dirs[l + 1]; - if (x >= 0 && x < m && y >= 0 && y < n && f(x) + f(y) <= k && !vis[x][y]) { - dfs(x, y); - } + private int dfs(int i, int j) { + if (i >= m || j >= n || vis[i][j] || (i % 10 + i / 10 + j % 10 + j / 10) > k) { + return 0; } - } - - private int f(int x) { - int s = 0; - for (; x > 0; x /= 10) { - s += x % 10; - } - return s; + vis[i][j] = true; + return 1 + dfs(i + 1, j) + dfs(i, j + 1); } } \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.js" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.js" index 775b813e91ae6..abcd4dd03a7b0 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.js" +++ "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.js" @@ -5,14 +5,12 @@ * @return {number} */ var movingCount = function (m, n, k) { - const vis = new Array(m * n).fill(false); - let dfs = function (i, j) { - if ( - i >= m || - j >= n || - vis[i * n + j] || - (i % 10) + Math.floor(i / 10) + (j % 10) + Math.floor(j / 10) > k - ) { + const vis = Array(m * n).fill(false); + const f = x => { + return ((x / 10) | 0) + (x % 10); + }; + const dfs = (i, j) => { + if (i >= m || j >= n || vis[i * n + j] || f(i) + f(j) > k) { return 0; } vis[i * n + j] = true; diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.py" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.py" index b36352407ab56..d176f5bfce2b9 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.py" +++ "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.py" @@ -1,23 +1,13 @@ class Solution: def movingCount(self, m: int, n: int, k: int) -> int: - def f(x): - s = 0 - while x: - s += x % 10 - x //= 10 - return s + def f(x: int) -> int: + return x // 10 + x % 10 def dfs(i, j): + if i >= m or j >= n or f(i) + f(j) > k or (i, j) in vis: + return 0 vis.add((i, j)) - nonlocal ans - ans += 1 - for a, b in pairwise(dirs): - x, y = i + a, j + b - if 0 <= x < m and 0 <= y < n and f(x) + f(y) <= k and (x, y) not in vis: - dfs(x, y) + return 1 + dfs(i + 1, j) + dfs(i, j + 1) vis = set() - ans = 0 - dirs = (0, 1, 0) - dfs(0, 0) - return ans + return dfs(0, 0) diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.rs" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.rs" deleted file mode 100644 index af85dc1f3bb34..0000000000000 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.rs" +++ /dev/null @@ -1,27 +0,0 @@ -use std::collections::{ HashSet, VecDeque }; -impl Solution { - pub fn moving_count(m: i32, n: i32, k: i32) -> i32 { - let mut set = HashSet::new(); - let mut queue = VecDeque::new(); - queue.push_back([0, 0]); - while let Some([i, j]) = queue.pop_front() { - let key = format!("{},{}", i, j); - if - i == m || - j == n || - set.contains(&key) || - k < - format!("{}{}", i, j) - .chars() - .map(|c| c.to_string().parse::().unwrap()) - .sum::() - { - continue; - } - set.insert(key); - queue.push_back([i + 1, j]); - queue.push_back([i, j + 1]); - } - set.len() as i32 - } -} diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.ts" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.ts" index 4d4a7c47dea0b..8ca750a3395e7 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.ts" +++ "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.ts" @@ -1,19 +1,14 @@ function movingCount(m: number, n: number, k: number): number { - const set = new Set(); - const dfs = (i: number, j: number) => { - const key = `${i},${j}`; - if ( - i === m || - j === n || - set.has(key) || - `${i}${j}`.split('').reduce((r, v) => r + Number(v), 0) > k - ) { - return; + const vis: boolean[] = Array(m * n).fill(false); + const f = (x: number): number => { + return ((x / 10) | 0) + (x % 10); + }; + const dfs = (i: number, j: number): number => { + if (i >= m || j >= n || vis[i * n + j] || f(i) + f(j) > k) { + return 0; } - set.add(key); - dfs(i + 1, j); - dfs(i, j + 1); + vis[i * n + j] = true; + return 1 + dfs(i + 1, j) + dfs(i, j + 1); }; - dfs(0, 0); - return set.size; + return dfs(0, 0); } diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.cpp" deleted file mode 100644 index 97d71c5c316c7..0000000000000 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.cpp" +++ /dev/null @@ -1,22 +0,0 @@ -class Solution { -public: - int movingCount(int m, int n, int k) { - bool vis[m][n]; - memset(vis, false, sizeof vis); - auto f = [](int x) { - int s = 0; - for (; x; x /= 10) { - s += x % 10; - } - return s; - }; - function dfs = [&](int i, int j) -> int { - if (i < 0 || i >= m || j < 0 || j >= n || vis[i][j] || f(i) + f(j) > k) { - return false; - } - vis[i][j] = true; - return 1 + dfs(i + 1, j) + dfs(i, j + 1); - }; - return dfs(0, 0); - } -}; \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.go" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.go" deleted file mode 100644 index 20fa0f3281ac7..0000000000000 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.go" +++ /dev/null @@ -1,27 +0,0 @@ -func movingCount(m int, n int, k int) (ans int) { - f := func(x int) (s int) { - for ; x > 0; x /= 10 { - s += x % 10 - } - return - } - vis := make([][]bool, m) - for i := range vis { - vis[i] = make([]bool, n) - } - - dirs := [3]int{1, 0, 1} - var dfs func(i, j int) - dfs = func(i, j int) { - vis[i][j] = true - ans++ - for l := 0; l < 2; l++ { - x, y := i+dirs[l], j+dirs[l+1] - if x >= 0 && x < m && y >= 0 && y < n && f(x)+f(y) <= k && !vis[x][y] { - dfs(x, y) - } - } - } - dfs(0, 0) - return -} \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.java" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.java" deleted file mode 100644 index e06104fcec7fa..0000000000000 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.java" +++ /dev/null @@ -1,22 +0,0 @@ -class Solution { - private boolean[][] vis; - private int m; - private int n; - private int k; - - public int movingCount(int m, int n, int k) { - this.m = m; - this.n = n; - this.k = k; - vis = new boolean[m][n]; - return dfs(0, 0); - } - - private int dfs(int i, int j) { - if (i >= m || j >= n || vis[i][j] || (i % 10 + i / 10 + j % 10 + j / 10) > k) { - return 0; - } - vis[i][j] = true; - return 1 + dfs(i + 1, j) + dfs(i, j + 1); - } -} \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.py" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.py" deleted file mode 100644 index eb1001d1914c3..0000000000000 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.py" +++ /dev/null @@ -1,17 +0,0 @@ -class Solution: - def movingCount(self, m: int, n: int, k: int) -> int: - def f(x): - s = 0 - while x: - s += x % 10 - x //= 10 - return s - - def dfs(i, j): - if not (0 <= i < m) or not (0 <= j < n) or f(i) + f(j) > k or (i, j) in vis: - return 0 - vis.add((i, j)) - return 1 + dfs(i + 1, j) + dfs(i, j + 1) - - vis = set() - return dfs(0, 0) diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.rs" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.rs" deleted file mode 100644 index 161b9fc85b07b..0000000000000 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution2.rs" +++ /dev/null @@ -1,19 +0,0 @@ -impl Solution { - fn dfs(sign: &mut Vec>, k: usize, i: usize, j: usize) -> i32 { - if - i == sign.len() || - j == sign[0].len() || - sign[i][j] || - (j % 10) + ((j / 10) % 10) + (i % 10) + ((i / 10) % 10) > k - { - return 0; - } - sign[i][j] = true; - 1 + Self::dfs(sign, k, i + 1, j) + Self::dfs(sign, k, i, j + 1) - } - - pub fn moving_count(m: i32, n: i32, k: i32) -> i32 { - let mut sign = vec![vec![false; n as usize]; m as usize]; - Self::dfs(&mut sign, k as usize, 0, 0) - } -} diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/README.md" index 82dc195744012..c2a9e20dca6ce 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/README.md" @@ -42,12 +42,12 @@ edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9 ### 方法一:动态规划 -我们定义 $dp[i]$ 表示正整数 $n$ 能获得的最大乘积,初始化 $dp[1] = 1$。答案即为 $dp[n]$。 +我们定义 $f[i]$ 表示正整数 $n$ 能获得的最大乘积,初始化 $f[1] = 1$。答案即为 $f[n]$。 状态转移方程为: $$ -dp[i] = max(dp[i], dp[i - j] \times j, (i - j) \times j) \quad (j \in [0, i)) +f[i] = \max(f[i], f[i - j] \times j, (i - j) \times j) \quad (j \in [0, i)) $$ 时间复杂度 $O(n^2)$,空间复杂度 $O(n)$。其中 $n$ 为正整数 $n$。 @@ -59,11 +59,11 @@ $$ ```python class Solution: def cuttingRope(self, n: int) -> int: - dp = [1] * (n + 1) + f = [1] * (n + 1) for i in range(2, n + 1): for j in range(1, i): - dp[i] = max(dp[i], dp[i - j] * j, (i - j) * j) - return dp[n] + f[i] = max(f[i], f[i - j] * j, (i - j) * j) + return f[n] ``` #### Java @@ -71,14 +71,14 @@ class Solution: ```java class Solution { public int cuttingRope(int n) { - int[] dp = new int[n + 1]; - dp[1] = 1; + int[] f = new int[n + 1]; + f[1] = 1; for (int i = 2; i <= n; ++i) { for (int j = 1; j < i; ++j) { - dp[i] = Math.max(Math.max(dp[i], dp[i - j] * j), (i - j) * j); + f[i] = Math.max(Math.max(f[i], f[i - j] * j), (i - j) * j); } } - return dp[n]; + return f[n]; } } ``` @@ -89,14 +89,14 @@ class Solution { class Solution { public: int cuttingRope(int n) { - vector dp(n + 1); - dp[1] = 1; + vector f(n + 1); + f[1] = 1; for (int i = 2; i <= n; ++i) { for (int j = 1; j < i; ++j) { - dp[i] = max(max(dp[i], dp[i - j] * j), (i - j) * j); + f[i] = max({f[i], f[i - j] * j, (i - j) * j}); } } - return dp[n]; + return f[n]; } }; ``` @@ -105,14 +105,14 @@ public: ```go func cuttingRope(n int) int { - dp := make([]int, n+1) - dp[1] = 1 + f := make([]int, n+1) + f[1] = 1 for i := 2; i <= n; i++ { for j := 1; j < i; j++ { - dp[i] = max(max(dp[i], dp[i-j]*j), (i-j)*j) + f[i] = max(f[i], f[i-j]*j, (i-j)*j) } } - return dp[n] + return f[n] } ``` @@ -120,17 +120,13 @@ func cuttingRope(n int) int { ```ts function cuttingRope(n: number): number { - if (n < 4) { - return n - 1; - } - const m = Math.floor(n / 3); - if (n % 3 == 0) { - return 3 ** m; - } - if (n % 3 == 1) { - return 3 ** (m - 1) * 4; + const f: number[] = Array(n + 1).fill(1); + for (let i = 2; i <= n; ++i) { + for (let j = 1; j < i; ++j) { + f[i] = Math.max(f[i], f[i - j] * j, (i - j) * j); + } } - return 3 ** m * 2; + return f[n]; } ``` @@ -139,11 +135,15 @@ function cuttingRope(n: number): number { ```rust impl Solution { pub fn cutting_rope(n: i32) -> i32 { - if n < 4 { - return n - 1; + let n = n as usize; + let mut f = vec![0; n + 1]; + f[1] = 1; + for i in 2..=n { + for j in 1..i { + f[i] = f[i].max(f[i - j] * j).max((i - j) * j); + } } - let count = (n - 2) / 3; - (3i32).pow(count as u32) * (n - count * 3) + f[n] as i32 } } ``` @@ -156,17 +156,13 @@ impl Solution { * @return {number} */ var cuttingRope = function (n) { - if (n < 4) { - return n - 1; - } - const m = Math.floor(n / 3); - if (n % 3 == 0) { - return 3 ** m; - } - if (n % 3 == 1) { - return 3 ** (m - 1) * 4; + const f = Array(n + 1).fill(1); + for (let i = 2; i <= n; ++i) { + for (let j = 1; j < i; ++j) { + f[i] = Math.max(f[i], f[i - j] * j, (i - j) * j); + } } - return 3 ** m * 2; + return f[n]; }; ``` @@ -175,16 +171,14 @@ var cuttingRope = function (n) { ```cs public class Solution { public int CuttingRope(int n) { - if (n < 4) { - return n - 1; - } - if (n % 3 == 0) { - return (int) Math.Pow(3, n / 3); - } - if (n % 3 == 1) { - return (int) Math.Pow(3, n / 3 - 1) * 4; + int[] f = new int[n + 1]; + f[1] = 1; + for (int i = 2; i <= n; ++i) { + for (int j = 1; j < i; ++j) { + f[i] = Math.Max(Math.Max(f[i], f[i - j] * j), (i - j) * j); + } } - return (int) Math.Pow(3, n / 3) * 2; + return f[n]; } } ``` @@ -273,6 +267,79 @@ func cuttingRope(n int) int { } ``` +#### TypeScript + +```ts +function cuttingRope(n: number): number { + if (n < 4) { + return n - 1; + } + const m = Math.floor(n / 3); + if (n % 3 == 0) { + return 3 ** m; + } + if (n % 3 == 1) { + return 3 ** (m - 1) * 4; + } + return 3 ** m * 2; +} +``` + +#### Rust + +```rust +impl Solution { + pub fn cutting_rope(n: i32) -> i32 { + if n < 4 { + return n - 1; + } + let count = (n - 2) / 3; + (3i32).pow(count as u32) * (n - count * 3) + } +} +``` + +#### JavaScript + +```js +/** + * @param {number} n + * @return {number} + */ +var cuttingRope = function (n) { + if (n < 4) { + return n - 1; + } + const m = Math.floor(n / 3); + if (n % 3 == 0) { + return 3 ** m; + } + if (n % 3 == 1) { + return 3 ** (m - 1) * 4; + } + return 3 ** m * 2; +}; +``` + +#### C# + +```cs +public class Solution { + public int CuttingRope(int n) { + if (n < 4) { + return n - 1; + } + if (n % 3 == 0) { + return (int) Math.Pow(3, n / 3); + } + if (n % 3 == 1) { + return (int) Math.Pow(3, n / 3 - 1) * 4; + } + return (int) Math.Pow(3, n / 3) * 2; + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.cpp" index 3f3c056001447..775b1185789e2 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.cpp" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.cpp" @@ -1,13 +1,13 @@ class Solution { public: int cuttingRope(int n) { - vector dp(n + 1); - dp[1] = 1; + vector f(n + 1); + f[1] = 1; for (int i = 2; i <= n; ++i) { for (int j = 1; j < i; ++j) { - dp[i] = max(max(dp[i], dp[i - j] * j), (i - j) * j); + f[i] = max({f[i], f[i - j] * j, (i - j) * j}); } } - return dp[n]; + return f[n]; } }; \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.cs" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.cs" index 68c0698421d5b..71a230a678bd3 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.cs" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.cs" @@ -1,14 +1,12 @@ -public class Solution { - public int CuttingRope(int n) { - if (n < 4) { - return n - 1; - } - if (n % 3 == 0) { - return (int) Math.Pow(3, n / 3); - } - if (n % 3 == 1) { - return (int) Math.Pow(3, n / 3 - 1) * 4; - } - return (int) Math.Pow(3, n / 3) * 2; - } -} +public class Solution { + public int CuttingRope(int n) { + int[] f = new int[n + 1]; + f[1] = 1; + for (int i = 2; i <= n; ++i) { + for (int j = 1; j < i; ++j) { + f[i] = Math.Max(Math.Max(f[i], f[i - j] * j), (i - j) * j); + } + } + return f[n]; + } +} diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.go" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.go" index 931b6ef4c06fa..64e6f24240a98 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.go" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.go" @@ -1,10 +1,10 @@ func cuttingRope(n int) int { - dp := make([]int, n+1) - dp[1] = 1 + f := make([]int, n+1) + f[1] = 1 for i := 2; i <= n; i++ { for j := 1; j < i; j++ { - dp[i] = max(max(dp[i], dp[i-j]*j), (i-j)*j) + f[i] = max(f[i], f[i-j]*j, (i-j)*j) } } - return dp[n] + return f[n] } \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.java" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.java" index 11fd766a8d8ce..3457f65853cdd 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.java" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.java" @@ -1,12 +1,12 @@ class Solution { public int cuttingRope(int n) { - int[] dp = new int[n + 1]; - dp[1] = 1; + int[] f = new int[n + 1]; + f[1] = 1; for (int i = 2; i <= n; ++i) { for (int j = 1; j < i; ++j) { - dp[i] = Math.max(Math.max(dp[i], dp[i - j] * j), (i - j) * j); + f[i] = Math.max(Math.max(f[i], f[i - j] * j), (i - j) * j); } } - return dp[n]; + return f[n]; } } \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.js" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.js" index 9c0b70b40312d..2ba7024201b27 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.js" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.js" @@ -3,15 +3,11 @@ * @return {number} */ var cuttingRope = function (n) { - if (n < 4) { - return n - 1; + const f = Array(n + 1).fill(1); + for (let i = 2; i <= n; ++i) { + for (let j = 1; j < i; ++j) { + f[i] = Math.max(f[i], f[i - j] * j, (i - j) * j); + } } - const m = Math.floor(n / 3); - if (n % 3 == 0) { - return 3 ** m; - } - if (n % 3 == 1) { - return 3 ** (m - 1) * 4; - } - return 3 ** m * 2; + return f[n]; }; diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.py" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.py" index 7cc305956c371..fc11fe7548085 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.py" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.py" @@ -1,7 +1,7 @@ class Solution: def cuttingRope(self, n: int) -> int: - dp = [1] * (n + 1) + f = [1] * (n + 1) for i in range(2, n + 1): for j in range(1, i): - dp[i] = max(dp[i], dp[i - j] * j, (i - j) * j) - return dp[n] + f[i] = max(f[i], f[i - j] * j, (i - j) * j) + return f[n] diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.rs" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.rs" index 9f71ac25e9c8e..9de5919109ac9 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.rs" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.rs" @@ -1,9 +1,13 @@ impl Solution { pub fn cutting_rope(n: i32) -> i32 { - if n < 4 { - return n - 1; + let n = n as usize; + let mut f = vec![0; n + 1]; + f[1] = 1; + for i in 2..=n { + for j in 1..i { + f[i] = f[i].max(f[i - j] * j).max((i - j) * j); + } } - let count = (n - 2) / 3; - (3i32).pow(count as u32) * (n - count * 3) + f[n] as i32 } } diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.ts" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.ts" index f39cb9de2aec0..534feb250ccae 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.ts" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.ts" @@ -1,13 +1,9 @@ function cuttingRope(n: number): number { - if (n < 4) { - return n - 1; + const f: number[] = Array(n + 1).fill(1); + for (let i = 2; i <= n; ++i) { + for (let j = 1; j < i; ++j) { + f[i] = Math.max(f[i], f[i - j] * j, (i - j) * j); + } } - const m = Math.floor(n / 3); - if (n % 3 == 0) { - return 3 ** m; - } - if (n % 3 == 1) { - return 3 ** (m - 1) * 4; - } - return 3 ** m * 2; + return f[n]; } diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.cs" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.cs" new file mode 100644 index 0000000000000..68c0698421d5b --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.cs" @@ -0,0 +1,14 @@ +public class Solution { + public int CuttingRope(int n) { + if (n < 4) { + return n - 1; + } + if (n % 3 == 0) { + return (int) Math.Pow(3, n / 3); + } + if (n % 3 == 1) { + return (int) Math.Pow(3, n / 3 - 1) * 4; + } + return (int) Math.Pow(3, n / 3) * 2; + } +} diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.js" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.js" new file mode 100644 index 0000000000000..9c0b70b40312d --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.js" @@ -0,0 +1,17 @@ +/** + * @param {number} n + * @return {number} + */ +var cuttingRope = function (n) { + if (n < 4) { + return n - 1; + } + const m = Math.floor(n / 3); + if (n % 3 == 0) { + return 3 ** m; + } + if (n % 3 == 1) { + return 3 ** (m - 1) * 4; + } + return 3 ** m * 2; +}; diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.rs" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.rs" new file mode 100644 index 0000000000000..9f71ac25e9c8e --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.rs" @@ -0,0 +1,9 @@ +impl Solution { + pub fn cutting_rope(n: i32) -> i32 { + if n < 4 { + return n - 1; + } + let count = (n - 2) / 3; + (3i32).pow(count as u32) * (n - count * 3) + } +} diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.ts" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.ts" new file mode 100644 index 0000000000000..f39cb9de2aec0 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution2.ts" @@ -0,0 +1,13 @@ +function cuttingRope(n: number): number { + if (n < 4) { + return n - 1; + } + const m = Math.floor(n / 3); + if (n % 3 == 0) { + return 3 ** m; + } + if (n % 3 == 1) { + return 3 ** (m - 1) * 4; + } + return 3 ** m * 2; +} diff --git a/solution/2700-2799/2705.Compact Object/README.md b/solution/2700-2799/2705.Compact Object/README.md index a28d199df66a7..159bfabead37e 100644 --- a/solution/2700-2799/2705.Compact Object/README.md +++ b/solution/2700-2799/2705.Compact Object/README.md @@ -82,7 +82,7 @@ function compactObject(obj: Obj): Obj { return obj; } if (Array.isArray(obj)) { - return obj.map(compactObject).filter(Boolean); + return obj.filter(Boolean).map(compactObject); } return Object.entries(obj).reduce((acc, [key, value]) => { const compactedValue = compactObject(value); @@ -106,7 +106,7 @@ var compactObject = function (obj) { return obj; } if (Array.isArray(obj)) { - return obj.map(compactObject).filter(Boolean); + return obj.filter(Boolean).map(compactObject); } return Object.entries(obj).reduce((acc, [key, value]) => { const compactedValue = compactObject(value); diff --git a/solution/2700-2799/2705.Compact Object/README_EN.md b/solution/2700-2799/2705.Compact Object/README_EN.md index 440aaf1d0006a..6397039224717 100644 --- a/solution/2700-2799/2705.Compact Object/README_EN.md +++ b/solution/2700-2799/2705.Compact Object/README_EN.md @@ -80,7 +80,7 @@ function compactObject(obj: Obj): Obj { return obj; } if (Array.isArray(obj)) { - return obj.map(compactObject).filter(Boolean); + return obj.filter(Boolean).map(compactObject); } return Object.entries(obj).reduce((acc, [key, value]) => { const compactedValue = compactObject(value); @@ -104,7 +104,7 @@ var compactObject = function (obj) { return obj; } if (Array.isArray(obj)) { - return obj.map(compactObject).filter(Boolean); + return obj.filter(Boolean).map(compactObject); } return Object.entries(obj).reduce((acc, [key, value]) => { const compactedValue = compactObject(value); diff --git a/solution/2700-2799/2705.Compact Object/Solution.js b/solution/2700-2799/2705.Compact Object/Solution.js index dfec608b4d8d8..eaecd7e3342e4 100644 --- a/solution/2700-2799/2705.Compact Object/Solution.js +++ b/solution/2700-2799/2705.Compact Object/Solution.js @@ -7,7 +7,7 @@ var compactObject = function (obj) { return obj; } if (Array.isArray(obj)) { - return obj.map(compactObject).filter(Boolean); + return obj.filter(Boolean).map(compactObject); } return Object.entries(obj).reduce((acc, [key, value]) => { const compactedValue = compactObject(value); diff --git a/solution/2700-2799/2705.Compact Object/Solution.ts b/solution/2700-2799/2705.Compact Object/Solution.ts index 847db1c486bc7..612e63ca509b3 100644 --- a/solution/2700-2799/2705.Compact Object/Solution.ts +++ b/solution/2700-2799/2705.Compact Object/Solution.ts @@ -5,7 +5,7 @@ function compactObject(obj: Obj): Obj { return obj; } if (Array.isArray(obj)) { - return obj.map(compactObject).filter(Boolean); + return obj.filter(Boolean).map(compactObject); } return Object.entries(obj).reduce((acc, [key, value]) => { const compactedValue = compactObject(value); From 27036e8f318da5e08924465f2220037250ab3944 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Tue, 21 May 2024 10:04:10 +0800 Subject: [PATCH 22/31] feat: update solutions to lcof problem: No.15 (#2862) --- .../README.md" | 79 ++++++------------- .../Solution.cpp" | 20 ++--- .../Solution.cs" | 10 --- .../Solution.go" | 12 +-- .../Solution.java" | 20 ++--- .../Solution.js" | 2 +- .../Solution.py" | 10 ++- .../Solution2.cpp" | 20 ++--- .../Solution2.go" | 12 +-- .../Solution2.java" | 20 ++--- .../Solution2.py" | 14 ++-- .../Solution3.py" | 7 -- 12 files changed, 91 insertions(+), 135 deletions(-) delete mode 100644 "lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.cs" delete mode 100644 "lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution3.py" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/README.md" index 95b67801c3b94..8ed75aaeba3c9 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/README.md" @@ -68,11 +68,9 @@ edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9 ### 方法一:位运算 -由于 `n & (n - 1)` 会消除 $n$ 的二进制表示中的最后一个 $1$,因此对 $n$ 重复该操作,直到 $n$ 变成 $0$,此时的操作次数即为 $n$ 的二进制表示中的 $1$ 的个数。 +由于 $n \& (n - 1)$ 可以消除 $n$ 的二进制表示中最右边的 1,因此不断执行 $n \& (n - 1)$,直到 $n = 0$,统计执行次数即可。 -或者,我们可以用 `lowbit` 函数来获取 $n$ 的二进制表示中的最后一个 $1$,然后将 $n$ 减去这个 $1$,再重复该操作,直到 $n$ 变成 $0$,此时的操作次数即为 $n$ 的二进制表示中的 $1$ 的个数。`lowbit(x)=x&(-x)`。 - -时间复杂度 $O(\log n)$,空间复杂度 $O(1)$。其中 $n$ 为输入的整数。 +时间复杂度 $O(\log n)$,空间复杂度 $O(1)$。 @@ -81,7 +79,11 @@ edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9 ```python class Solution: def hammingWeight(self, n: int) -> int: - return n.bit_count() + ans = 0 + while n: + n &= n - 1 + ans += 1 + return ans ``` #### Java @@ -92,7 +94,7 @@ public class Solution { public int hammingWeight(int n) { int ans = 0; while (n != 0) { - n &= n - 1; + n &= (n - 1); ++ans; } return ans; @@ -108,7 +110,7 @@ public: int hammingWeight(uint32_t n) { int ans = 0; while (n) { - n &= n - 1; + n &= (n - 1); ++ans; } return ans; @@ -119,9 +121,9 @@ public: #### Go ```go -func hammingWeight(num uint32) (ans int) { - for num != 0 { - num &= num - 1 +func hammingWeight(n uint32) (ans int) { + for n != 0 { + n &= n - 1 ans++ } return @@ -137,7 +139,7 @@ func hammingWeight(num uint32) (ans int) { */ var hammingWeight = function (n) { let ans = 0; - while (n != 0) { + while (n) { n &= n - 1; ++ans; } @@ -145,28 +147,17 @@ var hammingWeight = function (n) { }; ``` -#### C# - -```cs -public class Solution { - public int HammingWeight(uint n) { - int ans = 0; - while (n != 0) { - n &= (n - 1); - ++ans; - } - return ans; - } -} -``` - - + + +### 方法二:位运算(lowbit) + +根据位运算的性质,我们知道 $n \& (-n)$ 可以得到 $n$ 的二进制表示中最右边的 $1$,因此不断将 $n$ 减去 $n \& (-n)$,直到 $n = 0$,统计执行次数即可。 -### 方法二 +时间复杂度 $O(\log n)$,空间复杂度 $O(1)$。 @@ -177,7 +168,7 @@ class Solution: def hammingWeight(self, n: int) -> int: ans = 0 while n: - n &= n - 1 + n -= n & (-n) ans += 1 return ans ``` @@ -205,7 +196,7 @@ class Solution { public: int hammingWeight(uint32_t n) { int ans = 0; - while (n != 0) { + while (n) { n -= n & -n; ++ans; } @@ -217,9 +208,9 @@ public: #### Go ```go -func hammingWeight(num uint32) (ans int) { - for num != 0 { - num -= num & -num +func hammingWeight(n uint32) (ans int) { + for n != 0 { + n -= n & -n ans++ } return @@ -230,26 +221,4 @@ func hammingWeight(num uint32) (ans int) { - - -### 方法三 - - - -#### Python3 - -```python -class Solution: - def hammingWeight(self, n: int) -> int: - ans = 0 - while n: - n -= n & (-n) - ans += 1 - return ans -``` - - - - - diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.cpp" index a14f6399639df..6597c4f6f3206 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.cpp" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.cpp" @@ -1,11 +1,11 @@ -class Solution { -public: - int hammingWeight(uint32_t n) { - int ans = 0; - while (n) { - n &= n - 1; - ++ans; - } - return ans; - } +class Solution { +public: + int hammingWeight(uint32_t n) { + int ans = 0; + while (n) { + n &= (n - 1); + ++ans; + } + return ans; + } }; \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.cs" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.cs" deleted file mode 100644 index 5299e0d399a3b..0000000000000 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.cs" +++ /dev/null @@ -1,10 +0,0 @@ -public class Solution { - public int HammingWeight(uint n) { - int ans = 0; - while (n != 0) { - n &= (n - 1); - ++ans; - } - return ans; - } -} diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.go" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.go" index 6a498a5616a2a..0e32983870bbf 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.go" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.go" @@ -1,7 +1,7 @@ -func hammingWeight(num uint32) (ans int) { - for num != 0 { - num &= num - 1 - ans++ - } - return +func hammingWeight(n uint32) (ans int) { + for n != 0 { + n &= n - 1 + ans++ + } + return } \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.java" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.java" index d69a280bc99a1..957b98f01c0f5 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.java" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.java" @@ -1,11 +1,11 @@ -public class Solution { - // you need to treat n as an unsigned value - public int hammingWeight(int n) { - int ans = 0; - while (n != 0) { - n &= n - 1; - ++ans; - } - return ans; - } +public class Solution { + // you need to treat n as an unsigned value + public int hammingWeight(int n) { + int ans = 0; + while (n != 0) { + n &= (n - 1); + ++ans; + } + return ans; + } } \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.js" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.js" index ce6aec4399b62..f594a468a09e7 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.js" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.js" @@ -4,7 +4,7 @@ */ var hammingWeight = function (n) { let ans = 0; - while (n != 0) { + while (n) { n &= n - 1; ++ans; } diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.py" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.py" index e2bcead204feb..ca061dc93829e 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.py" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.py" @@ -1,3 +1,7 @@ -class Solution: - def hammingWeight(self, n: int) -> int: - return n.bit_count() +class Solution: + def hammingWeight(self, n: int) -> int: + ans = 0 + while n: + n &= n - 1 + ans += 1 + return ans diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.cpp" index d30b7874a6733..77eb90163170c 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.cpp" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.cpp" @@ -1,11 +1,11 @@ -class Solution { -public: - int hammingWeight(uint32_t n) { - int ans = 0; - while (n != 0) { - n -= n & -n; - ++ans; - } - return ans; - } +class Solution { +public: + int hammingWeight(uint32_t n) { + int ans = 0; + while (n) { + n -= n & -n; + ++ans; + } + return ans; + } }; \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.go" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.go" index 7a1451c406b07..2d1310ffe29e8 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.go" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.go" @@ -1,7 +1,7 @@ -func hammingWeight(num uint32) (ans int) { - for num != 0 { - num -= num & -num - ans++ - } - return +func hammingWeight(n uint32) (ans int) { + for n != 0 { + n -= n & -n + ans++ + } + return } \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.java" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.java" index a1aa3df2377dc..067633a20f789 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.java" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.java" @@ -1,11 +1,11 @@ -public class Solution { - // you need to treat n as an unsigned value - public int hammingWeight(int n) { - int ans = 0; - while (n != 0) { - n -= n & -n; - ++ans; - } - return ans; - } +public class Solution { + // you need to treat n as an unsigned value + public int hammingWeight(int n) { + int ans = 0; + while (n != 0) { + n -= n & -n; + ++ans; + } + return ans; + } } \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.py" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.py" index 171f0364b43a6..a9bcedda75867 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.py" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution2.py" @@ -1,7 +1,7 @@ -class Solution: - def hammingWeight(self, n: int) -> int: - ans = 0 - while n: - n &= n - 1 - ans += 1 - return ans +class Solution: + def hammingWeight(self, n: int) -> int: + ans = 0 + while n: + n -= n & (-n) + ans += 1 + return ans diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution3.py" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution3.py" deleted file mode 100644 index b3d2c526d9aaf..0000000000000 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution3.py" +++ /dev/null @@ -1,7 +0,0 @@ -class Solution: - def hammingWeight(self, n: int) -> int: - ans = 0 - while n: - n -= n & (-n) - ans += 1 - return ans From 6bb333dfdba90733d26797fb1dc50d839e281f49 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 13:54:00 +0800 Subject: [PATCH 23/31] --- (#2863) --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index f8a22eba2dc7b..a861898c020f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ black==24.3.0 -Requests==2.31.0 \ No newline at end of file +Requests==2.32.0 \ No newline at end of file From a9caf56de6bae1865ff970e978b5481ee9cdf90b Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Tue, 21 May 2024 08:32:30 +0100 Subject: [PATCH 24/31] feat: add swift implementation to lcof problem: No.12 (#2864) --- .../README.md" | 60 +++++++++++++++++++ .../Solution.swift" | 55 +++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23012. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23012. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23012. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204/README.md" index f664835e0af45..b17d31b163096 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23012. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23012. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204/README.md" @@ -366,6 +366,66 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + private var board: [[Character]] + private var word: String + private var m: Int + private var n: Int + + init() { + self.board = [] + self.word = "" + self.m = 0 + self.n = 0 + } + + func exist(_ board: [[Character]], _ word: String) -> Bool { + self.board = board + self.word = word + m = board.count + n = board[0].count + + for i in 0.. Bool { + if k == word.count { + return true + } + if i < 0 || i >= m || j < 0 || j >= n || board[i][j] != word[word.index(word.startIndex, offsetBy: k)] { + return false + } + + let temp = board[i][j] + board[i][j] = " " + let dirs = [-1, 0, 1, 0, -1] + var ans = false + + for l in 0..<4 { + let ni = i + dirs[l] + let nj = j + dirs[l + 1] + if dfs(ni, nj, k + 1) { + ans = true + break + } + } + + board[i][j] = temp + return ans + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23012. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23012. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204/Solution.swift" new file mode 100644 index 0000000000000..b0f3ef5fba206 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23012. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204/Solution.swift" @@ -0,0 +1,55 @@ +class Solution { + private var board: [[Character]] + private var word: String + private var m: Int + private var n: Int + + init() { + self.board = [] + self.word = "" + self.m = 0 + self.n = 0 + } + + func exist(_ board: [[Character]], _ word: String) -> Bool { + self.board = board + self.word = word + m = board.count + n = board[0].count + + for i in 0.. Bool { + if k == word.count { + return true + } + if i < 0 || i >= m || j < 0 || j >= n || board[i][j] != word[word.index(word.startIndex, offsetBy: k)] { + return false + } + + let temp = board[i][j] + board[i][j] = " " + let dirs = [-1, 0, 1, 0, -1] + var ans = false + + for l in 0..<4 { + let ni = i + dirs[l] + let nj = j + dirs[l + 1] + if dfs(ni, nj, k + 1) { + ans = true + break + } + } + + board[i][j] = temp + return ans + } +} From d449a8aa8afbfb57b0f5a1ba9834e9046c8329fa Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Tue, 21 May 2024 08:32:55 +0100 Subject: [PATCH 25/31] feat: add swift implementation to lcof problem: No.13 (#2865) --- .../README.md" | 37 +++++++++++++++++++ .../Solution.swift" | 32 ++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/README.md" index 0c3ffee1042ac..4669f968fe929 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/README.md" @@ -202,6 +202,43 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + private var vis: [[Bool]] = [] + private var m: Int = 0 + private var n: Int = 0 + private var k: Int = 0 + + func movingCount(_ m: Int, _ n: Int, _ k: Int) -> Int { + self.m = m + self.n = n + self.k = k + self.vis = Array(repeating: Array(repeating: false, count: n), count: m) + return dfs(0, 0) + } + + private func dfs(_ i: Int, _ j: Int) -> Int { + if i >= m || j >= n || vis[i][j] || (digitSum(i) + digitSum(j)) > k { + return 0 + } + vis[i][j] = true + return 1 + dfs(i + 1, j) + dfs(i, j + 1) + } + + private func digitSum(_ num: Int) -> Int { + var num = num + var sum = 0 + while num > 0 { + sum += num % 10 + num /= 10 + } + return sum + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.swift" new file mode 100644 index 0000000000000..23f250fea758f --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23013. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264/Solution.swift" @@ -0,0 +1,32 @@ +class Solution { + private var vis: [[Bool]] = [] + private var m: Int = 0 + private var n: Int = 0 + private var k: Int = 0 + + func movingCount(_ m: Int, _ n: Int, _ k: Int) -> Int { + self.m = m + self.n = n + self.k = k + self.vis = Array(repeating: Array(repeating: false, count: n), count: m) + return dfs(0, 0) + } + + private func dfs(_ i: Int, _ j: Int) -> Int { + if i >= m || j >= n || vis[i][j] || (digitSum(i) + digitSum(j)) > k { + return 0 + } + vis[i][j] = true + return 1 + dfs(i + 1, j) + dfs(i, j + 1) + } + + private func digitSum(_ num: Int) -> Int { + var num = num + var sum = 0 + while num > 0 { + sum += num % 10 + num /= 10 + } + return sum + } +} From 7796a595b285f23a13d89c490218e874609aa563 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Tue, 21 May 2024 08:33:13 +0100 Subject: [PATCH 26/31] feat: add swift implementation to lcof problem: No.14.1 (#2866) --- .../README.md" | 17 +++++++++++++++++ .../Solution.swift" | 12 ++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/README.md" index c2a9e20dca6ce..7bd4e7328cbec 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/README.md" @@ -183,6 +183,23 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + func cuttingRope(_ n: Int) -> Int { + var f = [Int](repeating: 0, count: n + 1) + f[1] = 1 + for i in 2...n { + for j in 1.. diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.swift" new file mode 100644 index 0000000000000..8b9f50f90c547 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- I. \345\211\252\347\273\263\345\255\220/Solution.swift" @@ -0,0 +1,12 @@ +class Solution { + func cuttingRope(_ n: Int) -> Int { + var f = [Int](repeating: 0, count: n + 1) + f[1] = 1 + for i in 2...n { + for j in 1.. Date: Tue, 21 May 2024 08:33:44 +0100 Subject: [PATCH 27/31] feat: add swift implementation to lcof problem: No.14.2 (#2867) --- .../README.md" | 35 +++++++++++++++++++ .../Solution.swift" | 30 ++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23014- II. \345\211\252\347\273\263\345\255\220 II/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- II. \345\211\252\347\273\263\345\255\220 II/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23014- II. \345\211\252\347\273\263\345\255\220 II/README.md" index 67dabbe6f5408..487dd0eb42c17 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23014- II. \345\211\252\347\273\263\345\255\220 II/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- II. \345\211\252\347\273\263\345\255\220 II/README.md" @@ -232,6 +232,41 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + private let mod = 1000000007 + + func cuttingRope(_ n: Int) -> Int { + if n < 4 { + return n - 1 + } + if n % 3 == 0 { + return qpow(3, n / 3) + } + if n % 3 == 1 { + return (4 * qpow(3, n / 3 - 1)) % mod + } + return (2 * qpow(3, n / 3)) % mod + } + + private func qpow(_ a: Int, _ n: Int) -> Int { + var a = a + var n = n + var ans: Int = 1 + while n > 0 { + if (n & 1) == 1 { + ans = (ans * a) % mod + } + a = (a * a) % mod + n >>= 1 + } + return ans + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23014- II. \345\211\252\347\273\263\345\255\220 II/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23014- II. \345\211\252\347\273\263\345\255\220 II/Solution.swift" new file mode 100644 index 0000000000000..9df2ccbe9eea8 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23014- II. \345\211\252\347\273\263\345\255\220 II/Solution.swift" @@ -0,0 +1,30 @@ +class Solution { + private let mod = 1000000007 + + func cuttingRope(_ n: Int) -> Int { + if n < 4 { + return n - 1 + } + if n % 3 == 0 { + return qpow(3, n / 3) + } + if n % 3 == 1 { + return (4 * qpow(3, n / 3 - 1)) % mod + } + return (2 * qpow(3, n / 3)) % mod + } + + private func qpow(_ a: Int, _ n: Int) -> Int { + var a = a + var n = n + var ans: Int = 1 + while n > 0 { + if (n & 1) == 1 { + ans = (ans * a) % mod + } + a = (a * a) % mod + n >>= 1 + } + return ans + } +} From d6c9b4fc612259b45ddfe6e3f283b31698c9fbe9 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Tue, 21 May 2024 08:34:06 +0100 Subject: [PATCH 28/31] feat: add swift implementation to lcof problem: No.15 (#2868) --- .../README.md" | 16 ++++++++++++++++ .../Solution.swift" | 11 +++++++++++ 2 files changed, 27 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/README.md" index 8ed75aaeba3c9..afe7bcb69802f 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/README.md" @@ -147,6 +147,22 @@ var hammingWeight = function (n) { }; ``` +#### Swift + +```swift +class Solution { + func hammingWeight(_ n: Int) -> Int { + var n = n + var ans = 0 + while n != 0 { + n &= (n - 1) + ans += 1 + } + return ans + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.swift" new file mode 100644 index 0000000000000..f8a8eb1902d03 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23015. \344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260/Solution.swift" @@ -0,0 +1,11 @@ +class Solution { + func hammingWeight(_ n: Int) -> Int { + var n = n + var ans = 0 + while n != 0 { + n &= (n - 1) + ans += 1 + } + return ans + } +} From c954041783fc3204209167b0597fd65b7099c435 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Tue, 21 May 2024 08:34:36 +0100 Subject: [PATCH 29/31] feat: add swift implementation to lcof problem: No.16 (#2869) --- .../README.md" | 26 +++++++++++++++++++ .../Solution.swift" | 21 +++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23016. \346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23016. \346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23016. \346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271/README.md" index 1808d49592873..b57a8ca41dfa1 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23016. \346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23016. \346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271/README.md" @@ -237,6 +237,32 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + func myPow(_ x: Double, _ n: Int) -> Double { + return n >= 0 ? qpow(x, Int64(n)) : 1 / qpow(x, -Int64(n)) + } + + private func qpow(_ a: Double, _ n: Int64) -> Double { + var ans: Double = 1 + var base: Double = a + var exponent: Int64 = n + + while exponent > 0 { + if (exponent & 1) == 1 { + ans *= base + } + base *= base + exponent >>= 1 + } + + return ans + } +} +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23016. \346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23016. \346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271/Solution.swift" new file mode 100644 index 0000000000000..da8c8e9ca3eca --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23016. \346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271/Solution.swift" @@ -0,0 +1,21 @@ +class Solution { + func myPow(_ x: Double, _ n: Int) -> Double { + return n >= 0 ? qpow(x, Int64(n)) : 1 / qpow(x, -Int64(n)) + } + + private func qpow(_ a: Double, _ n: Int64) -> Double { + var ans: Double = 1 + var base: Double = a + var exponent: Int64 = n + + while exponent > 0 { + if (exponent & 1) == 1 { + ans *= base + } + base *= base + exponent >>= 1 + } + + return ans + } +} \ No newline at end of file From 3c5c2d62dc570623c89d030c3701691c3549f59a Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Tue, 21 May 2024 17:51:04 +0800 Subject: [PATCH 30/31] feat: add solutions to lc problem: No.2831 (#2870) No.2831.Find the Longest Equal Subarray --- .github/workflows/deploy.yml | 3 - .../README.md | 130 ++++++++++++++++++ .../README_EN.md | 130 ++++++++++++++++++ .../Solution2.cpp | 21 +++ .../Solution2.go | 16 +++ .../Solution2.java | 21 +++ .../Solution2.py | 13 ++ .../Solution2.ts | 18 +++ 8 files changed, 349 insertions(+), 3 deletions(-) create mode 100644 solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.cpp create mode 100644 solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.go create mode 100644 solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.java create mode 100644 solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.py create mode 100644 solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.ts diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 048f35f94c4d9..96213bc3f790d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,10 +4,7 @@ on: push: branches: - main - - docs paths: - - package.json - - requirements.txt - solution/** - lcs/** - lcp/** diff --git a/solution/2800-2899/2831.Find the Longest Equal Subarray/README.md b/solution/2800-2899/2831.Find the Longest Equal Subarray/README.md index 5475d42d547ec..ce48046e0610f 100644 --- a/solution/2800-2899/2831.Find the Longest Equal Subarray/README.md +++ b/solution/2800-2899/2831.Find the Longest Equal Subarray/README.md @@ -179,4 +179,134 @@ function longestEqualSubarray(nums: number[], k: number): number { + + +### 方法二:哈希表 + 双指针(写法二) + +我们可以用一个哈希表 $g$ 维护每个元素的下标列表。 + +接下来,我们枚举每个元素作为等值元素,我们从哈希表 $g$ 中取出这个元素的下标列表 $ids$,然后我们定义两个指针 $l$ 和 $r$,用于维护一个窗口,使得窗口内的元素个数减去等值元素的个数,结果不超过 $k$。那么我们只需要求出最大的满足条件的窗口即可。 + +时间复杂度 $O(n)$,空间复杂度 $O(n)$。其中 $n$ 是数组的长度。 + + + +#### Python3 + +```python +class Solution: + def longestEqualSubarray(self, nums: List[int], k: int) -> int: + g = defaultdict(list) + for i, x in enumerate(nums): + g[x].append(i) + ans = 0 + for ids in g.values(): + l = 0 + for r in range(len(ids)): + while ids[r] - ids[l] - (r - l) > k: + l += 1 + ans = max(ans, r - l + 1) + return ans +``` + +#### Java + +```java +class Solution { + public int longestEqualSubarray(List nums, int k) { + int n = nums.size(); + List[] g = new List[n + 1]; + Arrays.setAll(g, i -> new ArrayList<>()); + for (int i = 0; i < n; ++i) { + g[nums.get(i)].add(i); + } + int ans = 0; + for (List ids : g) { + int l = 0; + for (int r = 0; r < ids.size(); ++r) { + while (ids.get(r) - ids.get(l) - (r - l) > k) { + ++l; + } + ans = Math.max(ans, r - l + 1); + } + } + return ans; + } +} +``` + +#### C++ + +```cpp +class Solution { +public: + int longestEqualSubarray(vector& nums, int k) { + int n = nums.size(); + vector g[n + 1]; + for (int i = 0; i < n; ++i) { + g[nums[i]].push_back(i); + } + int ans = 0; + for (const auto& ids : g) { + int l = 0; + for (int r = 0; r < ids.size(); ++r) { + while (ids[r] - ids[l] - (r - l) > k) { + ++l; + } + ans = max(ans, r - l + 1); + } + } + return ans; + } +}; +``` + +#### Go + +```go +func longestEqualSubarray(nums []int, k int) (ans int) { + g := make([][]int, len(nums)+1) + for i, x := range nums { + g[x] = append(g[x], i) + } + for _, ids := range g { + l := 0 + for r := range ids { + for ids[r]-ids[l]-(r-l) > k { + l++ + } + ans = max(ans, r-l+1) + } + } + return +} +``` + +#### TypeScript + +```ts +function longestEqualSubarray(nums: number[], k: number): number { + const n = nums.length; + const g: number[][] = Array.from({ length: n + 1 }, () => []); + for (let i = 0; i < n; ++i) { + g[nums[i]].push(i); + } + let ans = 0; + for (const ids of g) { + let l = 0; + for (let r = 0; r < ids.length; ++r) { + while (ids[r] - ids[l] - (r - l) > k) { + ++l; + } + ans = Math.max(ans, r - l + 1); + } + } + return ans; +} +``` + + + + + diff --git a/solution/2800-2899/2831.Find the Longest Equal Subarray/README_EN.md b/solution/2800-2899/2831.Find the Longest Equal Subarray/README_EN.md index 63efd02282c4f..b2b7a4349b160 100644 --- a/solution/2800-2899/2831.Find the Longest Equal Subarray/README_EN.md +++ b/solution/2800-2899/2831.Find the Longest Equal Subarray/README_EN.md @@ -177,4 +177,134 @@ function longestEqualSubarray(nums: number[], k: number): number { + + +### Solution 2: Hash Table + Two Pointers (Method 2) + +We can use a hash table $g$ to maintain the index list of each element. + +Next, we enumerate each element as the equal value element. We take out the index list $ids$ of this element from the hash table $g$. Then we define two pointers $l$ and $r$ to maintain a window, so that the number of elements in the window minus the number of equal value elements does not exceed $k$. Therefore, we only need to find the largest window that meets the condition. + +The time complexity is $O(n)$, and the space complexity is $O(n)$. Where $n$ is the length of the array. + + + +#### Python3 + +```python +class Solution: + def longestEqualSubarray(self, nums: List[int], k: int) -> int: + g = defaultdict(list) + for i, x in enumerate(nums): + g[x].append(i) + ans = 0 + for ids in g.values(): + l = 0 + for r in range(len(ids)): + while ids[r] - ids[l] - (r - l) > k: + l += 1 + ans = max(ans, r - l + 1) + return ans +``` + +#### Java + +```java +class Solution { + public int longestEqualSubarray(List nums, int k) { + int n = nums.size(); + List[] g = new List[n + 1]; + Arrays.setAll(g, i -> new ArrayList<>()); + for (int i = 0; i < n; ++i) { + g[nums.get(i)].add(i); + } + int ans = 0; + for (List ids : g) { + int l = 0; + for (int r = 0; r < ids.size(); ++r) { + while (ids.get(r) - ids.get(l) - (r - l) > k) { + ++l; + } + ans = Math.max(ans, r - l + 1); + } + } + return ans; + } +} +``` + +#### C++ + +```cpp +class Solution { +public: + int longestEqualSubarray(vector& nums, int k) { + int n = nums.size(); + vector g[n + 1]; + for (int i = 0; i < n; ++i) { + g[nums[i]].push_back(i); + } + int ans = 0; + for (const auto& ids : g) { + int l = 0; + for (int r = 0; r < ids.size(); ++r) { + while (ids[r] - ids[l] - (r - l) > k) { + ++l; + } + ans = max(ans, r - l + 1); + } + } + return ans; + } +}; +``` + +#### Go + +```go +func longestEqualSubarray(nums []int, k int) (ans int) { + g := make([][]int, len(nums)+1) + for i, x := range nums { + g[x] = append(g[x], i) + } + for _, ids := range g { + l := 0 + for r := range ids { + for ids[r]-ids[l]-(r-l) > k { + l++ + } + ans = max(ans, r-l+1) + } + } + return +} +``` + +#### TypeScript + +```ts +function longestEqualSubarray(nums: number[], k: number): number { + const n = nums.length; + const g: number[][] = Array.from({ length: n + 1 }, () => []); + for (let i = 0; i < n; ++i) { + g[nums[i]].push(i); + } + let ans = 0; + for (const ids of g) { + let l = 0; + for (let r = 0; r < ids.length; ++r) { + while (ids[r] - ids[l] - (r - l) > k) { + ++l; + } + ans = Math.max(ans, r - l + 1); + } + } + return ans; +} +``` + + + + + diff --git a/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.cpp b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.cpp new file mode 100644 index 0000000000000..cc6c2fefd2128 --- /dev/null +++ b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.cpp @@ -0,0 +1,21 @@ +class Solution { +public: + int longestEqualSubarray(vector& nums, int k) { + int n = nums.size(); + vector g[n + 1]; + for (int i = 0; i < n; ++i) { + g[nums[i]].push_back(i); + } + int ans = 0; + for (const auto& ids : g) { + int l = 0; + for (int r = 0; r < ids.size(); ++r) { + while (ids[r] - ids[l] - (r - l) > k) { + ++l; + } + ans = max(ans, r - l + 1); + } + } + return ans; + } +}; \ No newline at end of file diff --git a/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.go b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.go new file mode 100644 index 0000000000000..24ae8cc49d3ac --- /dev/null +++ b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.go @@ -0,0 +1,16 @@ +func longestEqualSubarray(nums []int, k int) (ans int) { + g := make([][]int, len(nums)+1) + for i, x := range nums { + g[x] = append(g[x], i) + } + for _, ids := range g { + l := 0 + for r := range ids { + for ids[r]-ids[l]-(r-l) > k { + l++ + } + ans = max(ans, r-l+1) + } + } + return +} \ No newline at end of file diff --git a/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.java b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.java new file mode 100644 index 0000000000000..3e1109d62ccae --- /dev/null +++ b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.java @@ -0,0 +1,21 @@ +class Solution { + public int longestEqualSubarray(List nums, int k) { + int n = nums.size(); + List[] g = new List[n + 1]; + Arrays.setAll(g, i -> new ArrayList<>()); + for (int i = 0; i < n; ++i) { + g[nums.get(i)].add(i); + } + int ans = 0; + for (List ids : g) { + int l = 0; + for (int r = 0; r < ids.size(); ++r) { + while (ids.get(r) - ids.get(l) - (r - l) > k) { + ++l; + } + ans = Math.max(ans, r - l + 1); + } + } + return ans; + } +} \ No newline at end of file diff --git a/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.py b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.py new file mode 100644 index 0000000000000..1a53f9027e776 --- /dev/null +++ b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.py @@ -0,0 +1,13 @@ +class Solution: + def longestEqualSubarray(self, nums: List[int], k: int) -> int: + g = defaultdict(list) + for i, x in enumerate(nums): + g[x].append(i) + ans = 0 + for ids in g.values(): + l = 0 + for r in range(len(ids)): + while ids[r] - ids[l] - (r - l) > k: + l += 1 + ans = max(ans, r - l + 1) + return ans diff --git a/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.ts b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.ts new file mode 100644 index 0000000000000..d62cdcef1a59c --- /dev/null +++ b/solution/2800-2899/2831.Find the Longest Equal Subarray/Solution2.ts @@ -0,0 +1,18 @@ +function longestEqualSubarray(nums: number[], k: number): number { + const n = nums.length; + const g: number[][] = Array.from({ length: n + 1 }, () => []); + for (let i = 0; i < n; ++i) { + g[nums[i]].push(i); + } + let ans = 0; + for (const ids of g) { + let l = 0; + for (let r = 0; r < ids.length; ++r) { + while (ids[r] - ids[l] - (r - l) > k) { + ++l; + } + ans = Math.max(ans, r - l + 1); + } + } + return ans; +} From 376855343c4d422178431b6fcd30749f3b06e114 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Tue, 21 May 2024 20:03:38 +0800 Subject: [PATCH 31/31] feat: update solutions to lcof problems: No.26,27,30 (#2871) --- .../README.md" | 26 +- .../Solution.cpp" | 12 +- .../README.md" | 32 -- .../Solution2.py" | 17 - .../README.md" | 331 +----------------- 5 files changed, 36 insertions(+), 382 deletions(-) delete mode 100644 "lcof/\351\235\242\350\257\225\351\242\23027. \344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217/Solution2.py" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23026. \346\240\221\347\232\204\345\255\220\347\273\223\346\236\204/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23026. \346\240\221\347\232\204\345\255\220\347\273\223\346\236\204/README.md" index 84e16d479c851..ade43a9c88d4f 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23026. \346\240\221\347\232\204\345\255\220\347\273\223\346\236\204/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23026. \346\240\221\347\232\204\345\255\220\347\273\223\346\236\204/README.md" @@ -52,7 +52,19 @@ edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9 -### 方法一 +### 方法一:递归 + +我们设计一个函数 $\text{dfs}(A, B)$,用于判断树 A 中以节点 A 为根节点的子树是否包含树 B。 + +函数 $\text{dfs}(A, B)$ 的执行步骤如下: + +1. 如果树 B 为空,则树 B 是树 A 的子结构,返回 `true`; +2. 如果树 A 为空,或者树 A 的根节点的值不等于树 B 的根节点的值,则树 B 不是树 A 的子结构,返回 `false`; +3. 判断树 A 的左子树是否包含树 B,即调用 $\text{dfs}(A.left, B)$,并且判断树 A 的右子树是否包含树 B,即调用 $\text{dfs}(A.right, B)$。如果其中有一个函数返回 `false`,则树 B 不是树 A 的子结构,返回 `false`;否则,返回 `true`。 + +在函数 `isSubStructure` 中,我们首先判断树 A 和树 B 是否为空,如果其中有一个为空,则树 B 不是树 A 的子结构,返回 `false`。然后,我们调用 $\text{dfs}(A, B)$,判断树 A 是否包含树 B。如果是,则返回 `true`;否则,递归判断树 A 的左子树是否包含树 B,以及树 A 的右子树是否包含树 B。如果其中有一个返回 `true`,则树 B 是树 A 的子结构,返回 `true`;否则,返回 `false`。 + +时间复杂度 $O(n \times m)$,空间复杂度 $O(n)$。其中 $n$ 和 $m$ 分别是树 A 和树 B 的节点个数。 @@ -130,13 +142,19 @@ class Solution { class Solution { public: bool isSubStructure(TreeNode* A, TreeNode* B) { - if (!A || !B) return 0; + if (!A || !B) { + return false; + } return dfs(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B); } bool dfs(TreeNode* A, TreeNode* B) { - if (!B) return 1; - if (!A || A->val != B->val) return 0; + if (!B) { + return true; + } + if (!A || A->val != B->val) { + return false; + } return dfs(A->left, B->left) && dfs(A->right, B->right); } }; diff --git "a/lcof/\351\235\242\350\257\225\351\242\23026. \346\240\221\347\232\204\345\255\220\347\273\223\346\236\204/Solution.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23026. \346\240\221\347\232\204\345\255\220\347\273\223\346\236\204/Solution.cpp" index ce75569f3aeb2..416393d117451 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23026. \346\240\221\347\232\204\345\255\220\347\273\223\346\236\204/Solution.cpp" +++ "b/lcof/\351\235\242\350\257\225\351\242\23026. \346\240\221\347\232\204\345\255\220\347\273\223\346\236\204/Solution.cpp" @@ -10,13 +10,19 @@ class Solution { public: bool isSubStructure(TreeNode* A, TreeNode* B) { - if (!A || !B) return 0; + if (!A || !B) { + return false; + } return dfs(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B); } bool dfs(TreeNode* A, TreeNode* B) { - if (!B) return 1; - if (!A || A->val != B->val) return 0; + if (!B) { + return true; + } + if (!A || A->val != B->val) { + return false; + } return dfs(A->left, B->left) && dfs(A->right, B->right); } }; \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23027. \344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23027. \344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217/README.md" index 3777ac1f3556e..31a1c1b436022 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23027. \344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23027. \344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217/README.md" @@ -285,36 +285,4 @@ public class Solution { - - -### 方法二 - - - -#### Python3 - -```python -# Definition for a binary tree node. -# class TreeNode: -# def __init__(self, x): -# self.val = x -# self.left = None -# self.right = None - - -class Solution: - def mirrorTree(self, root: TreeNode) -> TreeNode: - if root is None: - return root - left = self.mirrorTree(root.left) - right = self.mirrorTree(root.right) - root.left = right - root.right = left - return root -``` - - - - - diff --git "a/lcof/\351\235\242\350\257\225\351\242\23027. \344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217/Solution2.py" "b/lcof/\351\235\242\350\257\225\351\242\23027. \344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217/Solution2.py" deleted file mode 100644 index 9876e281340a4..0000000000000 --- "a/lcof/\351\235\242\350\257\225\351\242\23027. \344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217/Solution2.py" +++ /dev/null @@ -1,17 +0,0 @@ -# Definition for a binary tree node. -# class TreeNode: -# def __init__(self, x): -# self.val = x -# self.left = None -# self.right = None - - -class Solution: - def mirrorTree(self, root: TreeNode) -> TreeNode: - if root is None: - return root - left = self.mirrorTree(root.left) - right = self.mirrorTree(root.right) - root.left = right - root.right = left - return root diff --git "a/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/README.md" index c0920da92f184..7da218b6c8b54 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/README.md" @@ -40,7 +40,11 @@ minStack.min(); --> 返回 -2.

    注意:本题与主站 155 题相同:https://leetcode.cn/problems/min-stack/

    -**方法一:双栈** +## 解法 + + + +### 方法一:双栈 我们用两个栈来实现,其中`stk1` 用来存储数据,`stk2` 用来存储当前栈中的最小值。初始时,`stk2` 中存储一个极大值。 @@ -53,331 +57,6 @@ minStack.min(); --> 返回 -2. -### **Python3** - - - -#### Python3 - -```python -class MinStack: - def __init__(self): - self.stk1 = [] - self.stk2 = [inf] - - def push(self, x: int) -> None: - self.stk1.append(x) - self.stk2.append(min(x, self.stk2[-1])) - - def pop(self) -> None: - self.stk1.pop() - self.stk2.pop() - - def top(self) -> int: - return self.stk1[-1] - - def getMin(self) -> int: - return self.stk2[-1] - - -# Your MinStack object will be instantiated and called as such: -# obj = MinStack() -# obj.push(x) -# obj.pop() -# param_3 = obj.top() -# param_4 = obj.getMin() -``` - -### **Java** - - - -#### Java - -```java -class MinStack { - private Deque stk1 = new ArrayDeque<>(); - private Deque stk2 = new ArrayDeque<>(); - - /** initialize your data structure here. */ - public MinStack() { - stk2.push(Integer.MAX_VALUE); - } - - public void push(int x) { - stk1.push(x); - stk2.push(Math.min(x, stk2.peek())); - } - - public void pop() { - stk1.pop(); - stk2.pop(); - } - - public int top() { - return stk1.peek(); - } - - public int getMin() { - return stk2.peek(); - } -} - -/** - * Your MinStack object will be instantiated and called as such: - * MinStack obj = new MinStack(); - * obj.push(x); - * obj.pop(); - * int param_3 = obj.top(); - * int param_4 = obj.getMin(); - */ -``` - -### **C++** - -#### C++ - -```cpp -class MinStack { -public: - /** initialize your data structure here. */ - MinStack() { - stk2.push(INT_MAX); - } - - void push(int x) { - stk1.push(x); - stk2.push(min(x, stk2.top())); - } - - void pop() { - stk1.pop(); - stk2.pop(); - } - - int top() { - return stk1.top(); - } - - int getMin() { - return stk2.top(); - } - -private: - stack stk1; - stack stk2; -}; - -/** - * Your MinStack object will be instantiated and called as such: - * MinStack* obj = new MinStack(); - * obj->push(x); - * obj->pop(); - * int param_3 = obj->top(); - * int param_4 = obj->getMin(); - */ -``` - -### **Go** - -#### Go - -```go -type MinStack struct { - stk1 []int - stk2 []int -} - -/** initialize your data structure here. */ -func Constructor() MinStack { - return MinStack{[]int{}, []int{math.MaxInt32}} -} - -func (this *MinStack) Push(x int) { - this.stk1 = append(this.stk1, x) - this.stk2 = append(this.stk2, min(x, this.stk2[len(this.stk2)-1])) -} - -func (this *MinStack) Pop() { - this.stk1 = this.stk1[:len(this.stk1)-1] - this.stk2 = this.stk2[:len(this.stk2)-1] -} - -func (this *MinStack) Top() int { - return this.stk1[len(this.stk1)-1] -} - -func (this *MinStack) GetMin() int { - return this.stk2[len(this.stk2)-1] -} - -/** - * Your MinStack object will be instantiated and called as such: - * obj := Constructor(); - * obj.Push(x); - * obj.Pop(); - * param_3 := obj.Top(); - * param_4 := obj.GetMin(); - */ -``` - -### **TypeScript** - -#### TypeScript - -```ts -class MinStack { - stack: number[]; - mins: number[]; - constructor() { - this.stack = []; - this.mins = []; - } - - push(x: number): void { - this.stack.push(x); - this.mins.push(Math.min(this.getMin(), x)); - } - - pop(): void { - this.stack.pop(); - this.mins.pop(); - } - - top(): number { - return this.stack[this.stack.length - 1]; - } - - getMin(): number { - return this.mins.length == 0 ? Infinity : this.mins[this.mins.length - 1]; - } -} - -/** - * Your MinStack object will be instantiated and called as such: - * var obj = new MinStack() - * obj.push(x) - * obj.pop() - * var param_3 = obj.top() - * var param_4 = obj.getMin() - */ -``` - -### **Rust** - -#### Rust - -```rust -use std::collections::VecDeque; -struct MinStack { - stack: VecDeque, - min_stack: VecDeque, -} - -/** - * `&self` means the method takes an immutable reference. - * If you need a mutable reference, change it to `&mut self` instead. - */ -impl MinStack { - /** initialize your data structure here. */ - fn new() -> Self { - Self { stack: VecDeque::new(), min_stack: VecDeque::new() } - } - - fn push(&mut self, x: i32) { - self.stack.push_back(x); - if self.min_stack.is_empty() || *self.min_stack.back().unwrap() >= x { - self.min_stack.push_back(x); - } - } - - fn pop(&mut self) { - let val = self.stack.pop_back().unwrap(); - if *self.min_stack.back().unwrap() == val { - self.min_stack.pop_back(); - } - } - - fn top(&self) -> i32 { - *self.stack.back().unwrap() - } - - fn get_min(&self) -> i32 { - *self.min_stack.back().unwrap() - } -}/** - * Your MinStack object will be instantiated and called as such: - * let obj = MinStack::new(); - * obj.push(x); - * obj.pop(); - * let ret_3: i32 = obj.top(); - * let ret_4: i32 = obj.get_min(); - */ -``` - -### **C#** - -#### C# - -```cs -public class MinStack { - private Stack stk1 = new Stack(); - private Stack stk2 = new Stack(); - - /** initialize your data structure here. */ - public MinStack() { - stk2.Push(int.MaxValue); - } - - public void Push(int x) { - stk1.Push(x); - stk2.Push(Math.Min(x, GetMin())); - } - - public void Pop() { - stk1.Pop(); - stk2.Pop(); - } - - public int Top() { - return stk1.Peek(); - } - - public int GetMin() { - return stk2.Peek(); - } -} - -/** - * Your MinStack object will be instantiated and called as such: - * MinStack obj = new MinStack(); - * obj.Push(x); - * obj.Pop(); - * int param_3 = obj.Top(); - * int param_4 = obj.GetMin(); - */ -``` - -### **...** - -``` - -``` - - - - - - - -## 解法 - - - -### 方法一 - - - #### Python3 ```python